Day02-运算符,分支结构

总结

运算符

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

    print(4 + 29)	# 33
    print(42 - 132)	# -90
    print(5 / 2)	# 2.5
    print(4 * 2)	# 8
    a = 1 / 7		
    print(a * 7)	# 1.0
    
  • % - 求余数

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

      if 5 % 3 == 0:
          print('true')
      
    • 应用二:去一个数的低位数

      num = 345
      print(num % 10)     # 5
      print(num % 100)    # 45
      
  • // - 整数(求商,商向小取整)

    print(5 / 2)    # 2.5
    print(5 // 2)   # 2
    print(9.6 / 3)  # 3.1999999999999997
    print(9.6 * 10 / 3 / 10)    # 3.2
    print(9.6 // 3)             # 3
    print(-5 // 2)  # -3
    
    • 应用一:去掉低位数保留高位数

      num = 234253
      print(num // 10)    # 23425
      num = -num
      print(num // 10)    # -23426
      
  • ** - 幂运算(x ** y - 求x的y次方)

    print(2 ** 3)		# 8
    print(4 ** (1/3))	# 1.5874010519681994
    print(81 ** 0.5)	# 9.0
    
2.比较运算符:==(等于)、!=(不等于)、>(大于)、<(小于)、>=(大于等于)、<=(小于等于)
  • 所有的比较运算符的运算结果都是布尔

    print(10 == 10)     # True
    print(7 <= 8)       # True
    print(10 > 100)     # False
    
  • python中的比较运算符支持表示范围的连写方式(别的语言不支持)

    x = 0.5
    print(0 < x <= 1.6)     # True
    
3.逻辑运算符:and(逻辑与运算)、or(逻辑或运算符)、not(逻辑非运算符)
  • and - 逻辑运算符

    • 应用场景:要求多个条件同时满足的时候就将多个条件用and连接,相当于生活中的并且

    • 运算规则:两个或多个全部都是True结果才是True,否则结果是False

      # True and True   ->  True
      # True and False  ->  False
      # False and True  ->  False
      # False and False ->  False
      

      举例:判断一个数能同时被3和7整除的条件

      num = input("输入一个数:")	# 42
      while True:
          try:
              num = int(num)
              break
          except ValueError:
              print('输入数据有误,请重新输入:', end='')
              num = input()
      print(num % 3 == 0 and num % 7 == 0)	# True
      print(num % 21 == 0)					# True
      
  • or - 逻辑或运算

    • 应用场景:多个条件中只要有一个条件满足的时候就使用or将所有条件连接到一起

    • 运算规则:两个都是False结果才是False,只要有一个是True,结果就是True

      # True or True    ->  True
      # True or False   ->  True
      # False or True   ->  True
      # False or False  ->  False
      

      举例:判断一个数能被3或7整除

      num = input("输入一个数:")	# 45
      while True:
          try:
              num = int(num)
              break
          except ValueError:
              print('输入数据有误,请重新输入:', end='')
              num = input()
      print(num % 3 == 0 or num % 7 == 0)	# True
      
  • not - 逻辑非运算

    • 应用场景: 对某一个条件进行否定

    • 运算规则:

      # not True    ->  False
      # not False   ->  True
      

      举例:

      # 练习: 判读一个数是否是偶数
      num = input("输入一个数:")	# 343
      while True:
          try:
              num = int(num)
              break
          except ValueError:
              print('输入数据有误,请重新输入:', end='')
              num = input()
      print('该数是否是偶数:', num % 2 == 0)	# Flase
      # 练习: 判读一个数是否是能被3整除, 并且个位数是1
      print('该数是否是能被3整除, 并且个位数是1:', num % 3 == 0 and num % 10 == 1)	# False
      # 练习: 判读一个数的个位数加上十位数的和是否是偶数
      print('该数的个位数加上十位数的和是否是偶数:', (num % 10 + num // 10 % 10) % 2 == 0)	# False
      print('该数的个位数加上十位数的和是否是偶数:', (num % 10 + num % 100 // 10) % 2 == 0)	# False
      
  • 扩展

    • 短路操作

      • 逻辑与的短路操作:表达式1 and 表达式2 中如果表达式1的结果是False,那么表达式2对应的代码不执行
      • 逻辑或的短路操作:表达式1 or 表达式2 中如果表达式1的结果是True,那么表达式2对应的代码不执行
    • 运算对象不是bool值

      • 表达式1 and 表达式2 - 如果表达式1的布尔值是True,整个与运算结果是表达式2;如果表达式1的布尔值是False,整个运算结果的表达式1

      • 表达式1 or 表达式2 - 如果表达式1的布尔值是True,整个与运算结果是表达式1;如果表达式1的布尔值是False,整个运算结果的表达式2

        print(False and 8)  # False
        print(9 and 6)  # 6
        print(False or 9)   # 9
        print(9 or 6)   # 9
        print(not 7)    # False
        
    • 数据的布尔值

      • python中所有的数据都有布尔值,所有零值和空值对应的布尔值是False,其它都为True
      • 常见的空值和零值:0、0.0、0.00、‘’、""、None
4.赋值运算符:=、+=、-=、*=、/=、%=、//=、**=
  • 所有的赋值运算符运算的都是用来给变量赋值,没有计算结果(所有的赋值运算都没有结果)

    a = 10
    # print(a = 20)    TypeError: 'a' is an invalid keyword argument for print()
    
  • 所有赋值运算符的左边都必须是变量

    • 变量 = 值 - 将数据保存到变量

    • +=、-=、*=、/=、//=、%=、**=(先将变量中保存的数据取出来,和右边的数进行加法运算,将计算结果重新赋值给变量)

    # 注意:这儿的变量必须先赋值
    # b += 9  # NameError: name 'b' is not defined
    b = 10
    b += 3      # b = b + 3
    print(b)    # 13
    b *= 2      # b = b * 2
    print(b)    # 26
    
  • 运算符的优先级

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

    • 数学运算符优先级: ** > *、/、%、// > +、-

    • 有括号先算括号里面的

      a = 10 + 2 * 4 + 9 / 3
      print(a)	# 21
      a = (10 + 2) * 4 + 9 / 3
      print(a)	# 51
      

分支结构

1.流程控制
  1. 顺序结构(默认) - 代码从上往下一条一条的执行,每条代码只执行一次
  2. 分支结构 - 根据条件去执行或者不执行某些代码
  3. 循环结构 - 让代码重复执行
2. 分支结构 - if语句
  1. if单分支结构 - 满足条件执行某个操作,条件不满足的时候对应操作不执行

    """
    语法:
    if 条件语句:
        代码段
        
    说明:
    if  -   关键字,固定写法
    条件语句    -   任何有结果的表达式(除了赋值语句以外的表达式),比如:数据,运算表达式,函数调用表达式
    :   -   国定写法(注意输入法)
    代码段 -   和if保持一个缩进的一条或者多条语句(满足条件才执行的代码)
    
    执行过程:
    先判断条件语句的结果是否为True,如果为True就执行代码的,否则代码段不执行
    """
    a = 1923
    if a:
        print('执行代码段1')
        print('执行代码段2')
    print('执行代码段3')
    
  2. if双分支结构 - 满足某个条件执行某个操作,不满足时执行另一个操作

    """
    语法:
    if 条件语句:
        代码段1(满足条件执行的代码)
    else:
        代码段2(不满足条件执行的代码)
    """
    练习1: 给定一个数字,如果该数是奇数就打印'奇数'否则打印'偶数'
    num = input('请输入一个数:')	# 33
    while True:
        try:
            num = int(num)
            break
        except ValueError:
            print('输入数据有误,请重新输入:', end='')
            num = input()
    # 方法一:   	# 奇数
    if num % 2 == 1:
        print('奇数')
    else:
        print('偶数')
    # 方法二:   	# 奇数
    if num % 2:
        print('奇数')
    else:
        print('偶数')
    
  3. if多分支结构 - 根据不同的条件执行不同的操作(条件之间满足:其中一个条件满足了,另外的条件绝对不会满足)

    """
    语法:
    if 条件语句1:
        代码块1(如果条件语句1满足,则执行)
    elif 条件语句2:
        代码块2(如果条件语句2满足,则执行)
    elif 条件语句3:
        代码块3(如果条件语句3满足,则执行)
    elif 条件语句4:
        代码块4(如果条件语句4满足,则执行)
    ...
    else:
        代码块n
    """
    # 练习1: 根据年龄的范围打印人生阶段
    # 0~3   -   儿童
    # 4~17  -   少年
    # 18~28 -   青年
    # 29~39 -   壮年
    # 40~59 -   中年
    # 60及以上 -   老年
    age = 18
    if age <= 3:
        print('儿童')
    elif age <= 17:
        print('少年')
    elif age <= 28:
        print('青年')
    elif age <= 39:
        print('壮年')
    elif age <= 59:
        print('中年')
    else:
        print('老年')
    

作业

选择题 B|A|B|A|C、D|A|D

  1. print(100 - 25 * 3 % 4) 应该输出什么? (B)

    A. 1

    B. 97

    C. 25

    D. 0

  2. 下列哪种说法是错误的(A)。

    A. 除字典类型外,所有标准对象均可以⽤于布尔测试

    B. 空字符串的布尔值是False

    C. 空列表对象的布尔值是False

    D. 值为0的任何数字对象的布尔值是False

  3. 下列表达式的值为True的是(B)。

    A. 3>2>2

    B. 1 and 2 != 1

    C. not(11 and 0 != 2)

    D. 10 < 20 and 10 < 5

  4. Python不⽀持的数据类型有(A)。

    A. char

    B. int

    C. float

    D. list

  5. (多选)n = 6784,以下能够获取到7 的⽅法有(C、D)。

    A. n / 1000 % 100

    B. n % 1000 / 100

    C. n // 100 % 10

    D. n // 10 % 100 // 10

  6. 运⾏以下程序,当从键盘上输⼊12,运⾏结果是(A)。

    x = (input())
    print(type(x))
    

    A. <class 'str'>

    B. <class 'int'>

    C. 出错

    D. <class 'dict'>

  7. 下列表达式的运算结果是( D) 。

    a = 100
    b = False
    print(a * b > -1)
    

    A. False

    B. 1

    C. 0

    D. True

填空题 type|True|9|9、6、2

  1. 查看变量中数据的类型的函数名是(type)。
  2. 已知 x = 3 == 3 ,执⾏结束后,变量x的值为(True)。
  3. 已知 x = 3 ,那么执⾏语句 x += 6 之后,x的值为(9)。
  4. 表达式 3 ** 2 的值为(9),表达式 3 * 2 的值为(6),表达式 4 ** 0.5 的值为(2)。

编程题

  1. 写出判断⼀个数是否能同时被2和5整除的条件语句, 并且打印对应的结果。

    num = input('请输入一个数:')
    while True:
        try:
            num = int(num)
            break
        except ValueError:
            num = input('输入数据有误,请重新输入一个数:')
    if num % 10:
        print('该数不能同时被2和5整除')
    else:
        print('该数能同时被2和5整除')
    
  2. 写出判断⼀个数是否能够被2或者5整除,但是不能同时被2或者5整除的条件语句, 并且打印对应

    的结果。

    num = input('请输入一个数:')
    while True:
        try:
            num = int(num)
            break
        except ValueError:
            num = input('输入数据有误,请重新输入一个数:')
    if num % 10 and (not num % 2 or not num % 5):
        print('该数能够被2或者5整除')
    
  3. 假设今天的上课时间为15678秒,编程计算今天上课时间是多少⼩时,多少分钟,多少秒;以‘XX

    时XX分XX秒’的⽅式表示出来。

    例如:100秒表示成 0时1分40秒

    second = 15678
    _hour = second // 3600
    _minute = second // 60 % 60
    _second = second % 60
    print(_hour, '时', _minute, '分', _second, '秒', sep='')
    
  4. 定义两个变量保存⼀个⼈的身⾼和体重,编程实现判断这个⼈的身材是否正常!

    公式: 体重(kg) / (身⾼(m)的平⽅值 ) 在18.5 ~ 24.9之间属于正常。

    输出格式: 是否正常:True/False

    height = input('请输入身高(m):')
    while True:
        try:
            height = float(height)
            break
        except ValueError:
            height = input('输入身高数据有误,请重新输入身高(m):')
    weight = input('请输入体重(kg):')
    while True:
        try:
            weight = float(weight)
            break
        except ValueError:
            weight = input('输入体重数据有误,请重新输入体重(kg):')
    print('是否正常:', 18.5 <= weight / height**2 <= 24.9)
    
  5. 根据输入的成绩的范围打印及格 或者不及格

    grade = input('请输入成绩:')
    while True:
        try:
            grade = int(grade)
            break
        except ValueError:
            grade = input('输入成绩数据有误,请重新输入成绩:')
    if grade >= 60:
        print('及格')
    else:
        print('不及格')
    
  6. 根据输入的年纪范围打印成年或者未成年,如果年龄不在正常范围内(0~150)打印这不是人!

    age = input('请输入年龄:')
    while True:
        try:
            age = int(age)
            break
        except ValueError:
            age = input('输入年龄数据有误,请重新输入年龄:')
    # 方法一:
    if 0 <= age <= 150:
        if age >= 18:
            print('成年')
        else:
            print('未成年')
    else:
        print('这不是人!')
    # 方法二:
    if age < 0 or age > 150:
        print('这不是人!')
    elif age >= 18:
        print('成年')
    else:
        print('未成年')
    
  7. 输入两个整数a和b,若a-b的结果为奇数,则输出该结果,否则输出提示信息a-b的结果不是奇数

    a = input('请输入a的值:')
    while True:
        try:
            a = int(a)
            break
        except ValueError:
            a = input('输入a的值数据有误,请重新输入a的值:')
    b = input('请输入b的值:')
    while True:
        try:
            b = int(b)
            break
        except ValueError:
            b = input('输入b的值数据有误,请重新输入b的值:')
    if (a - b) % 2:
        print(a - b)
    else:
        print('a-b的结果不是奇数')
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值