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 缩进未执行

image

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

image

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缩进未执行

image

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

image

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

image

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嵌套执行流程

image

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 条件不成立执行的表达式

———————————————————————————————————————————————————————————————————————————

                                                                                                                         无敌小马爱学习

posted on 2025-09-08 17:07  马俊南  阅读(17)  评论(0)    收藏  举报