zoukankan      html  css  js  c++  java
  • 逻辑运算符&流程控制

    1、可变不可变类型
    可变类型:值改变,id不变,证明改的是原值,证明原值是可以被改变的
    不可变类型:值改变,id也变了,证明是产生新的值,压根没有改变原值,证明原值是不可以被修改的
    2、验证
    2.1 int是不可变类型
    x=10
    print(id(x))
    x=11 ##### 产生新值
    print(id(x))
    2.2 float是不可变类型
    x=3.1
    print(id(x))
    x=3.2
    print(id(x))
    2.3 str是不可变类型
    x="abc"
    print(id(x))
    x='gggg'
    print(id(x))
    小结:int、float、str都被设计成了不可分割的整体,不能够被改变
    2.4 list是可变类型
    l=['aaa','bbb','ccc']
    print(id(l))
    l[0]='AAA'
    print(l)
    print(id(l))
    2.5 dict
    dic={'k1':111,'k2':222}
    print(id(dic))
    dic['k1']=3333333333
    ##### print(dic)
    print(id(dic))
    2.6 bool不可变
    关于字典补充:
    定义:{}内用逗号分隔开多key:value,
    其中value可以是任意类型
    但是key必须是不可变类型
    dic={
    'k1':111,
    'k2':3.1,
    'k3':[333,],
    'k4':{'name':'egon'}
    }
    dic={
    2222:111,
    3.3:3.1,
    'k3':[333,],
    'k4':{'name':'egon'}
    }
    print(dic[3.3])
    dic={[1,2,3]:33333333}
    dic={{'a':1}:33333333}
    2、什么是条件?什么可以当做条件?为何要要用条件?
    第一大类:显式布尔值
    2.1 条件可以是:比较运算符
    age = 18
    print(age > 16) ##### 条件判断之后会得到一个布尔值
    2.1 条件可以是:True、False
    is_beautiful=True
    print(is_beautiful)
    第二大类:隐式布尔值,所有的值都可以当成条件去用
    其中0、None、空(空字符串、空列表、空字典)=》代表的布尔值为False,其余都为真
    一:not、and、or的基本使用
    not:就是把紧跟其后的那个条件结果取反
    ps:not与紧跟其后的那个条件是一个不可分割的整体
    print(not 16 > 13)
    print(not True)
    print(not False)
    print(not 10)
    print(not 0)
    print(not None)
    print(not '')
    and:逻辑与,and用来链接左右两个条件,两个条件同时为True,最终结果才为真
    print(True and 10 > 3)
    print(True and 10 > 3 and 10 and 0) ##### 条件全为真,最终结果才为True
    or:逻辑或,or用来链接左右两个条件,两个条件但凡有一个为True,最终结果就为True,
    两个条件都为False的情况下,最终结果才为False
    print(3 > 2 or 0)
    print(3 > 4 or False or 3 != 2 or 3 > 2 or True) ##### 偷懒原则
    二:优先级not>and>or
    ps:
    如果单独就只是一串and链接,或者说单独就只是一串or链接,按照从左到右的顺讯依次运算即可(偷懒原则)
    如果是混用,则需要考虑优先级了
    res=3>4 and not 4>3 or 1==3 and 'x' == 'x' or 3 >3
    print(res)
    ##### False False False
    res=(3>4 and (not 4>3)) or (1==3 and 'x' == 'x') or 3 >3
    print(res)

    res=3>4 and ((not 4>3) or 1==3) and ('x' == 'x' or 3 >3)
    print(res)

    1、成员运算符
    print("egon" in "hello egon") ##### 判断一个字符串是否存在于一个大字符串中
    print("e" in "hello egon") ##### 判断一个字符串是否存在于一个大字符串中
    print(111 in [111,222,33]) ##### 判断元素是否存在于列表
    判断key是否存在于字典
    print(111 in {"k1":111,'k2':222})
    print("k1" in {"k1":111,'k2':222})
    not in
    print("egon" not in "hello egon") ##### 推荐使用
    print(not "egon" in "hello egon") ##### 逻辑同上,但语义不明确,不推荐
    2、身份运算符
    is ##### 判断的是id是否相等
    print(1)
    print(2)
    print(3)
    if 条件:
    代码1
    代码2
    代码3
    print(4)
    print(5)

    '''
    语法1:
    if 条件:
    代码1
    代码2
    代码3

    '''

    age = 60
    is_beautiful = True
    star = '水平座'
    if age > 16 and age < 20 and is_beautiful and star == '水平座':
    print('我喜欢,我们在一起吧。。。')
    print('其他代码.............')

    '''
    语法2:
    if 条件:
    代码1
    代码2
    代码3
    else:
    代码1
    代码2
    代码3
    '''

    age = 60
    is_beautiful = True
    star = '水平座'
    if age > 16 and age < 20 and is_beautiful and star == '水平座':
    print('我喜欢,我们在一起吧。。。')
    else:
    print('阿姨好,我逗你玩呢,深藏功与名')
    print('其他代码.............')

    '''
    语法3:
    if 条件1:
    代码1
    代码2
    代码3
    elif 条件2:
    代码1
    代码2
    代码3
    elif 条件2:
    代码1
    代码2
    代码3
    '''

    score=73
    if score >= 90:
    print('优秀')
    elif score >= 80 and score < 90:
    print('良好')
    elif score >= 70 and score < 80:
    print('普通')
    改进
    score = input('请输入您的成绩:') ##### score="18"
    score=int(score)
    if score >= 90:
    print('优秀')
    elif score >= 80:
    print('良好')
    elif score >= 70:
    print('普通')

    '''
    语法3:
    if 条件1:
    代码1
    代码2
    代码3
    elif 条件2:
    代码1
    代码2
    代码3
    elif 条件2:
    代码1
    代码2
    代码3
    ...
    else:
    代码1
    代码2
    代码3
    '''

    score = input('请输入您的成绩:') ##### score="18"
    score=int(score)
    if score >= 90:
    print('优秀')
    elif score >= 80:
    print('良好')
    elif score >= 70:
    print('普通')
    else:
    print('很差,小垃圾')
    print('=====>')

    '''
    if嵌套if
    '''
    age = 17
    is_beautiful = True
    star = '水平座'

    if 16 < age < 20 and is_beautiful and star == '水平座':
    print('开始表白。。。。。')
    is_successful = True
    if is_successful:
    print('两个从此过上没羞没臊的生活。。。')
    else:
    print('阿姨好,我逗你玩呢,深藏功与名')

    print('其他代码.............')

    l=[111,222,333]
    l2=l ##### 把l的内存地址给l2
    l[0]='balabla'
    print(l)
    print(l2)
    l2[1]=4444444444444
    print(l2)
    print(l)
    del l2
    格式化输出
    print('my name is %s age is %s' %('egon',18))
    print('成功的概率 %s%% ' % (97,))
    """
    name:{}
    age:{}
    sex:{}
    """.format('egon',18,'male')
    """
    name:{x}
    age:{y}
    sex:{z}
    """.format(z='male',x='egon',y=18)
    format新增(了解):
    print('{x}=============='.format(x='开始执行')) ##### 开始执行******
    print('{x:=<10}'.format(x='开始执行')) ##### 开始执行******
    print('{x:=>10}'.format(x='开始执行')) ##### 开始执行******
    print('{x:=^10}'.format(x='开始执行')) ##### 开始执行******
    四舍五入
    print('{salary:.3f}'.format(salary=1232132.12351)) #####精确到小数点后3位,四舍五入,结果为:1232132.124
    x='egon'
    y=18
    res=f'name:{x} age {y}'
    print(res)
    x='egon'
    y=18
    res=f'name:{{{x}}} age {y}'
    print(res)
    了解f的新用法:{}内的字符串可以被当做表达式运行
    res=f'{10+3}'
    print(res)
    f'{print("aaaa")}'
  • 相关阅读:
    Java--从键盘读取
    java--mkdirs()
    Java--正则表达式
    java--利用Filereader BufferedReader读取文本文档
    java--lambda表达式和动态数组arraylist的forEach方法
    substring 方法
    ES 字符串操作
    slice方法
    process.env.NODE_ENV
    像素
  • 原文地址:https://www.cnblogs.com/abldh12/p/15208660.html
Copyright © 2011-2022 走看看