一、条件语句if
条件语句,也叫作选择语句、判断语句。根绝特定条件判断是否成立,执行不同的语句段。简单来说,满足条件执行,不满足不执行。
条件语句是使用关键字 if 做判断,根据不同情况结合不同的关键字else 或者 elif来进行判断,总来的来说,有三种形式。
语法格式:if else elif后面以冒号结尾,执行语句要缩进;
### 第一种:单分支
if 表达式:
代码块[执行语句]
# 表达式就是特定的条件,if进行判断,结果是布尔值【True和False】
# 执行逻辑:表达式为True,执行代码块;表达式为False,不执行;
### 第二种:双分支
if 表达式:
执行语句1
else:
执行语句2
# 执行逻辑:表达式True,执行语句1;为False,执行语句2;
### 第三种:多分支
if 表达式1:
执行语句1
elif 表达式2:
执行语句2
elif 表达式3:
执行语句3
else:
执行语句n
# 执行逻辑:先判断表达式1,为True,执行语句1。为False,判断表达式2;
# 表达式2为True,执行语句2,为False,继续判断表达式3。。。
# 第四种:分支嵌套
if 表达式1:
if 表达式1-1:
执行语句1-1
else:
执行语句1-2
elif 表达式2:
if 表达式2-1:
执行语句2-1
else:
执行语句2-2
else:
执行语句3
注意事项:
① 参与判断的表达式可以是任意合法表达式,但是结果只有True和False;
② else不能单独出现,必须和前面的未被匹配的 if 进行配对;
1.1: 练习题
# 1、从键盘输入年龄,判断是否大于等于18岁,如果满足就输出“已成年”
age = int(input("请输入年龄:"))
if age >= 18:
print(f"你的年龄是{age}岁, 已成年。")
else:
print(f"你的年龄是{age}岁, 未成年!")
# 2、从键盘输入身高,如果身高没有超过150cm,则进动物园不用买票,否则需要买票
height = int(input("请输入你的身高:"))
if height <= 150:
print(f"你的身高是:{height}cm, 不用买票!")
else:
print(f"你身高已超过{height}cm, 需要买票!")
# 3、从键盘输入数字,判断这个数字是偶数还是奇数
num = int(input("请输入一个数:"))
if num % 2 == 0:
print(f"你输入的数是{num},为偶数")
else:
print(f"你输入的数是{num},为奇数")
# 4、从键盘输入年份,判断年份是闰年还是平年
year = int(input("请输入年份:"))
if (year%4==0 and year%100!=0) or year%400==0:
print(f"{year}年是闰年")
else:
print(f"{year}年是平年")
# 5、从键盘输入数字,判断这个数字是不是水仙花数
num = int(input("请输入一个三位数的数字:"))
g = num % 10
s = num // 10 % 10
b = num // 100 % 10
if b ** 3 + s ** 3 + g ** 3 == num:
print(f"{num}是水仙花数!")
else:
print(f"{num}不是水仙花数!")
# 6、从键盘输入一个成绩,判断成绩的等级:
# [90,100]等级A;[80,90)等级B;
# [70,80)等级C; [60,70)等级D;其他是等级E;
score = int(input("输入一个成绩分数:"))
if score >= 90:
print("你的成绩等级为:A")
elif 80 <= score < 90:
print("你的成绩等级为:B")
elif 70 <= score < 80:
print("你的成绩等级为:C")
elif 60 <= score < 70:
print("你的成绩等级为:D")
else:
print("你的成绩等级为:E")
# 7、从键盘输入三角形的三个边长,判断能否构成三角形;
# 如果能:输出能构成三角形,并再输出是什么三角形(等边,等腰,直角,普通)
# 如果不能:输出不能构成三角形
a = int(input("请输入三角形的边a: "))
b = int(input("请输入三角形的边b: "))
c = int(input("请输入三角形的边c: "))
if a+b>c and a+c>b and b+c>a:
print("能构成三角形")
if a==b and a==c and b==c:
print("等边三角形")
elif a==b or a==c or b==c:
print("等腰三角形")
elif a**2+b**2==c**2 or b**2+c**2==a**2 or a**2+c**2==b**2:
print("直角三角形")
else:
print("普通三角形")
else:
print("不能构成三角形")
二、条件语句match...case
Python3.10版本以后,Python解释器推出了match…case语句,提供了一种更强大的模式匹配方法。类似于C语言中的switch...case...default语句。
match 表达式:
case 模式1:
执行语句1
case 模式2:
执行语句2
......
case _:
其他情况的归属
2.1: 练习题
# 1. 从键盘输入一个月份,判断它所处的季节
# 冬季:12,1,2
# 春季:3,4,5
# 夏季:6,7,8
# 秋季:9,10,11
month = int(input("输入月份:"))
match month:
case 12 | 1 | 2:
print("冬季")
case 3 | 4 | 5:
print("春季")
case 6 | 7 | 8:
print("夏季")
case 9 | 10 | 11:
print("秋季")
case _:
print("输入有误,请重新输入!")
# 2. 从键盘上输入一个人的年龄,判断他属于人生哪个阶段:
# 如果年龄在1(包含)~12之间,输出“童年”;
# 如果年龄在12(包含)~18之间,输出“少年”;
# 如果大于等于18岁,则输出“成年”;
# 如果输入非数字或者小于1,提示输入错误
age = int(input("请输入一个年龄:"))
match age:
case x if 1<=x<12:
print("童年")
case x if 12<=x<18:
print("少年")
case x if x>=18:
print("成年")
case _:
print("输入有误,请重新输入!")
三、循环语句while
循环语句就是重复的反复的执行某一部分代码。
循环语句必须有指定的结束条件,否则会陷入死循环。
循环语句有两种控制方式:1、条件控制;2、计数控制
在python中,循环语句的实现关键字是while 和 for;
# while循环语法格式
while 表达式:
执行语句
# 执行逻辑:判断表达式为True,执行语句,执行完之后再次判断表达式为True,执行语句。。。
# 直到判断表达式为False,结束循环;
# while循环嵌套
while 表达式1:
while 表达式1-1:
执行语句1-1
执行语句1
# 【条件控制循环】
# 练习1:去超市买十斤苹果
total = 0 # 最开始的苹果总重量
while total < 10:
weight = float(input("放入的苹果的重量"))
total += weight
# 【计数控制循环】
# 练习2:去超市买10个苹果
count = 1
while count <= 10:
print(f"开始拿第{count}个苹果")
count += 1
3.1: 练习题
# 1、输入用户名和密码,判断用户名为admin 密码为hqyj666
# 若用户名和密码正确,提示登录成功;否则重新再次输入判断。
while True:
name = input("用户名")
pwd = input("密码")
if name=='admin' and pwd=='hqyj666':
print("登录成功")
break
else:
print("用户名或密码不正确,请重新输入")
# 2、根据“题目1”改写,执行三次密码验证
count = 0
while True:
name = input("请输入用户名:")
pwd = input("请输入密码:")
count += 1
if name=="admin" and pwd=="hqyj666":
print("登录成功!")
break
else:
print("用户名或密码不正确,请重新输入!")
if count == 3:
print("三次机会已用完,请联系管理员!")
break
# 打印九九乘法表
row = 1 # 行
while row<=9:
col = 1 # 列
while col<=row:
print(f"{col}*{row}={row*col:<2}", end=' ')
col += 1
print()
row += 1