zoukankan      html  css  js  c++  java
  • 基本运算符,流程控制之if判断

    一、基本运算符

    上篇讲了基本运算符:算数运算符,比较运算符

    本篇讲:赋值运算符,逻辑运算符

    1、赋值运算符

    (1)增量赋值

    #也可以age-=1  age*=1  age/=1 age//=1 age%=1  1也可以变成其他,注意灵活运用,一下是一个模板分析
    
    age = 18
    age += 1  # age = age + 1
    print(age)

    (2)交叉赋值

    #x,y =y,x 就是被注释的那三行的转换,简单成一横
    
    x = 111
    y = 222
    # temp=x
    # x=y
    # y=temp
    x, y = y, x
    print(x)
    print(y) 

    (3)链式赋值

    #x = y = z = 10就是那三横的转换,简化成一横
    
    #x=10
    #y=x
    #z=y
    x = y = z = 10
    print(id(x),id(y),id(z)) #id相同

    (4)解压赋值

    PS:解压赋值:多/少一个变量名就会报错;一般用于取开头或结尾几个值;如果要取中间的值用切片(后期会讲);字典取出来的是key;字符串取出来的是每个元素

    #最原始的
    salaries = [111, 222, 333, 444, 555]
    mon0 = salaries[0]
    mon1 = salaries[1]
    mon2 = salaries[2]
    mon3 = salaries[3]
    mon4 = salaries[4]
    #运用解压赋值后
    salaries = [111, 222, 333, 444, 555]
    mon0,mon1,mon2,mon3,mon4=salaries
    print(mon0)
    print(mon1)
    print(mon2)
    print(mon3)
    print(mon4)
    # 注意1: 变量名与值的个数必须一一对应
    # mon0,mon1,mon2,mon3,mon4,mon5=salaries  # 多一个变量名不行,报错
    # mon0,mon1,mon2,mon3=salaries  # 少一个变量名不行,报错
    salaries = [111, 222, 333, 444, 555]
    #取前两个值
    # mon0,mon1,*_=salaries
    # print(mon0)
    # print(mon1)
    # print(_)
    #取后两个值
    # *_,x,y=salaries
    # print(x,y)
    # print(_)
    #取前后两个值
    # x,*_,y,z=salaries
    # print(x)
    # print(y)
    # print(z)
    #取中间部分的值,一般不这么用
    # _,*midlle,_=salaries
    # print(midlle)
    #字典解压赋值,取出的是key,再用索引取到值
    # dic={'k1':111,'k2':222,'k3':3333}
    # x,y,z=dic
    # print(x,y,z)
    # print(dic[x],dic[y],dic[z])
    
    #字符串解压赋值,元素个数要与要解压的值的个数必须一一对应,多/少一个都不行,会报错
    # x, y, z,a,b = "hello"
    # print(x)

    2、逻辑运算符

    1.1补充

     条件:只要能得到True 或 False两种值的东西都能当做条件
      1、显式的布尔值 : 表面上看就直接是True或False
    (1)比较运算的结果
    print(10 > 3)
    print(10 == 3)
    (2)变量值直接就是True或False
    tag = True

      2、隐式的布尔值 :表面上看上去是一种值,在底层会被解释器转换成True或False

      ps:0、None、空对应的布尔值为False,其余值对应的布尔值均为True

    1.2逻辑运算符:用来连接多个条件 

     (1) not 条件:对条件的结果取反
     (2) 条件1 and 条件2:连接左右两个条件,两个条件必须都为True,最终结果才为True
     (3) 条件1 or 条件2:连接左右两个条件,两个条件只要有一个为True,最终结果就为True
     ps:偷懒原则=》短路运算
     (4) 优先级:not > and > or,推荐用括号去标识优先级
    #        False         or          True
    res1=(3 > 4 and 4 > 3) or (not (1 == 3 and 'x' == 'x')) or 3 > 3
    print(res1)
    
    res2= 3 > 4 and 4 > 3 or not 1 == 3 and 'x' == 'x' or 3 > 3
    print(res)
    res2= (3 > 4 and 4 > 3) or (not 1 == 3 and 'x' == 'x') or 3 > 3
    
    res3= 3 > 4 and 4 > 3 or not 1 == 3 and 'x' != 'x' or 3 > 3
    print(res3)
    
    print(10 and 0)
    print(10 and False)
    print(10 or False)

    二、流程控制之if判断

    ps:(1)可以只有if部分(2)可以只有if...elif...elif...(3)可以只有if...else...(4)if里面可以嵌套if
    注意:if的条件可以放:显示 隐式bool或and or not连接的
        if条件是顶级代码

       缩进同一空格的属于同一组代码块,从上至下依次运行
       条件2能运行的前提是条件1不成立
    if判断的完整语法:
    if 条件1:
    代码1
    代码2
    代码3
    ...
    elif 条件2:
    代码1
    代码2
    代码3
    ...
    elif 条件3:
    代码1
    代码2
    代码3
    ...
    ...
    else:
    代码1
    代码2
    代码3
    ...
    # 语法1:
    """
    if 条件1:
        代码1
        代码2
        代码3
        ...
    """
    gender = "female"
    age = 18
    is_beautiful = True
    
    if gender == "female" and 60 >= age >= 18 and is_beautiful:
        print('开始表白。。。')
    
    print('后续代码。。。')
    # 语法2:
    """
    if 条件1:
        代码1
        代码2
        代码3
        ...
    else:
        代码1
        代码2
        代码3
        ...
    """
    gender = "female"
    age = 70
    is_beautiful = True
    
    if gender == "female" and 60 >= age >= 18 and is_beautiful:
        print('开始表白。。。')
    else:
        print('阿姨好,开个玩笑。。。')
    
    print('后续代码。。。')
    # 语法3:
    """
    if 条件1:
        代码1
        代码2
        代码3
        ...
    elif:
        代码1
        代码2
        代码3
        ...
    """
    
    # 如果:成绩 >= 90 那么:优秀
    #
    # 如果成绩 >= 80 且 < 90, 那么:良好
    #
    # 如果成绩 >= 70 且 < 80, 那么:普通
    #
    # 其他情况:很差
    
    
    score = input("请输入你的成绩:")  # score = "93"
    score=int(score)
    if score >= 90:
        print("优秀")
    elif score >= 80:
        print("良好")
    elif score >= 70:
        print("普通")
    else:
        print("很差")
    
    print('其他代码。。。。')
    # 语法4:
    """
    if的嵌套
    
    """
    gender = "female"
    age = 18
    is_beautiful = True
    is_successful = True
    
    if gender == "female" and 60 >= age >= 18 and is_beautiful:
        print('开始表白。。。')
        if is_beautiful:
            print('在一起')
        else:
            print('再见。。。')
    else:
        print('阿姨好,开个玩笑。。。')
    
    print('后续代码。。。')
  • 相关阅读:
    js表单提交回调函数
    sublime text3下BracketHighlighter的配置方法
    不同版本的jquery的复选框checkbox的相关问题
    jquery键盘常见事件
    jQuery学习笔记(一)
    sublime text按esc经常进入command mode(不能输入任何东西)
    sublime text光标移入移出括号的快捷键设置
    sublime text3 自己定义的不同浏览器的预览快捷键
    grains和pillar的联合使用
    自定义模块和grains
  • 原文地址:https://www.cnblogs.com/guojieying/p/13267432.html
Copyright © 2011-2022 走看看