# 流程控制 ## 判断语句(if) **语法:** ```python if 条件: 满足条件后要执行的代码 ``` image-20240904142740373 ### 单分支判断 ```python # 提示用户输入年龄 age = int(input("请输入你的年龄:")) # 单分支判断 if age >= 18: print("已经成年,可以去网吧上网了") print("欢迎来到Eagles网吧") print("你还没成年,要好好学习") ``` ### 双分支判断 ```python """ if 条件: 满足条件执行代码 else: if条件不满足就走这段 """ # 提示用户输入年龄 age = int(input("请输入你的年龄:")) # 单分支判断 if age >= 18: print("已经成年,可以去网吧上网了") print("欢迎来到Eagles网吧") else: print("你还没成年,要好好学习") ``` ### 多分支判断 ```python if 条件: 满足条件执行代码 elif 条件: 上面的条件不满足就走这个 elif 条件: 上面的条件不满足就走这个 elif 条件: 上面的条件不满足就走这个 else: 上面所有的条件不满足就走这段 # 成绩判断程序 # 提示用户输入成绩 score = int(input("请输入成绩(0-100):")) # 多分支判断成绩 if score >= 90 and score <= 100: print("优秀") elif score >= 60 and score < 90: print("良好") elif score >= 0 and score < 60: print("不及格") else: print("输入错误,请输入0到100之间的成绩。") ``` ## 循环语句-while **语法:** ```python while 条件: 循环体 # 循环条件可以直接是True/False或者1/0,也可以是某个语句... ``` 如果条件为真,那么循环体则执行 如果条件为假,那么循环体不执行 **示例:猜数字小游戏** ```python print('猜数字游戏开始') num = 54 while True: guess = int(input("您猜数字是什么?(输入0-100的数字):")) if guess < num: print("您猜小了") continue elif guess > num: print("您猜大了") continue break print("您猜对了!") # Output: 猜数字游戏开始 您猜数字是什么?(输入0-100的数字):10 您猜小了 您猜数字是什么?(输入0-100的数字):50 您猜小了 您猜数字是什么?(输入0-100的数字):60 您猜大了 您猜数字是什么?(输入0-100的数字):54 您猜对了! ``` ### 循环终止语句 #### break 用于完全结束一个循环,跳出循环体执行循环后面的语句 #### continue 和 break 有点类似,区别在于 continue 只是终止本次循环,接着还执行后面的循环,break 则完全终止循环 #### while...else结构 while 后面的 else 作用是指,当 while 循环正常执行完,中间没有被 break 中止的话,就会执行 else 后面的语句 - **语法:** ```python while condition: # 循环体 if some_condition: break else: # 循环正常结束时执行的代码 ``` - **示例:** ```python # 寻找素数的示例 num = 10 i = 2 while i < num: if num % i == 0: print(f"{num} 不是素数,因为它可以被 {i} 整除。") break i += 1 else: print(f"{num} 是一个素数!") ``` ## 循环语句-for for循环:用户按照顺序循环可迭代对象的内容 **语法:** ```python for variable in iterable: # 循环体 # 执行的代码 ``` ### 遍历列表 ```python fruits = ["apple", "banana", "cherry"] for fruit in fruits: print(fruit) # Output: apple banana cherry ``` ### 遍历字符串 ```python word = "helloworld" for letter in word: print(letter) # Output: h e l l o w o r l d ``` ## enumerate enumerate:枚举,对于一个可迭代的(iterable)/可遍历的对象(如列表、字符串),enumerate将其组成一个索引序列,利用它可以同时获得索引和值。 ```python li = ['甲','乙','丙','丁'] for i in enumerate(li): print(i) for index,value in enumerate(li): print(index,value) for index,value in enumerate(li,100): #从哪个数字开始索引 print(index,value) # Output: (0, '甲') (1, '乙') (2, '丙') (3, '丁') 0 甲 1 乙 2 丙 3 丁 100 甲 101 乙 102 丙 103 丁 ``` ## range 指定范围,生成指定数字 ```bash for i in range(1,10): print(i) for i in range(1,10,2): # 步长 print(i) for i in range(10,1,-2): # 反向步长 print(i) ``` ### 小游戏案例 石头简单布 ```bash import random # random产生随机值或者从给定值中随机选择 # 可选择的选项 options = ["石头", "剪子", "布"] print("欢迎来到石头剪子布游戏!") print("请从以下选项中选择:") for i, option in enumerate(options): print(f"{i + 1}. {option}") # 玩家选择 player_choice = int(input("请输入你的选择(1-3):")) - 1 # 计算机随机选择 computer_choice = random.randint(0, 2) print(f"\n你选择了:{options[player_choice]}") print(f"计算机选择了:{options[computer_choice]}") # 判断胜负 if player_choice == computer_choice: print("平局!") elif (player_choice == 0 and computer_choice == 1) or \ (player_choice == 1 and computer_choice == 2) or \ (player_choice == 2 and computer_choice == 0): print("你赢了!🎉") else: print("你输了!😢") ```