IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> Day003 - Python运算符与分支结构 -> 正文阅读

[Python知识库]Day003 - Python运算符与分支结构

算术运算符

符号+-*/%//**
含义求余数(取模)取整除幂运算

常见算术运算符

  • +(加)、-(减)、*(乘)、/(除)和数学中的对应运算功能一模一样

其他算术运算符

  • % - 求余数、取模

    # x % y - 求x除以y的余数
    print(5 % 2,16 % 2)
    # 得到结果
    1,0
    
    • 判断一个数是否被另外一个数整除(看余数是否为0)

      if 27 % 3 == 0:
          print('27能被3整除')
      # 得到结果
      27能被3整除
      
    • 取低位数(对10或者10的幂次方取余)

      num = 2345
      print(num % 10, num % 100, num % 1000)  # 5
      # 得到结果
      5,45,345
      
  • // - 整除

    # x // y - x除以y的商向小取整
    print(5 // 2, 1.8 // 2, -5 // 2)
    # 得到结果
    2,0.0,-3
    
    • 正整数去低位或者正整数取高位

      num = 34567
      print(num // 10)  # 3456.7 保留3456
      print(num // 100)  # 345.67 保留345
      
    • 课堂练习

      1. 获取指定正整数的十位数;

        num = 3945897
        print(num % 100 // 10)
        print(num // 10 % 10)
        
      2. 获取指定正整数的百位数

        num = 379745
        print(num % 1000 // 100)
        print(num // 100 % 10)
        
  • * - 幂运算*

    # x ** y - 求x的y次方
    print(2 ** 3, 5 ** 3)  # 8,125
    print(16 ** 0.5)  # 4.0
    print(27 ** (1 / 3))  # 3.0
    
    • 注意点

      print(2.2 ** 2)  # 2.2 * 2.2 = 4.84 但结果为 4.840000000000001
      

      原因:(计算机存储原理问题)

      计算机在存储浮点数的时候会存在精度问题;

比较运算符

符号><>=<===!=
含义大于小于大于等于小于等于等于不等于
  • 重要结论:所有比较运算符的运算结果都是bool值

    print(10 > 21)  # False
    print(25 < 45)  # True
    print(14 <= 14)  # True
    print(20 == 10)  # False
    print(20 != 10)  # True
    
  • Python中的比较运算符可以像数学一样通过连写来表示范围

    age = 3
    print(18 <= age <= 28)  # False
    

逻辑运算符

符号andornot
含义逻辑与逻辑或逻辑非
  • and - 逻辑与运算符

    • 相当于生活中的并且,用于连接需要同时满足的多个条件;

    • 运算规则:只有and两边的两个条件都是True,结果就是True;只要有一个False结果就是False;

    • 四种情况:

      """
      条件1 and 条件2 
      True and True   -   True
      True and False  -   False
      False and True  -   False
      False and False -   False
      """
      
    • 课堂练习

      1. 写出一个数能同时被3和7整除的条件
      num = 21
      print('num是否同时被3与7整除:', num % 3 == 0 and num % 7 == 0)
      print('num是否同时被3与7整除:', num % 21 == 0)
      
  • or - 逻辑或运算符

  • 相当于生活中的或者,用于连接需要多个条件中满足任意一个条件的情况;

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

  • 四种情况:

    """
    条件1 and 条件2 
    True and True   -   True
    True and False  -   True
    False and True  -   True
    False and False -   False
    """
    
  • 课堂练习

    1. 拿奖学金条件:绩点高于4或者操行分不低于95;
    gpa = 4.0
    score = 95
    print('能否拿奖学金:', gpa > 4 or score >= 95)
    
    1. 判断指定的年是否是闰年;
    year = 2020
    # 写法1:
    if year % 4 ==0 and year % 100 != 0:
        print('普通闰年')
    if year % 400 == 0:
        print('世纪闰年')
    # 写法2:
    print((year % 4 == 0 and year % 100 != 0) or year % 400 == 0)
    
  • not - 逻辑非运算符

    • not 条件 - 否定条件,取反操作;

    • 对指定条件进行否定(取反),使用较少,一般用于正向条件很复杂,反向条件却很简单的时候;

    • 运算规则:把True变成False,False变成True;

    • 两种情况:

      not True    -   False
      not False   -   True
      
    • 课堂练习

      1. 年龄不大于18
      age <= 18
      not age > 18
      
      1. 写出一个不能同时被3和7整除的条件
      # 正向条件
      """
      能被3整除,不能被7整除
      不能被3整除,能被7整除
      既不能被3整除,也不能被7整除
      """
      # 反向条件
      print(not num % 21 == 0)
      
  • 短路操作

    • 逻辑与运算短路操作 - 如果条件1已经是False,那么条件2不会执行;

    • 逻辑或运算短路操作 - 如果条件1已经是True,那么条件2不会执行;

    True and print('逻辑与运算条件2被执行')
    False and print('逻辑与运算条件2被执行')
    True or print('逻辑或运算条件2被执行')
    False or print('逻辑或运算条件2被执行')
    
  • 逻辑运算符的扩展 - 运算对象不是布尔值

    • 条件1 and 条件2 - 如果条件1为真(True),结果是数据2;条件1为假(False)则结果为条件1;
    • 条件1 or 条件2 - 如果条件1为真(True),结果为数据1;条件1为假(False)则结果为条件2;
    print(0 and 3)
    print(0 or 0.0)
    
  • 数据的布尔值 - 数据转成布尔值的结果

    • Python中所有类型的数据都有布尔值;
    • 所有的零值和空值对应的布尔值是False,其他数据的布尔值都是True;
    • 常见的零值与空值:0、0.0、0.00、’’、""、[]、()、{}、None;
    print(bool(0), bool(0.00), bool(''), bool([]), bool(None))
    print(bool(1), bool(-1), bool(0.01), bool('x'), bool('False'))
    # 运算结果
    False False False False False
    True True True True True
    

赋值运算符

符号=+=-=*=/=%=//=**=
含义简单赋值加法赋值减法赋值乘法赋值除法赋值取模赋值取整赋值幂赋值

重要结论

  • 所有的赋值运算的功能都是给变量赋值,不会产生一个结果(赋值运算的表达式没有结果);
  • 所有的赋值运算的左边必须是变量且已经被定义过;

赋值方式

  • 变量 = 数据 -> 直接赋值

  • 变量 += 数据 -> 变量 = 变量 + 数据

    name = 'abc'
    num = 5 // 2
    print(name,num)
    b = 9
    b += 2
    print('b += 2', b)
    b -= 3
    print('b -= 3', b)
    b **= 2
    print('b **= 2', b)
    b %= 2
    print('b %= 2', b)
    # 赋值结果
    abc 2
    b += 2 11
    b -= 3 8
    b **= 2 64
    b %= 2 0
    

运算符优先级

  • 数学运算符 > 比较运算符 > 逻辑运算符 > 赋值运算符
  • 数学运算符优先级 - ** > 、/、//、% > ± (有括号先算括号里面的)

分支结构

流程控制

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

if分支结构

if单分支结构

  • 满足条件执行某个操作,这个条件不满足的时候操作不执行;

  • 语法

    if condition:
    	代码块
    # condition必须是一个bool类型,这个地方有一个隐式转换bool(condition)
    
  • 说明

    • if - 关键字,固定写法;
    • condition - 任何有结果的表达式,例如:数据、运算表达式(赋值除外)、函数调用表达式等;
    • : - 固定写法;
    • 代码块 - 就是和if保持缩进的一条或者多条语句;
  • 执行过程

    1. 先判断条件语句是否为True(如果条件语句不是布尔值,则转换为布尔值);
    2. 如果为True就执行代码段;
    3. 如果为False则代码不执行;
  • 课堂练习

    1. 如果指定的数是偶数就打印偶数

      num = 24
      # 写法1
      if num % 2 == 0:
          print('数字:{} 为偶数'.format(num))
      # 写法2
      if not num % 2:
          print('数字:{} 为偶数'.format(num))
      
    2. 如果指定的数是奇数就打印奇数

      num = 24
      # 写法1
      if num % 2 != 0:
          print('数字:{} 为奇数'.format(num))
      # 写法2
      if num % 2:
          print('数字:{} 为奇数'.format(num))
      
    3. 判断是否是水仙花数

      num = 153
      if (num % 10) ** 3 + (num % 100 // 10) ** 3 + (num // 100) ** 3 == num:
          print('该数为水仙花数')
      
    4. 打印出所有的水仙花数

      flower = []
      for i in range(100, 1000):
          if (i % 10) ** 3 + (i % 100 // 10) ** 3 + (i // 100) ** 3 == i:
              flower.append(i)
      print(flower)
      

if双分支结构

  • 满足条件执行某个操作,这个条件不满足的时候执行另外一个操作;

  • 如果 xxx 就 xxx 否则 xxx

  • 语法

    if 条件语句:
        代码段1(满足条件才执行的代码)
    else:
        代码段2(不满足条件才执行的代码)
    代码段3(不管条件满不满足都要执行的代码)
    
  • 练习

    1. 根据年龄打印成年或者未成年

      age = 28
      if age >= 18:
          print('成年')
      else:
          print('未成年')
      

if多分支结构

  • 根据不同的条件做不一样的事情

  • 语法

    if 条件语句1:
        代码段1
    elif 条件语句2:  
        代码段2
    elif 条件语句3:
        代码段3
    ...
    else:
        代码段N 
    # 条件语句2有一个隐含条件:已经不满足条件1,所以在写条件语句2的时候可以省略关于条件语句1的判断区间
    # 多个条件中,如果其中一个条件满足,其他的条件绝对不会满足
    
  • 练习

    1. 将指定百分制的分数分成A(90以上)、B[80, 90]、C[60,80)、D(60以下)四个等级

      # 写法1
      score = 90
      if score > 90:
          print('成绩为A')
      elif 80 <= score <= 90:
          print('成绩为B')
      elif 60 <= score < 80:
          print('成绩为C')
      else:
          print('成绩为D')
      # 写法2
      if score > 90:
          print('成绩为A')
      # 条件2有一个隐含条件:已经不满足条件1,所以[80,90]区间可以简写为score >= 80
      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.0)。

编程题

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

    num = 150
    if num % (2*5) == 0:
        print(num, '能被2和5同时整除')
    # 结果
    # 150 能被2和5同时整除
    
  2. 写出判断?个数是否能够被2或者5整除,但是不能同时被2或者5整除的条件语句, 并且打印对应的结果。

    num = 152
    if num % 2 == 0 and num % 5 != 0:
        print(num, '能被2整除,不能被5整除')
    elif num % 2 != 0 and num % 5 == 0:
        print(num, '能被5整除,不能被2整除')
    # 结果
    # 152 能被2整除,不能被5整除
    
  3. 假设今天的上课时间为15678秒,编程计算今天上课时间是多少?时,多少分钟,多少秒;以‘XX 时XX分XX秒’的?式表示出来。

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

    Total_time = 15678
    s = Total_time % 60
    m = Total_time // 60 % 60
    h = Total_time // (60 * 60)
    print('{}时{}分{}秒'.format(h, m, s))
    # 结果
    # 4时21分18秒
    
  4. 定义两个变量保存?个?的身?和体重,编程实现判断这个?的身材是否正常!

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

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

    hight = float(input('请输入身高(单位:m):'))
    weight = float(input('请输入体重(单位:kg):'))
    if 18.5 <= weight / hight**2 <= 24.9:
        print('是否正常:', True)
    else:
        print('是否正常:', False)
    
  5. 根据输入的成绩的范围打印及格 或者不及格

    Total_score = int(input('请输入满分:'))
    Score = int(input('请输入得分:'))
    if Score >= Total_score*0.6:
        print('及格')
    else:
        print('不及格')
    # 输入总分100,得分59,结果
    # 不及格
    
  6. 根据输入的年纪范围打印成年或者未成年,如果年龄不在正常范围内(0~150)打印这不是人!

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

    a = int(input('请输入整数a:'))
    b = int(input('请输入整数b:'))
    if (a - b) % 2 == 1:
        print('a-b的结果为:', a - b)
    else:
        print('a-b的结果不是奇数')
    
  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-07-15 16:07:41  更:2021-07-15 16:10:04 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/4 7:33:33-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码