Day03 课程(if elif else & 三目运算符)
课程:https://www.bilibili.com/video/BV1o4411M71o?spm_id_from=333.788.videopod.episodes&p=46
3.1 if的作用和语法
3.1.1 目标
条件语句作用
if语法
if...else...
多重判断
if嵌套
3.1.2 了解条件语句
假设一个场景:
去网吧,为什么要把身份证给工作人员?
是不是就是为了判断是否成年?
是不是如果成年可以上网?如果不成年则不允许上网?
这里所谓的判断就是条件语句,即 条件成立执行某些代码,条件不成立则不执行这些代码
3.1.3 if 语法
if 条件: 条件成立执行的代码1 条件成立执行的代码2
3.2 体验if
# 条件成立,才执行带缩进的代码, if True: print("条件成立执行的代码1") print("条件成立执行的代码2") if False: print("条件成立执行的代码3") print("条件成立执行的代码4") print("这个代码是否会执行?") # 顶格,与判断无关,无论判断是否成立,都执行此代码 ------------------------------------------------ 执行后 C:\Users\马俊南\AppData\Local\Microsoft\WindowsApps\python3.13.exe D:\Pycharm\code\day03\01-if判断.py 条件成立执行的代码1 条件成立执行的代码2 这个代码是否会执行? Process finished with exit code 0
3.3 网吧上网(简单版)
需求分析:如果用户年龄大于等于18岁,即成年,输出"已经成年,可以上网"
# 分析: 年龄大于等于18,输出:已经成年,可以上网 - 准备年龄的数据 和 18做比较 age = 20 if age >= 18: print("已经成年,可以上网") ------------------------------------------------ 执行后 C:\Users\马俊南\AppData\Local\Microsoft\WindowsApps\python3.13.exe D:\Pycharm\code\day03\02-网吧上网(简单版).py 已经成年,可以上网 Process finished with exit code 0
3.4 网吧上网(进阶版)
新增需求:用户可以输出自己的年龄,然后系统进行判断是否成年,成年则输出"您的年龄是'用户输入的年龄',已经成年,可以上网"
# 系统可以用户输入年龄,用这个年龄做条件判断 """ 1.用户输入 2.保存用户输入的年龄 3.if判断 -- 注意: input接收到的数据是 str,不能和 18 做判断 -- int 转换类型 """ age=int(input("请输入你的年龄:")) # input 输入的是字符串,需要 int 转成数字类型 if age >= 18: print(f"你输入的年龄是 {age},已经成年可以上网 ") ------------------------------------------------ 执行后 C:\Users\马俊南\AppData\Local\Microsoft\WindowsApps\python3.13.exe D:\Pycharm\code\day03\03-网吧上网(进阶版).py 请输入你的年龄:18 你输入的年龄是 18,已经成年可以上网 Process finished with exit code 0
3.5 if...else
作用:条件成立执行if下方的代码;条件不成立执行else下方的代码
思考:网吧上网的实例,如果成年,允许上网,如果不成年呢?是不是应该回复用户不能上网?
3.5.1 语法
if 条件: 条件成立执行的代码1 条件成立执行的代码2 ...... else: 条件不成立执行的代码1 条件不成立执行的代码2 ......
3.5.2 网吧上网(实用版)
age=int(input("请输入你的年龄:")) # input 输入的是字符串,需要 int 转成数字类型 if age >= 18: print(f"你输入的年龄是 {age},已经成年可以上网 ") else: print(f'你输入的年龄是 {age},小朋友回家写作业吧') ------------------------------------------------ 不同输入执行后 C:\Users\马俊南\AppData\Local\Microsoft\WindowsApps\python3.13.exe D:\Pycharm\code\day03\04-网吧上网(实用版).py 请输入你的年龄:20 你输入的年龄是 20,已经成年可以上网 Process finished with exit code 0 ------------------------------------------------ 不同输入执行后 C:\Users\马俊南\AppData\Local\Microsoft\WindowsApps\python3.13.exe D:\Pycharm\code\day03\04-网吧上网(实用版).py 请输入你的年龄:8 你输入的年龄是 8,小朋友回家写作业吧 Process finished with exit code 0
3.6 if语句执行流程
注意:如果某些条件成立执行了相关的代码,那么其他情况的代码解释器根本不会执行
输入:20,if 判断是 True,if 缩进执行,else 缩进未执行

