if 语句
- 条件语句作⽤
- if 语法
- if…else…
- 多重判断
- if 嵌套
所谓得 if 语句其实就是用于判断,比如某件事情在有多个结果和处理方式的时候我们就需要通过 if 或者 if-else 来做判断并且得到最终程序想要的执行结果
其实这⾥所谓的判断就是条件语句,即条件成⽴执⾏某些代码,条件不成⽴则不执⾏这些代码
1 if 语法
if 判断条件:
条件成⽴执⾏的代码1
条件成⽴执⾏的代码2
......
# 在 python 中的 if 需要通过缩进来控制下面语句的缩进来实现该条件语句是否在该 if 中
1.1 快速体验
True 验证:
"""
if 判断条件:
条件成立之后执行的代码1
.....
"""
if True:
print('条件成立之后执行的代码1')
print('条件成立之后执行的代码2')
print('这段代码没有在 if 中所以他并不是 if 语句块里面的')
输出:
root@go:~/py# /bin/python3 /root/py/test.py
条件成立之后执行的代码1
条件成立之后执行的代码2
这段代码没有在 if 中所以他并不是 if 语句块里面的
False 验证:
"""
if 判断条件:
条件成立之后执行的代码1
.....
"""
if False:
print('条件成立之后执行的代码1')
print('条件成立之后执行的代码2')
print('这段代码没有在 if 中所以他并不是 if 语句块里面的')
输出:
可以看到这里并没有执行第三个 print
中的语句,也就是说 py 中在 if 的缩进下的语句块都属于 if 语句中
False 验证:
这里我验证如果我将第三个 print
去掉缩进看看是否还不会执行
"""
if 判断条件:
条件成立之后执行的代码1
.....
"""
if False:
print('条件成立之后执行的代码1')
print('条件成立之后执行的代码2')
# 注意:下方没有加缩进的代码,不属于 if 语句块,即和条件成立与否无关
print('这段代码没有在 if 中所以他并不是 if 语句块里面的')
输出:
# 可以看到这里已经执行了第三个 print 的内容
root@go:~/py# /bin/python3 /root/py/test.py
这段代码没有在 if 中所以他并不是 if 语句块里面的
2 if-else
作用:条件成立执行 if 下方的语句,条件不成立执行 else 下方的代码
需求分析:如果⽤户年龄⼤于等于18岁,即成年,输出"已经成年,可以上⽹",如果不成年呢?是不是应该回复⽤户不能上⽹?
if 条件:
条件成⽴执⾏的代码1
条件成⽴执⾏的代码2
......
else:
条件不成⽴执⾏的代码1
条件不成⽴执⾏的代码2
......
# 通过 input 接收用户输入的数据,并转为 int 类型
age = int(input("输入您的年龄:"))
if age >= 18:
print(f"您输入的年龄是{age},已成年可以上网!")
else:
print(f"您输入的年龄是{age},未成年不能上网!")
print("系统已关闭!")
输出:
root@go:~/py# /bin/python3 /root/py/test.py
输入您的年龄:19
您输入的年龄是19,已成年可以上网!
root@go:~/py# /bin/python3 /root/py/test.py
输入您的年龄:12
您输入的年龄是12,未成年不能上网!
注意:如果某些条件成⽴执⾏了相关的代码,那么其他的情况的代码解释器根本不会执⾏,而是执行条件成立之后带缩进的那个代码
3 多重判断
思考:中国合法⼯作年龄为18-60岁,即如果年龄⼩于18的情况为童⼯,不合法;如果年龄在18-60岁之间为合法⼯龄;⼤于60岁为法定退休年龄。
3.1 语法
# 通过 input 接收用户输入的数据,并转为 int 类型
age = int(input("输入您的年龄:"))
if age >= 18 :
print(f"您输入的年龄是{age},合法工龄。")
elif age <= 60:
print(f"您输入的年龄是{age},合法工龄。")
else:
print(f"您输入的年龄是{age},不是合法工龄。")
print("系统已关闭!")
输出:
root@go:~/py# /bin/python3 /root/py/test.py
输入您的年龄:12
您输入的年龄是12,合法工龄。
系统已关闭!
root@go:~/py# /bin/python3 /root/py/test.py
输入您的年龄:60
您输入的年龄是60,合法工龄。
系统已关闭!
简写:
上面的代码中只是为了演示 elif 多重判断,其实可以在以条 if 语句中做完即可,只需添加 and 逻辑预算符即可
# 通过 input 接收用户输入的数据,并转为 int 类型
age = int(input("输入您的年龄:"))
if age >= 18 and age <= 60:
print(f"您输入的年龄是{age},合法工龄。")
else :
print(f"您输入的年龄是{age},不是合法工龄")
print("系统已关闭!")
输出:
root@go:~/py# /bin/python3 /root/py/test.py
输入您的年龄:19
您输入的年龄是19,合法工龄。
系统已关闭!
root@go:~/py# /bin/python3 /root/py/test.py
输入您的年龄:17
您输入的年龄是17,不是合法工龄
系统已关闭!
拓展: age >= 18 and age <= 60 可以化简为 18 <= age <= 60 。
4 if 嵌套
思考:坐公交:如果有钱可以上⻋,没钱不能上⻋;上⻋后如果有空座,则可以坐下;如果没空座,就要站着。怎么书写程序?
4.1 语法
if 条件1:
条件1成⽴执⾏的代码
条件1成⽴执⾏的代码
if 条件2:
条件2成⽴执⾏的代码
条件2成⽴执⾏的代码
注意:条件2的if也是出于条件1的缩进关系内部。
'''
1.有钱可以上车
money = 1 表示有钱
2.上车之后不见得有座位
seat = 1 表示有座位
'''
money = int(input("输入金钱 1/0 (1表示车费,0表示没有钱):"))
seat = 1
if money == 1 :
print("有钱可以上车。")
if seat == 1:
print("有座位!")
elif seat == 0:
print("没有座位!")
else :
print("没有钱无法上车!")
print("程序完成!")
输出:
root@go:~/py# /bin/python3 /root/py/test.py
输入金钱 1/0 (1表示车费,0表示没有钱):1
有钱可以上车。
有座位!
程序完成!
root@go:~/py# /bin/python3 /root/py/test.py
输入金钱 1/0 (1表示车费,0表示没有钱):0
没有钱无法上车!
程序完成!
4.2 if 嵌套执⾏流程
5 应⽤:猜拳游戏
需求分析:
-
参与游戏的⻆⾊
-
玩家
-
⼿动出拳
-
电脑
-
随机出拳
-
-
判断输赢
-
玩家获胜
-
平局
-
玩家出拳 和 电脑出拳相同
-
电脑获胜
-
随机做法:
-
导出random模块
import 模块名
-
使⽤random模块中的随机整数功能
random.randint(开始,结束) # 包含开始和结束位置这两个数字
代码:
"""
步骤:
1.导入模块
import random
2.
提示:0-⽯头,1-剪⼑,2-布
1. 出拳
玩家输⼊出拳
电脑随机出拳
2. 判断输赢
玩家获胜
平局
电脑获
"""
import random
# 玩家出拳
player = int(input('请出拳:0-⽯头,1-剪⼑,2-布:'))
# random.randint(0,2) 随机 0-2 这三个数
computer = random.randint(0,2)
print(computer)
# 玩家获胜
if ((player == 0) and (computer == 1)) or ((player == 1) and (computer == 2)) or ((player == 2) and (computer == 0)):
print("玩家获胜")
elif (computer == player):
print("平局")
else:
print("电脑胜")
执行:
root@go:~/py# /bin/python3 /root/py/test.py
0
请出拳:0-⽯头,1-剪⼑,2-布:2
玩家获胜
root@go:~/py# /bin/python3 /root/py/test.py
请出拳:0-⽯头,1-剪⼑,2-布:3
0
电脑胜
root@go:~/py# /bin/python3 /root/py/test.py
请出拳:0-⽯头,1-剪⼑,2-布:2
0
玩家获胜
root@go:~/py# /bin/python3 /root/py/test.py
请出拳:0-⽯头,1-剪⼑,2-布:2
2
平局
6 三⽬运算符
三⽬运算符也叫三元运算符或三元表达式。
语法如下:
条件成⽴执⾏的表达式 if 条件 else 条件不成⽴执⾏的表达式
快速体验:
a = 1
b = 2
c = a if a > b else b
print(c)
7 总结
if语句语法
if 条件:
条件成⽴执⾏的代码
if…else…
if 条件:
条件成⽴执⾏的代码
else:
条件不成⽴执⾏的代码
多重判断
if 条件1:
条件1成⽴执⾏的代码
elif 条件2:
条件2成⽴执⾏的代码
else:
以上条件都不成⽴执⾏的代码
if嵌套
if 条件1:
条件1成⽴执⾏的代码
if 条件2:
条件2成⽴执⾏的代码
....
三⽬运算符
条件成⽴执⾏的表达式 if 条件 else 条件不成⽴执⾏的表达式