第4章 条件判断

30 阅读5分钟

顺序结构

image.png

单分支选择结构

image.png

  • if语句 注意:代码的缩进为一个 tab 键,或者 4 个空格 —— 建议使用空格
weather ='下雨'
if weather=='下雨':
    print('带伞')

image.png

  • if语句的流程图
weather ='下雨'
if weather=='下雨':
    print('带伞')
 print( '注意安全')

image.png

双分支选择结构

  • if-else流程图
weather ='下雨'
if weather=='下雨':
    print('带伞')
else:
    print( '不用带伞')

image.png

多分支选择结构

  • if-elif-else image.png 使用 if 可以 判断条件 使用 else 可以处理 条件不成立 的情况 但是,如果希望 再增加一些条件,条件不同,需要执行的代码也不同 时,就可以使用 elif

  • if-elif-else

bmi计算
bmi=体重(kg)/(身高*身高(米))
标准:
bmi<18.5 过瘦
18.5-23.9 正常
23.9 过胖

#bmi计算
#bmi计算
#bmi=体重(kg)/(身高*身高(米))
#bmi<18.5 过瘦 18.5-23.9 正常 >23.9过胖
#完成输入功能
height=float(input('请输入你的身高:'))
weight=float(input('请输入你的体重: ')
#完成bmi值的计算
bmi=weight/(height*heightprint(bmi)
#判断bmi的值
if bmi<18.5:
    print( '太瘦了,多吃点吧")
elif bmi<23.9:
    print( '非常健康,继续保持! ')
else:
    print('瘦点更漂亮哦')

日期判断
需求: 从控制台输入一个数字, 如果是1则输出星期一, 2则输出星期二, 依次类推

num = int(input()
#全部使用if语句可以实现
if num == 1:
    print("星期一")
if num == 2:
    print("星期二")
if num == 3:
    print("星期三")
if num == 4:
    print("星期四")
if num == 5:
    print("星期五")
if num == 6:
    print("星期六")
if num == 7:
    print("星期日")

嵌套选择

  • 嵌套选择 在开发中,使用 if 进行条件判断,如果希望 在条件成立的执行语句中 再 增加条件判断,就可以使用 if 的嵌套
    if 的嵌套 的应用场景就是:在之前条件满足的前提下,再增加额外的判断
    if 的嵌套 的语法格式,除了缩进之外 和之前的没有区别

image.png

match

Python中的match语句是Python 3.10及以后版本中引入的新特性,用于模式匹配。
它允许你根据对象的模式来检查对象,并执行相应的代码块。

image.png

match语句中的每个代码块由一个或多个case子句组成。
每个case子句后面跟着一个模式和一个代码块。
当模式匹配成功时,会执行相应的代码块。
如果没有任何模式匹配成功,则可以选择使用一个默认的代码块,使用下划线_来表示。

使用字符串模式来检查变量text的值。
如果text的值是"hello",则打印'text is hello';
如果text的值是"world",则打印'text is world';
否则,打印"text is neither 'hello' or 'world"。

text = "hello"  
match text:
    case "hello":
        print("text is 'hello'")
    case "world" :
        print("text is 'world'")
    case _: #匹配所有其他值
        print("text is neither 'hello' nor 'world'")

match与if的对比

  • if

    1. if语句是最基本的条件控制结构,用于基于条件测试执行不同的代码块。
    2. if语句在处理简单条件和分支时非常有用。
    3. 你可以使用elif(else if)来添加额外的条件分支。
    4. if语句不支持模式匹配,只能基于布尔表达式进行条件判断。
  • match

    1. match语句是Python 3.10及以后版本引入的新特性,主要用于模式匹配。
    2. match语句允许你根据对象的模式结构来检查对象,并根据匹配的模式执行相应的代码块。
    3. match语句特别适用于处理复杂的数据结构,如元组、列表、字典等,以及自定义类的实例。
    4. 它通过模式匹配提供了更简洁、更直观的方式来处理复杂的条件逻辑。

知识总结

image.png

代码规范

缩进  
    条件判断、循环、函数定义的时候都需要用缩进来控制代码块结束  
    小技巧:一般句尾有冒号时,都是需要缩进的  
    四个空格或者一个tab键为一个缩进  
代码编排  
    缩进4个空格,不能用tab键和空格混合缩进  
    所有行限制的最大字符数为79  
    添加适当的空行  
空格  
    二元运算符两边添加一个空格  
    逗号、分号、冒号后边留一个空格,前面不留  

练习

1. 下列数值填入①处后,不能输出 a 的是(D )。
if _①__:
    print(“a”)
A. 3 
B. 2 
C. 1 
D. 0
2. 关于 Python 的分支结构,以下选项中描述错误的是 D
A. 分支结构使用 if 保留字
B. Pythonif-else 语句用来形成二分支结构
C. Pythonif-elif-else 语句描述多分支结构
D. 分支结构可以向已经执行过的语句部分跳转
4. 运行下方代码段,输出的是( )。
A. 0 
B. 1 
C. 2 
D. None

image.png

5. python多条件判断,可以用(A)来实现。
A. elif
B. else
C. swticn
D. ifelse
6. 定义一个整数变量 age,编写代码判断年龄是否正确
要求人的年龄在 0-120 之间
age = input('请输入年龄: ')
age = int(age)
if age <= 120 and age >= 0:
    print('正确')
else:
    print('错误')
  1. 定义两个整数变量 python_score、c_score,编写代码判断成绩
    要求只要有一门成绩 >= 60 分就算合格
py_score = input('请输入你的python课程成绩:')
c_score = input('请输入你的C课程成绩:')

if py_score.isdigit() and c_score.isdigit():
    py_score = int(py_score)
    c_score = int(c_score)
    if py_score>=60 or c_score>=60:
        print('合格')
    else:
        print('重修')
else:
    if not py_score.isdigit():
        print('py的成绩必须输入数字!')
    if not c_score.isdigit():
        print('c的成绩必须输入数字!')
  1. 闰年判断 输入一个年份(大于 1582 的整数 ),判断这一年是否是闰年,如果是输出 1,否则输出 0。 普通闰年的年份是4的倍数,且不是100的倍数;世纪闰年的年份必须是400的倍数。
year = int(input('请输入年份:'))
if (not year % 4  and year % 100 ) or not year % 400:
    print('是闰年')
else:
    print('不是闰年')