2022年 11月 5日

学习Python的D3运算符和分支

一、数学运算符

数学运算符:

+, -, *, /, %(取余,取模), //(整除), **(幂运算)

    1. +,-, *, /,和数学一样
    • print(5+2, 5-2, 5*2, 5/2)
      
      • 1
    1. %(取余,取模)
    • x % y 求x除以y的余数

    • print(5 % 2)     # 1
      
      • 1
  • 应用1:判断一个数字能否被另一个数字整除

  • print(18 % 6)
    
    • 1
  • 应用2:取低位数(对10或10的n次方取余)

  • num = 1234
    print(num % 10)    # 4
    print(num % 100)    # 34
    
    • 1
    • 2
    • 3
    1. //(整除)
    • x // y x除以y的商向小取整

    • print(5 // 2)    # 2
      
      • 1
  • 应用:正整数去掉低位

  • num = 12345
    print(num // 10)    # 1234
    
    • 1
    • 2
  • 练习:获取指定正整数的十,百位数

  • num = 3945
    print(num % 100 // 10)    # 4
    print(num // 100 % 10)    # 9
    
    • 1
    • 2
    • 3
    1. **幂运算
    • x ** y 求x的y次方

    • print(2 ** 8)
      print(256 ** (1/4))
      print(2.2 ** 2)
      
      • 1
      • 2
      • 3

二、比较运算符

比较运算符:

<, >, >=, <=, ==(等于), !=(不等于)

  • 重要结论:所有比较运算的结果都是布尔值

    • print(10 > 20)
      print(10 < 20)
      print(10 != 10)
      
      • 1
      • 2
      • 3
  • Python中是比较运算符可以通过连写表示范围

    • age = 28
      print(18 <= age <= 50)
      
      • 1
      • 2

三、逻辑运算符

逻辑运算符:and(与运算), or(或运算), not(非)

    1. and
  • 应用:相当于生活中的并且,用于连接需要同时满足的多个条件
    运算规则:T and T 是T, 有F就是F
    条件1 and 条件2
    True and True
    False and False
    T and F
    F and T
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
  • 练习:写出能被3和7同时整除

  • num = 42
    print(num % 3 == 0 and num % 7 == 0)
    print(num % 21 == 0)
    
    • 1
    • 2
    • 3
    1. or
    • 应用:相当于生活中的或者,用于连接需要多个条件中满足一个条件就行的情况
      运算规则:有一个是T, 结果就是T,都为F才会F
      
      • 1
      • 2
  • 练习:gpa高于4或score大于等于95

  • gpa = 5
    score = 95
    print(gpa > 4 or score >= 95)
    
    • 1
    • 2
    • 3
  • 练习:判断是否为闰年

  • year = 2021
    print((year % 4 == 0 and year % 100 != 0) or (year % 400 == 0))
    
    • 1
    • 2
    1. not
    • 应用:对指定条件进行否定
      运算规则:T变F, F变T
      not F
      not T
      
      • 1
      • 2
      • 3
      • 4
  • 练习:不能同时被3和7整除

  • num = 87
    print(not num % 21 == 0)
    
    • 1
    • 2
    1. 短路操作
    • 条件1 and 条件2      条件1是F,条件2不会执行
      条件1 or 条件2       条件1是T,条件2不会执行
      
      • 1
      • 2
    1. 逻辑运算符的扩展 运算对象不是布尔值
    • 数据1 and 数据2   数据1的布尔值是T,就是2,否则就是1
      数据1 or 数据二   数据1的布尔值是T,就是1,否则是2
      print(0 and 7)
      print(False and 9)
      print(7 and 9)
      
      • 1
      • 2
      • 3
      • 4
      • 5
    1. 数据的布尔值(重点) 数据转成布尔的结果
      Python中的所有类型的数据都有布尔值
      所有零值和空值对应的布尔值是F,其他都是T
      常见的零值和空值:0、0.0、0000、‘’、“”、{}、[]、()、None
    • print(bool(0), bool(''))
      print(bool(12), bool(-2.15), bool('abc'))
      
      • 1
      • 2

四、赋值运算符

赋值运算符:

=、+=、-=、*=、/=、%=、//=、**=

(重要!)重要结论:所有的赋值运算的功能都是给变量赋值,不会产生一个结果。(赋值运算的表达式没有结果)
所有的赋值运算符的左边必须是变量

a = 10
10 > 20
# print(a = 10)    # 报错
print(10 > 20)
  • 1
  • 2
  • 3
  • 4
    1. =
    • 定义变量或者重新给变量赋值的时候使用

    • name = 20
      num = 10 * 20
      
      • 1
      • 2
    1. +=、-=、*=、/=、%=、//=、**=
    • 要求:赋值符号前面的变量必须是已经定义过变量
      变量 += 数据 -> 变量 = 变量 + 数据

      b = 10
      b += 2
      print(b) # 12

      b -= 3
      print(b) # 9

      b **= 2
      print(b) # 81

      b %= 2
      print(b) # 1

      
      
      • 1
      1. 运算符的优先级
      • 数学运算符 > 比较运算符 > 逻辑运算符 > 赋值运算符

      • ** > *、/、%、// > +、-

      • 有括号先算括号里面的

      • b = 10 + 30
        c = 10 < 5 * 3    # c = 10 < 15  -> c = True
        print(c)
        
        • 1
        • 2
        • 3

    五、分支结构

      1. 流程控制
      • 顺序结构(默认) – 代码从上往下依次执行,每条语句执行一次
      • 分支结构 – 代码的执行看条件是否成立(if语句)
      • 循环结构 – 让代码重复(for、while)
      1. if分支结构
      • if单分支结构 满足条件执行某操作,条件不满足的时候操作就不执行

      • 语法:
        if 条件语句:
            代码段
        说明:
        if            关键字,固定写法
        条件语句       任何有结果的表达式,例如:数据,运算表达式(赋值除外)
        :             固定写法
        代码段         就是和if保持一个锁紧的一条或多条语句
        
        执行过程:
        先判断条件语句是否为True(如果条件语句不是布尔,就转换成布尔再看),
        如果True,就执行代码段,否则不执行
        
        • 1
        • 2
        • 3
        • 4
        • 5
        • 6
        • 7
        • 8
        • 9
        • 10
        • 11
        • 12
      • a = 40
        a += 20
        if a > 50:
            print('代1')
            print('代2')
            print('代3')
            print('代4')
        
        • 1
        • 2
        • 3
        • 4
        • 5
        • 6
        • 7
    • 练习:如果指定的数是偶数就打印’偶数’

    • num = 22
      if num % 2 == 0:
          print('偶数')
      
      if not num % 2:
          print('偶数')
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
    • 练习:判断指定的数据是否是水仙花数

    • num = 153
      # 水仙花数:1 ** 3 + 5 ** 3 + 3 ** 3 == num
      bai = (num // 100) ** 3
      shi = (num // 10 % 10) ** 3
      ge = (num % 10) ** 3
      
      if bai + shi + ge == num:
          print('水仙花数')
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      1. if双分支结构 满足条件执行某操作,不满足执行另一个操作
      • 语法:
        if 条件语句:
            代码段1(满足才执行的代码)
        else:
            代码段2(不满足才执行的代码)
        代码段3(不管满不满足都执行)
        
        • 1
        • 2
        • 3
        • 4
        • 5
        • 6
    • 练习:根据年龄打印成年未成年

    • age = 28
      if age >= 18:
          print('成年')
      else:
          print('未成年')
      
      • 1
      • 2
      • 3
      • 4
      • 5
    • 3.if多分支结构 根据不同条件做不一样的事情

      • if 条件语句1:
            代码段1
        elif 条件语句2:
            代码段2
        elif 条件语句3:
        
        ...
        else:
            代码段N
            
        前提:多个条件中如果其中一个条件满足,其他的条件绝对不会满足
        
        • 1
        • 2
        • 3
        • 4
        • 5
        • 6
        • 7
        • 8
        • 9
        • 10
        • 11
    • 练习:将分数分成A(90以上),B(80,90),C(60,80),D(60以下)四个等级

      • score = 78
        if score >= 90:
            print('A')
        elif score >= 80:
            print('B')
        elif score >= 60:
            print('C')
        else:
            print('D')
        
        • 1
        • 2
        • 3
        • 4
        • 5
        • 6
        • 7
        • 8
        • 9