输入:8,if 判断是 False,if 缩进未执行,else 缩进执行

3.7 多重判断的作用和语法
思考:中国合法工作年龄为 18-60 岁,即如果年龄小于 18 的情况为童工,不合法;如果年龄在 18-60岁之间为合法工龄;大于 60 岁为法定退休年龄
3.7.1 语法
if 条件1: 条件1成立执行的代码1 条件1成立执行的代码2 ...... elif 条件2: 条件2成立执行的代码1 条件2成立执行的代码2 ......11
......
else: 以上条件都不成立执行的代码 ......
注意:多重判断也可以和 else 配合使用,一般 else 放到整个 if 语句的最后,表示以上条件都不成立的时候执行的代码
3.8 体验多重判断
""" 需求: 1.如果年龄小于 18 岁,为童工,不合法 2.如果年龄 18-60 之间,为合法工作年龄 3.如果年龄大于 60 为退休年龄 """ """ 步骤: 1.用户输入自己的年龄,保存变量 -- str 2.if 做判断 elif 3.输出提示信息:你输入的年龄是 x,合法与否 """ age = int(input("请输入您的年龄:")) # 18 童工 if age <= 18: print(f"你输入的年龄是 {age},童工") # 18-60 合法 elif (age >= 18) and (age <= 60): print(f"你输入的年龄是 {age},合法") # 大于60 退休 elif age > 60: print(f"你输入的年龄是 {age},退休年龄") ------------------------------------------------ 不同输入执行后 C:\Users\马俊南\AppData\Local\Microsoft\WindowsApps\python3.13.exe D:\Pycharm\code\day03\05-多重判断(工作年龄).py 请输入您的年龄:8 你输入的年龄是 8,童工 Process finished with exit code 0 ------------------------------------------------ 不同输入执行后 C:\Users\马俊南\AppData\Local\Microsoft\WindowsApps\python3.13.exe D:\Pycharm\code\day03\05-多重判断(工作年龄).py 请输入您的年龄:20 你输入的年龄是 20,合法 Process finished with exit code 0 ------------------------------------------------ 不同输入执行后 C:\Users\马俊南\AppData\Local\Microsoft\WindowsApps\python3.13.exe D:\Pycharm\code\day03\05-多重判断(工作年龄).py 请输入您的年龄:66 你输入的年龄是 66,退休年龄 Process finished with exit code 0
3.9 elif的执行流程
输入:8,if 判断是 True,if 缩进执行,elif 1、2缩进未执行

输入:20,if 判断是 False,if 缩进未执行,elif1 缩进执行,elif2 缩进未执行

输入:66,if 判断是 False,if 缩进未执行。elif1 判断是 False,elif1 缩进未执行。elif2 判断是 True ,elif2 缩进执行。

