Day2 - python的运算符和分支结构

Day2 - python的运算符和分支结构

01-运算符

python中支持的运算符:数学运算符、比较运算符、逻辑运算符、赋值运算符、位运算(了解)

  1. 数学运算符:+(加法运算)、-(减法运算)、*(乘法运算)、/(除法运算)、%(取余、取模)、//(整除)、**(幂运算)
  • +、-、、/和数学中的功能一模一样

  • % - 取余、取模(数学中的求余数): x % y - 求x除以y的余数

    • 应用1:判断一个数是否能被另一个数整除
    num = int(input('情书入一个数:'))
    print(num % 3)
    

    • 应用2:取整数的低位数
    print(231 % 10)
    
  • // —— 整除(商取整): x // y —— x除以y的商向小取整

    print(5 // 2)
    print(-5 // 2)
    
    • 应用:获取高位数、去掉低位数
    print(2345 // 100)
    
    • 练习:任意大于100的数的高位数取其百位上的数字
num1 = int(input('请输入一个大于100的整数:'))
print(num1 // 100 % 10)
print(num1 % 1000 //100)
  • ** —— 幂运算 :x**y ->求x的y次方

    print(2 ** 3)
    print(3 ** 3)
    print(4 ** 0.5)
    print(8 ** (1/3))
    
  1. 比较运算符:>、<、>=、<=、==、!=

    所有的比较运算符的运算结果都是布尔值

    注意:Python中的比较运算符支持连写的方式表示取值范围

    age = 24
    print(18 <= age <= 28)
    
  2. 逻辑运算符:and(与)、or(或)、not(非)

    • and —— 逻辑与
      应用场景:相当于生活中的‘并且’,当需要多个条件同时满足的时候使用
      运算规则:都是True结果就是True,只要有一个是False结果就是False
      True and True -> True
      True and False -> False
      False and True -> False
      False and False -> False

      练习:写出一个数是否能够同时被3和7整除的条件

      num2 = int(input('请输入一个数:'))
      print('是否能同时被3和7整除:',num2 % 3 == 0 and num2 % 7 == 0 )
      
    • or —— 逻辑或运算
      应用场景:相当于生活中的‘或者’,需要多个条件中只要有一个条件满足的时候使用
      运算规则:都是False结果才是False,只要有一个是True结果就是True

      练习:写出判断闰年的条件

      years = int(input('输入年份:'))
      print('是否是闰年:', (years % 4 == 0 and years % 100 != 0) or years % 400 == 0)
      
    • not —— 逻辑非运算

      应用场景: 对某一个条件进行否定
      运算规则: True变False,False变True

      练习:写出不能同时被3和7整除的条件

      print(not num2 % 21 == 0)
      
    • 短路操作

      and 的短路操作:条件1 and 条件2 ——如果是条件1是False,条件2不会执行

      or 的短路操作:条件1 or 条件2 ——如果条件1是True,条件2不会执行

      False and print('====')
      True and print('+++')
      
    • 运算对象不是布尔值

      实际开发的时候逻辑运算符的运算对象和运算结果一般都是布尔值,但是面试的时候喜欢考 运算对象不是布尔得情况

      表达式1 and 表达式2 - 如果表达式1的结果是True,那么运算结果就是表达式2的值;
      如果表达式1的结果是False,那么运算结果是表达式1的值
      表达式1 or 表达式2 - 如果表达式1的结果是False,那么运算结果就是表达式2的值
      如果表达式1的结果是True,那么运算结果就是表达式1的值

      注意:如果表达式的值不是布尔,就转换成布尔再判断
      怎么转:python中任何类型的数据都可以转换成布尔值,所有为0为空的值都会转换成 False,其他的值都是True

      布尔值的转换

      print(bool(0))
      print(bool(100),bool(-1000))
      print(bool(''),bool(""))
      print(bool(' '),bool('False'))
      
    1. 赋值运算符:=、+=、-=、/=、%=、//=、**=

      所有的赋值运算符都是用来给变量赋值,赋值运算符的左边必须是变量;

      复合的赋值运算符左边的变量必须是已经赋值过的变量。

      • =

        a = 10
        
      • 复合的赋值运算符

        a += 3
        
    2. 运算符的优先级

      数学运算符 > 比较运算符 > 逻辑运算符 > 赋值运算符(最低)

      数学运算符:** > * 、/、%、// > +、-

      逻辑运算符:and > or

      如果有括号先算括号里面的内容

    3. *位运算:&(按位与)、|(按位或)、^(按位异或)、~(按位取反)、>>(右移)、<<(左移)

      位运算的运算效率比一般的运算符都要高(高出几十倍到几百倍)

      • 应用1:判断整数的奇偶性 - 数字对1进行按位与运算,如果结果是1就是奇数,0就是偶数
      print(28 & 1, 10 & 1, 102 & 1, -20 & 1)
      print(11 & 1, 9 & 1, -23 & 1, 1005 & 1)
      
      • 应用2:

        数字 << N —— 快速乘 2**N

        数字 >> N —— 快速整除 2**N

        数字 << 1 —— 快速乘2:数字*2

        数字 >> 1 —— 快速整除2:数字//2

        print(4 << 1, 5 << 1, 5 << 2)
        print(4 >> 1, 5 >> 1, -5 >> 1)
        

02-分支结构

  1. 流程控制

    • 顺序结构
    • 分支结构——if
    • 循环结构——for 、while
  2. 分支结构

    • if单分支结构 —— 满足条件执行某个操作,不满足就不行
      执行过程:
      先判断条件语句是否为True(如果不是布尔值就转换成布尔再判断),
      如果是True就执行代码段,否则代码段不执行
    a = int(input('请输入一个数:'))
    if a == 10:
       print('hello')
    

    练习:输入一个整数,如果是偶数就打印"这个数能被2整除"

    num = int(input('请输入一个数:'))
    if num & 1 == 0:
        print('这个数能被2整除')
    
  • if双分支结构 —— 满足条件执行某个操作,条件不满足执行另一个操作

    练习1:判断奇偶

    num1 = int(input('请输入一个数:'))
    if num1 & 1:
        print('奇数')
    elseprint('偶数')
    

    ​ 练习2:判断成年

    age = int(input('请输入年龄'))
    if age >= 18:
        print('成年')
    else:
        print('为成年')
    
    • if多分支结构 —— 根据不同的条件执行不同的操作

      练习:输入学生绩点,判断该学生能获得的奖学金等级

      1等奖 绩点 > 4; 二等奖 3.5 < 绩点 < 4 ; 3等奖 3 <= 绩点 < 3.5 ; 2.5 <= 绩点 ❤️

      grade = float(input('请输入绩点:'))
      if grade > 4:
          print('一等奖')
      elif grade >= 3.5:
          print('二等奖')
      elif grade >= 3:
          print('三等奖')
      elif grade >= 2.5:
          print('四等奖')
      else:
          print('没有奖')
      
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值