Skip to content

Python核心语法-流程控制语句

数据的逻辑处理

条件判断

if语句的基本格式

场景: 只有满足指定条件,才会执行对应的代码逻辑。

python
#if条件判断基本格式

if 要判断的条件:
	 条件成立时,要执行对应的操作
python
#定义变量
score = 695
#条件判断
if score > 680:
   print("欢迎你,来清华读书“)

注意:

Python中是通过缩进来描述代码的归属的,归属于if代码块的语句,需要在前方缩进4个空格

判断条件的结果一定是布尔类型

不要忘记判断条件后的冒号

if…else

python
#if...else 结构
if 要判断的条件:
   条件成立时,执行对应的操作1
else:
	 条件不成立时,执行的操作2

练习

🤔根据用户输入的考试分数,判断该分数是否及格了(大于等于60就是及格了)。

python
score = int(input("请输入考试分数: "))

if score >= 60:
    print(f"{score} 分, 及格了")
else:
    print(f"{score} 分, 不及格")

if…elif…else

python
if 条件1:
    # 代码块1
elif 条件2:
    # 代码块2
else:
    # 代码块3
    
    #从上到下依次检查条件,一旦某个条件为 True,执行对应块并跳过后续判断。

注意:

elif 可以写多个

else 可有可无,如果有必须放在最后

多个条件判断时有顺序的,从上到下判断,如果前面有条件成立,后面的条件不会判断了

练习

🤔购物折扣计算:根据输入的购物车的商品总额,以及如下的折扣规则,计算实际应付的金额。

  1. 金额 >= 500: 8折
  2. 300 <= 金额 < 500: 9折
  3. 100 <= 金额 < 300: 95折
  4. 金额 < 100: 无折扣
python
total_price = float(input("请输入购物车商品总额: "))

if total_price >= 500:
    print(f"{total_price} 元商品, 8折, 实际应付: {total_price * 0.8} 元")
elif total_price >= 300:
    print(f"{total_price} 元商品, 9折, 实际应付: {total_price * 0.9} 元")
elif total_price >= 100:
    print(f"{total_price} 元商品, 95折, 实际应付: {total_price * 0.95} 元")
else:
    print(f"{total_price} 元商品, 无折扣, 需支付: {total_price} 元")

模式匹配

match…case

结构模式匹配就是用一个清晰的 模版 去精准的匹配数据的结构和内柔,匹配成功则执行相应的操作

python
day = int(input("请输入星期几"))
match day:
		case 1:
				print("工作"
		case 2:
				print("工作"
		case 3:
				print("工作"
		case 4:
				print("工作"
		case 5:
				print("工作"
		case 6:
				print("休息"
		case 7:
				print("休息")
		case _:
				print("输入错误")

练习

🤔请你编写一个游戏角色移动控制系统,根据玩家输入的不同指令,控制游戏角色执行相应的动作(输出控制台)。

具体规则:

  • 上 / w /W 角色向上移动
  • 下 / s / S 角色向下移动
  • 左 / a / A 角色向左移动
  • 右 / d / D 角色向右移动
  • 跳 / " "(空格) 角色跳跃
  • 攻击 / j / J 角色发动攻击
  • 退出 / esc / ESC 角色退出游戏
python
oper = input("请输入操作: ")

match oper:
    case "w" | "W" | "上":
        print("角色向上移动")
    case "s" | "S" | "下":
        print("角色向下移动")
    case "a" | "A" | "左":
        print("角色向左移动")
    case "d" | "D" | "右":
        print("角色向右移动")
    case " " | "跳":
        print("角色跳跃")
    case "j" | "J" | "攻击":
        print("角色攻击")
    case "esc" | "ESC" | "退出":
        print("角色退出游戏")
    case _:
        print("非法操作, 不支持!!!")

循环

while循环

for循环

while循环是通过条件表达式来控制是否要进行下一次循环的,而for循环,本质是一种轮询遍历机制,对一批内容进行逐个处理

python
#定义要遍历的字符串
msg = "hello-Python"

#遍历字符串,并处理
for i in msg
		print(i)
else:
		print("循环结束")

range语句

嵌套循环

练习

🤔根据输入的数字,打印对应的数字金字塔 1 1 2 1 2 3 1 2 3 4 1 2 3 4 5 1 2 3 4 5 6 1 2 3 4 5 6 7

python
num = int(input("请输入数字: "))

for i in range(1, num+1):
    for j in range(1, i + 1):
        print(j, end=" ")
    print()

breka关键字

不能单独书写,只能出现循环中,表示结束,跳出的意思

continue关键字

不能单独书写,只能出现在循环中,表示中断本次循环,进入下一次循环

python
# 示例:在数字列表中搜索,跳过负数,发现0时停止
data = [5, 3, -1, 8, 0, 2, 4]

print("开始处理数据:")
for num in data:
    if num < 0:
        print(f"跳过负数: {num}")
        continue  # 跳过本次迭代,不执行后续print
    if num == 0:
        print("遇到0,终止循环。")
        break  # 终止整个循环
    print(f"有效值: {num}")

print("循环结束。")