3.10 扩展:条件写法
扩展:age >= 18 and age <= 60: 可以简化为 18 <= age <= 60:
age = int(input("请输入您的年龄:")) # 18 童工 if age < 18: print(f"你输入的年龄是 {age},童工") # 18-60 合法 elif 18 <= age <= 60: # 简化 (age >= 18) and (age <= 60): print(f"你输入的年龄是 {age},合法") # 大于60 退休 elif age > 60: print(f"你输入的年龄是 {age},退休年龄") ------------------------------------------------ 执行后 C:\Users\马俊南\AppData\Local\Microsoft\WindowsApps\python3.13.exe D:\Pycharm\code\day03\06-多重判断(扩展).py 请输入您的年龄:20 你输入的年龄是 20,合法 Process finished with exit code 0
3.11 if嵌套的作用和语法
思考:坐公交;如果有钱可以上车,没钱不能上车;上车后如果有空座,则可以坐下;如果没空座,就要站着,怎么书写程序?
3.11.1 语法
注意:条件2的 if 处于条件1的缩进关系内部
if 条件1: 条件1成立执行的代码1 条件1成立执行的代码2 if 条件2: 条件2成立执行的代码1 条件2成立执行的代码2
3.12 if嵌套案例:判断能否上车
""" 坐公交: 有钱 可以上车 有座 可以坐下 没座 站着 没钱 不可以上车 """ # money = 0 # 注意,两次执行这个变量不一样 money = 1 seat = 1 if money == 1: print("土豪,请上车") else: print("朋友,没带钱,跟着跑,跑快点") ------------------------------------------------ 不同输入执行后 C:\Users\马俊南\AppData\Local\Microsoft\WindowsApps\python3.13.exe D:\Pycharm\code\day03\07-if嵌套.py 土豪,请上车 Process finished with exit code 0
money = 0 # money = 1 # 注意,两次执行这个变量不一样 seat = 1 if money == 1: print("土豪,请上车") else: print("朋友,没带钱,跟着跑,跑快点") ------------------------------------------------ 不同输入执行后 C:\Users\马俊南\AppData\Local\Microsoft\WindowsApps\python3.13.exe D:\Pycharm\code\day03\07-if嵌套.py 朋友,没带钱,跟着跑,跑快点 Process finished with exit code 0
3.13 if嵌套案例:判断是否能坐下
# money = 0 money = 1 # seat = 0 seat = 1 if money == 1: print("土豪,请上车") # 判断是否能坐下 if seat == 1: print("有空座,坐下") else: print("没有空座,站着") else: print("朋友,没带钱,跟着跑,跑快点") ------------------------------------------------ 不同输入执行后 C:\Users\马俊南\AppData\Local\Microsoft\WindowsApps\python3.13.exe D:\Pycharm\code\day03\07-if嵌套.py 土豪,请上车 有空座,坐下 Process finished with exit code 0
# money = 0 money = 1 seat = 0 # seat = 1 if money == 1: print("土豪,请上车") # 判断是否能坐下 if seat == 1: print("有空座,坐下") else: print("没有空座,站着") else: print("朋友,没带钱,跟着跑,跑快点") ------------------------------------------------ 不同输入执行后 C:\Users\马俊南\AppData\Local\Microsoft\WindowsApps\python3.13.exe D:\Pycharm\code\day03\07-if嵌套.py 土豪,请上车 没有空座,站着 Process finished with exit code 0
3.14 if嵌套执行流程

