Day2 - 运算符和分支结构

本文详细介绍了Python中的数学运算符、比较运算符、逻辑运算符和赋值运算符,包括它们的用法、优先级及实际应用。此外,还讲解了Python的分支结构,如单分支结构和双分支结构的if-else语句,以及如何根据条件执行不同的操作。文章通过实例演示了各种运算符的使用,并提供了判断数字属性、闰年检查等实用技巧。
摘要由CSDN通过智能技术生成

Day2 - 运算符和分支结构

1、数学运算符

数学运算符包括:+(加)、-(减)、*(乘)、/(除)、%(取余数、取模)、//(取整数)、**(幂)

  1. +、-、*、/ 和数学中的功能一样
print(2+5)   # 7
print(2-5)   # -3
print(2*5)   # 10
print(2/5)   # 0.4
  1. % (取余、取模)
print(8 % 2)  # 0
print(15 % 4) # 3
  1. % (取余、取模)的应用:

    1. 判断一个数是否能够被另一个数整除
    2. 取整数的低位数
    num = 32812
    print(num % 10)   # 2
    print(num % 100)  # 12
    # 以此类推
    print(num % 10000)   # 2812
    
  2. //(整除)x // y - x除以y的结果向小取整

print(5 // 2)   # 2; 5除以2是2.5,和2.5相邻的整数是2和3,2和3中较小的是2
print(-5 // 2)  # -3
  1. //(整除)的应用:去掉低位数
numm = 27383
print(numm // 10)  # 2783
print(numm // 1000)  # 27
  1. **(幂)x ** y - 求x的y次方
print(2 ** 3)   # 8
print(25 ** 0.5)  # 5.0
print(25 ** (1/3))  # 2.924017738212866

2、比较运算符

  1. 比较运算符:==(等于) ,!=(不等于),>(大于),<(小于),>=(大于等于),<=(小于等于)注意:所有的比较运算符的运算结果都是布尔值
  2. ==、!=
print(5 == 5)  # True
print(5 != 5)   # False
print(10 % 2 == 0)  # True
  1. >、<、>=、<=
print(10 > 5)  # True
print(10 >= 5)  # False
  1. 可以通过连写的方式来表示取值范围
age = 12
print(18 < age <= 30)   # False
print(0 < age < 30)   # True

3、逻辑运算符

  1. 逻辑运算符:and(逻辑与运算)、or(逻辑或运算符)、not(逻辑非运算)

  2. and(逻辑与运算)

    1. 应用场景:如果要求多个条件同时满足,这个时候多个条件使用and连接。

    2. 运算规则

      True and True   ->True
      True and False   ->False
      False and True   ->False
      False and False   ->False
      
      # 练习:写出判断指定的数是否能同时被3和7整除的条件
      num = 21
      # 方法一:
      print(num,'是否能够同时被3和7整除:',21 % 3 == 0 and 21 % 7 == 0)
      # 方法二:
      print(num,'是否能够同时被3和7整除:',21 % 21 == 0)
      
      
  3. or(逻辑或运算符)

    1. 应用场景:如果要求多个条件只要有一个条件满足就行,这个时候使用or连接。
    2. 运算规则
    True or True   ->True
    True or False   ->True
    False or True   ->True
    False or False   ->False
    
    # 练习
    # 写出判断一个是否能够被3或者7或者5整除的条件。
    num = 11
    print(num, '是否能够被3或者7或者5整除:', num % 3 == 0 or num % 7 == 0 or num % 5 == 0)
    
    num = 12
    print(num, '是否能够被3或者7或者5整除:', num % 3 == 0 or num % 7 == 0 or num % 5 == 0)
    
    # 练习2:写出判断指定的年份是否是闰年
    # 闰年:情况1 - 年份能被4整除但是不能100整除
    #      情况2 - 年份能被400整除
    year = 2010
    print(year, '是否是闰年:', year % 4 == 0 and year % 100 != 0)
    print(year, '是否是闰年:', year % 400 == 0 )
    print(year, '是否是闰年:', (year % 4 == 0 and year % 100 != 0 )or (year % 400 == 0))
    
    
  4. not(逻辑非运算)

    1. 应用场景:如果要对一个条件进行否定,就是用not.一般不用,但是当正向所写的的条件过于复杂,但是反向很简单的时候就用。
    2. 运算规则
    not Ture -> False
    not False -> Ture
    
    num = 21
    print(num % 3 != 0)
    print(not num % 3 == 0)
    
    
  5. 短路操作

    1. 逻辑与运算的短路操作(and):如果第一个条件是False,那么第二个条件对应的语句不会再执行
    True and print('条件2')
    False and print('条件2')
    
    1. 逻辑或运算的短路操作(or):如果第一个条件是True,那么第二个条件对应的语句不会再执行
    True or print('条件3')
    False or print('条件3')
    
  6. 数据的布尔测试(掌握)

    1. 在Python中任何类型的数据都可以转换成布尔。
    2. 转换规则:任何为零为空的值都会转换成False,其他都是True。0 -> False 0.0 -> False ........;’‘ -> False “” -> False None -> False [] -> False {} -> False
    3. bool(数据) -> 获取指定数据对应的布尔值
  7. 运算对象不是布尔值

    1. 在python中任何类型的数据都可以作为逻辑运算符的运算对象
    2. 数据1 and 数据2 - 如果数据1的布尔值是True,结果就是数据2;如果数据1的布尔值是False,结果是数据1。
    print(0 and 10) # 0
    print(1 and 2)  # 2
    print(-3 and 9) # 9
    print(None and 'abc') # None
    print(False and 100) # False
    
    1. 数据1 or 数据2 - 如果数据1的布尔值是True,结果就是数据1;如果数据1的布尔值是False,结果是数据2。
    print(0 or 10) # 10
    print(1 or 2) # 1
    print(-3 or 9) # -3
    print(None or 'abc') # 'abc'
    print(False or 100) # 100
    
    1. not 数据1 - 如果数据1的布尔值是True,结果是False;如果数据1的布尔值是False,结果是True。
    print(not 10) # False
    print(not 2) # False
    print(not 9) # False
    print(not 'abc') # False
    print(not False) # True
    

4、赋值运算符

  1. 赋值运算符:=、+=、-=、*=、/=、%=、//=、**=

  2. 重要结论:赋值运算符的作用是给变量赋值,不会产生结果(数据)!!!

  3. = 直接将 = 右边的数据赋给左边的变量。(=的左边必须是变量)

  4. +=、-=、*=、/=、%=、//=、**=

    1. 变量 += 数据 - 将变量中的值取出来和=后面的数据进行加法运算,然后将运算的结果重新赋值给变量;注意:变量必须是已经赋值过的变量
    2. 别的赋值运算符同理。
    num = 100
    num += 10      # num = num + 10  -> num = 100 + 10  -> num = 110
    print(num)     # 110
    
    num -= 20      # num = num - 20  -> num = 110 - 20  -> num = 90
    print(num)     # 90
    
    num *= 2       # num = num * 2  -> num = 90 * 2  -> num = 180
    print(num)     # 180
    
    num %= 3       # num = num % 3  -> num = 180 % 3  -> num = 0
    print(num)     # 0
    

5、运算符优先级

  1. 运算符优先级从高到低:数学运算符 > 比较运算符 > 逻辑运算符 > 赋值运算符
  2. 数学运算符优先级:** > *、/、%、// > +、-
  3. 有括号先算括号里面的,不区分大、中、下括号
print(4 + 8 / 2 > 5 + 3 * 4 and 8 < 15)  # False

6、分支结构

  1. 顺序结构(默认):代码从上往下一条一条的按顺序执行

  2. 选择/分支结构:根据条件选择执行某个操作 (if语句)

    1. if单分支结构

    2. 解决的问题:如果满足某个条件就执行某个操作,条件不满足的时候对应的操作不执行

    3. 语法:

    '''
    if 条件语句:
        代码段
    '''    
    
    '''    
    说明:
    if - 关键字,固定写法
    条件语句 - 任何有结果的表达式(不能是赋值语句)
    冒号 - 不能少,冒号写成英文输入法下的
    代码段 - 和if保持一个缩进的一条或者多条语句;满足条件才会执行代码
    
    执行过程:
    先判断条件语句的布尔值是否为True,如果是,就执行代码段,否则代码段不执行
    '''
    
    # 练习1:如果指定的数是偶数就打印'偶数',否则不打印
    num = 9
    if num % 2 == 0:
        print('偶数')
    
    # 练习2:如果输入的年份是闰年,就打印'闰年', 否则不打印
    year = int(input('请输入年份:'))  # 注意:通过input函数输入的数据的类型是字符串,如果对结果进行数字操作需要先转换
    if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):
        print('闰年')
    
    
    1. if双分支结构:if - else

      1. 解决的问题:满足条件执行某个操作,条件不满足的时候执行另一个操作
      2. 语法:
      '''
      if 条件语句:
          代码段1
      else:
          代码段2
      '''    
      
      '''
      执行过程:判断条件语句的布尔值是否为True,如果是,就执行代码段1,否则执行代码段2
      '''
      
      num = int(input('请输入数字:'))
      if num % 2 == 0:
          print('偶数')
      else:
          print('奇数')
      
      if num % 2:
          print('奇数')
      else:
          print('偶数')
      
      if not num % 2:
          print('偶数')
      else:
          print('奇数')
      
      
      num = int(input('请输入一个三位数的整数:'))
      if num // 100 == num % 100:
          print('回文数')
      else:
          print('不是回文数')
      
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值