运算符与分支

本文详细介绍了Python中的运算符,包括数学运算符、取模运算、整除、幂运算以及比较运算符。此外,还讲解了逻辑运算符及其用法。接着,文章深入探讨了Python的分支结构,包括单分支、双分支和多分支结构,并给出了相应的编程实例。最后,通过一系列的练习题巩固了所学知识。
摘要由CSDN通过智能技术生成

运算符与分支

一.运算符

  • 数学运算符

    • +、-、*、/ 和数学中的+、-、×、÷ 的功能一模一样

      # 1. +、-、*、/ 和数学中的+、-、×、÷ 的功能一模一样
      print(5 + 2)
      print(5 - 2)
      print(5 * 2)
      print(5 / 2)
      
    • % - 求余数、取模

      # x % y  - 求x除以y的余数
      print(5 % 2)
      print(16 % 2)
      
      # 应用1:判断一个数是否能够被另外一个数整除(看余数是否为0)
      print(15 % 5)
      
      # 应用2:取低位数(对10或者10的幂次方取余)
      num = 2398
      print(num % 10)    # 8
      print(num % 100)   # 98
      
    • // - 整除

      # x // y  - x除以y的商向小取整
      print(5 // 2)    # 2;   2  2.5  3
      print(1.8 // 2)     # 0.0;  0  0.9  1
      print(-5 // 2)     # -3;  -3  -2.5  -2
      
      # 应用:正整数去低位
      num = 23489
      print(num // 10)    # 2348
      print(num // 100)
      
      # 练习2:获取指定正整数的十位数
      num = 3945
      print(num // 10 % 10)    # 4
      print(num % 100 // 10)   # 4
      
      # 练习3:获取指定正整数的百位数
      num = 3945
      print(num // 100 % 10)
      print(num % 1000 // 100)
      
    • ** - 幂运算

      # x ** y  -  求x的y次方
      print(2 ** 3)
      print(5 ** 3)
      print(16 ** 0.5)    # 4.0
      print(27 ** (1/3))  # 3.0p
      print(2.2 ** 2)    # 2.2 * 2.2 = 4.84
      print(2.0 ** 2)
      
  • 比较运算符 :所有比较运算的结果都是布尔;可以像数学一样通过连写来表述范围

    age = 3
    print(18 <= age <= 28)
    
    • 大于(>)

      print(10 > 20)		# False
      
    • 小于(<)

      print(10 < 20)		# True
      
    • 大于等于(>=)

      print(10 >= 10) 		# True
      
    • 小于等于(<=)

      print(10 <= 10) 		# True
      
    • 等于(==)

      print(20 == 10)  		#False
      
    • 不等于(!=)

      print(20 != 10)		# True
      
  • 逻辑运算符

    • 与运算(and):两个都是True结果就是True,只要有一个是False结果就是False

      """
      条件1 and 条件2
      True and True   -   True
      True and False  -   False
      False and True  -   False
      False and False -   False
      """
      
    • 或运算(or):只要有一个是True结果就是True,两个都为False结果才是False

      """
      条件1 or 条件2
      True or True   -   True
      True or False  -   True
      False or True  -   True
      False or False -   False
      """
      
    • 非运算(not):True变False, False变True

      """
      not 条件
      not True    -  False
      not False   -  True
      """
      
  • 逻辑运算扩展 - 运算对象不是布尔值

    """
    数据1 and 数据2  -  如果数据1的布尔值是True,结果就是数据2,否则结果是数据1
    数据1 or 数据2  -  如果数据1的布尔值是True,结果就是数据1,否则结果是数据2
    """
    print(8 and 7)     # 7
    print(10 and 7)     # 7
    print(0 and 7)      # 0
    print(False and 7)  # False
    
    print(8 or 7)       # 8
    print(0 or 7)       # 7
    
  • 赋值运算符

    • 赋值运算符:有的赋值运算的功能都是给变量赋值,不会产生一个结果。所有的赋值运算符的左边必须是变量

      • 赋值运算符 :=、+=、-=、*=、/=、%=、//=、**=
    • 运算符的优先级: 数学运算符 > 比较运算符 > 逻辑运算符 > 赋值运算符。有括号先算括号里面的

二.分支结构

  • 流程控制

    """
    1)顺序结构(默认)  -   代码从上往下依次执行,每条语句执行一次
    2)分支结构  -   代码的执行看条件是否成立(if语句)
    3)循环结构  -   让代码重复(for、while)
    """
    print('1')
    print('2')
    print('3')
    
  • if分支结构

    • if单分支结构

      a.语法:
      if 条件语句:
          代码段
      
      b.说明
      if      -       关键字,固定写法
      条件语句    -     任何有结果的表达式,例如:数据、运算表达式(赋值运算除外)、函数调用表达式等
      :       -       固定写法
      代码段   -       就是和if保持一个缩进的一条或者多条语句(至少一条);就是需要满足条件才执行代码
      
      c.执行过程
      先判断条件语句是否为True(如果条件语句的结果不是布尔,就转换成布尔再看),如果为True就执行代码段,否则代码段不执行
      """
      a = -100
      if a > 10:
          print('代码1')
          print('代码2')
          print('代码3')
      print('代码4')
      
    • if双分支结构

      """
      语法:
      if 条件语句:
          代码段1(满足条件才执行的代码)
      else:
          代码段2(条件不满足的时候才执行的代码)
      代码段3(不管条件满不满足都要执行的代码)
      """
      # eg:根据年龄值打印成年或者未成年
      age = 8
      if age >= 18:
          print('成年')
      else:
          print('未成年')
      
    • if多分支结构

      """
      语法:
      if 条件语句1:
          代码段1
      elif 条件语句2:
          代码段2
      elif 条件语句3:
          代码段3
      ...
      else:
          代码段N
          
      前提:多个条件中如果其中一个条件满足,其他的条件绝对不会满足
      
      多个条件之间不存在约束关系:
      if 条件1:
          代码段1
      if 条件2:
          代码段2
      ...
      """
      # eg:将指定百分制的分数分成A(90以上)、B[80, 90]、C[60,80)、D(60以下)四个等级
      score = 98
      
      if score > 90:
          print('A')
      elif score >= 80:
          print('B')
      elif score >= 60:
          print('C')
      else:
          print('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

填空题

  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 = 10
    if num % 10 == 0:
        print('能同时被2和5整除',num)
    
    
    
    
  2. 写出判断⼀个数是否能够被2或者5整除,但是不能同时被2或者5整除的条件语句, 并且打印对应

    的结果。

    num = 10
    if num % 10:
        print('能同时被2和5整除',num)
    else:
        print('不能同时被2和5整除',num)
    
    
    
    
  3. 假设今天的上课时间为15678秒,编程计算今天上课时间是多少⼩时,多少分钟,多少秒;以‘XX

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

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

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

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

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

    w = 65
    h = 1.8
    if 18.5 <= w / h**2 <= 24.9:
        print('正常')
    else:
    	print('不正常')
    
  5. 根据输入的成绩的范围打印及格 或者不及格

    score =89
    if score >= 60:
        print('及格')
    else:
        print('不及格')
    
  6. 根据输入的年纪范围打印成年或者未成年,如果年龄不在正常范围内(0~150)打印这不是人!

    year = input('请输入年龄:')
    if 0 < int(year) < 18:
        print('未成年')
    elif 18 <= int(year) < 150:
        print('成年')
    else:
        print('这不是人!')
    
  7. 输入两个整数a和b,若a-b的结果为奇数,则输出该结果,否则输出提示信息a-b的结果不是奇数

a = int(input("输入一个整数a"))
b = int(input("输入一个整数b"))
c = (a - b)
if c % 2 == 0:
   print(c,'不是奇数')
else:
   print(c) 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值