1.进入条件入口
2.进入条件1,条件成立则执行条件1内所有的代码,条件不成立则执行条件1不成立执行的代码
3.进入条件2,条件成立则执行条件2内所有的代码,条件不成立则执行条件2不成立执行的代码
4.条件执行后,通过出口执行完毕
3.15 猜拳游戏的步骤分析
3.15.1 需求分析
参与游戏的角色
玩家:手动出拳
电脑:随机出拳
判断输赢:玩家获胜
玩家 电脑
石头 剪刀
剪刀 布
布 石头
判断输赢:平局(玩家出拳和电脑出拳相同)
玩家 电脑
石头 石头
剪刀 剪刀
布 布
判断输赢:电脑获胜(其他情况)
3.16 猜拳游戏功能实现
# 1.1 玩家出拳 player=int(input("请出拳:0--石头:1--剪刀:2--布:")) # 1.2 电脑出拳 先固定一个 computer = 1 # 2.判断输赢 # 2.1 玩家获胜 if (( player == 0 and computer == 1) or (player == 1 and computer == 2) or (player == 2 and computer == 0)): print("玩家获胜,哈哈哈哈") # 2.2 平局 elif (( player == 0 and computer == 0) or (player == 1 and computer == 1) or (player == 2 and computer == 2)): print("平局,别走,再来一局") # 2.3 电脑获胜 else: print("电脑获胜") ------------------------------------------------ 不同输入执行后 C:\Users\马俊南\AppData\Local\Microsoft\WindowsApps\python3.13.exe D:\Pycharm\code\day03\08-猜拳游戏的步骤分析.py 请出拳:0--石头:1--剪刀:2--布:0 玩家获胜,哈哈哈哈 Process finished with exit code 0 ------------------------------------------------ 不同输入执行后 C:\Users\马俊南\AppData\Local\Microsoft\WindowsApps\python3.13.exe D:\Pycharm\code\day03\08-猜拳游戏的步骤分析.py 请出拳:0--石头:1--剪刀:2--布:1 平局,别走,再来一局 Process finished with exit code 0 ------------------------------------------------ 不同输入执行后 C:\Users\马俊南\AppData\Local\Microsoft\WindowsApps\python3.13.exe D:\Pycharm\code\day03\08-猜拳游戏的步骤分析.py 请出拳:0--石头:1--剪刀:2--布:2 电脑获胜 Process finished with exit code
3.17 随机数
3.17.1 随机的做法
# 1.导入 random 模块 import 模块名 # 2. 使用 random 模块中的随机整数功能 random.randint(开始, 结束)
import random num = random.randint(0, 2) print(num) ------------------------------------------------ 多次执行后 C:\Users\马俊南\AppData\Local\Microsoft\WindowsApps\python3.13.exe D:\Pycharm\code\day03\09-随机数.py 0 Process finished with exit code 0 ------------------------------------------------ 多次执行后 C:\Users\马俊南\AppData\Local\Microsoft\WindowsApps\python3.13.exe D:\Pycharm\code\day03\09-随机数.py 1 Process finished with exit code 0 ------------------------------------------------ 多次执行后 C:\Users\马俊南\AppData\Local\Microsoft\WindowsApps\python3.13.exe D:\Pycharm\code\day03\09-随机数.py 2 Process finished with exit code 0
3.18 猜拳游戏:随机数
import random # 一般放到开头,下面都能用 # 1.1 玩家出拳 player=int(input("请出拳:0--石头:1--剪刀:2--布:")) # 1.2 电脑出拳 随机出拳 # computer = 1 computer = random.randint(0, 2) print(computer) # 2.判断输赢 # 2.1 玩家获胜 if (( player == 0 and computer == 1) or (player == 1 and computer == 2) or (player == 2 and computer == 0)): print("玩家获胜,哈哈哈哈") # 2.2 平局 elif (( player == 0 and computer == 0) or (player == 1 and computer == 1) or (player == 2 and computer == 2)): print("平局,别走,再来一局") # 2.3 电脑获胜 else: print("电脑获胜") ------------------------------------------------ 多次执行后 C:\Users\马俊南\AppData\Local\Microsoft\WindowsApps\python3.13.exe D:\Pycharm\code\day03\08-猜拳游戏的步骤分析.py 请出拳:0--石头:1--剪刀:2--布:1 1 平局,别走,再来一局 Process finished with exit code 0
3.19 三目运算符
注意:三目运算符也叫三元运算符或三元表达式
3.19.1 语法
注意:读 三元运算符,从 if 开始读,if 和 else 之间是条件,成立执行左边的,不成立执行右边的
# 化简简单的 if /else 代码的代码量 条件成立执行的表达式 if 条件 else 条件不成立执行的表达式
a = 1 b = 2 c = a if a > b else b print(c) # 需求:有两个变量,比较大小,如果变量1大于变量2,执行变量1 - 变量2 否则 变量2 - 变量1 aa = 10 bb = 6 cc = aa - bb if aa > bb else bb - aa print(cc) ------------------------------------------------ 执行后 C:\Users\马俊南\AppData\Local\Microsoft\WindowsApps\python3.13.exe D:\Pycharm\code\day03\10-三目运算符.py 2 4 Process finished with exit code 0
3.20 if章节总结
if语句语法
if 条件: 条件成立执行的代码
if...else...
if 条件: 条件成立执行的代码 else: 条件不成立执行的代码
多重判断(一个执行,其他条件根本就不会执行)
if 条件1: 条件1成立执行的代码 elif 条件2: 条件2成立执行的代码 else: 以上条件都不成立执行的代码
if嵌套
if 条件1: 条件1成立执行的代码 if 条件2: 条件2成立执行的代码 ......
三目运算符
条件成立执行的表达式 if 条件 else 条件不成立执行的表达式
———————————————————————————————————————————————————————————————————————————
无敌小马爱学习
浙公网安备 33010602011771号