当前版本:
- Python 3.8.4
简介
if 语句是一种用于根据一个或多个条件的结果来执行不同代码块的控制流结构,它会检查给定的条件是否为真。如果条件为真,则执行与之关联的代码块;如果条件为假,则执行与之关联的其他代码块或者继续执行程序的下一段代码。
文章目录如下
1. if 的作用
2. if 的语法
2.1. 基础语法
2.2. 多分支判断
2.3. 三目运算
3. 判断条件
3.1. 比较符判断
3.2. 逻辑符判断
3.3. 成员符判断
4. 实际应用
4.1. 商品折扣计算
4.2. 年龄分类
4.3. 密码验证
1. if 的作用
if 条件的作用是在程序中根据给定的条件来决定是否执行特定的代码块,条件可以是True或False。当条件为True时,True相关的代码块将被执行;当条件为False时,False相关代码被执行。
例如:用户登录则可以使用 if 判断实现:
# 定义正确的密码
user_pwd = "123456"
# 判断密码是否正确
if input("请输入root密码:") == user_pwd:
print("密码正确!")
else:
print("密码错误!")
2. if 的语法
2.1. 基础语法
if 的基本格式为:
if 条件: # 判断这个条件
xxx # 执行条件为真的代码
else:
yyy # 执行条件为假的代码
- if:中文翻译为 "如果"。理解为:如果条件为真,那么执行xxx
- else:中文翻译为 "否则"。理解为:不满足 if 条件则执行yyy
- 条件:可以是比较符判断、逻辑符判断、成员符判断等,例如 a>b
注意:条件判断下面的代码块必须有缩进,否则语法错误。
举例说明(判断1=1)
if 1 == 1:
print("条件为真,执行这里...")
else:
print("条件为假,执行这里...")
- 1肯定等于1,所以条件为真。执行为真的代码块。
如果判断1=2,则是条件为假
if 1 == 2:
print("条件为真,执行这里...")
else:
print("条件为假,执行这里...")
当然,也可以不带入为假的代码
if 1 == 1:
print("条件为真,执行这里...")
2.2. 多分支判断
当需要判断的对象可能存在多个值,并且需要根据不同的情况执行不同的代码,那么可以利用多分支来处理。语法如下:
if 条件1:
执行条件1代码块
elif 条件2:
执行条件2代码块
elif 条件3:
执行条件3代码块
else
执行不满足条件1、2、3的代码
举个例子,通过成绩来判断这个同学表现
# 循环判断成绩
while True:
score = int(input("请输入您的成绩: "))
if score == -1: # 如果输入-1则退出程序
print("退出!")
break
elif score < 60: # 如果成绩小于60则执行这里
print("成绩不合格")
elif score < 70: # 如果成绩小于70则执行这里
print("成绩还算一般")
elif score < 85: # 如果成绩小于85则执行这里
print("成绩还不错")
elif score < 100: # 如果成绩小于100则执行这里
print("这位同学很优秀")
elif 中文翻译为 "否则如果",也就是第1次通过 if 判断,当 if 判断为假时才会判断下面的 elif,如果 if 判断为真则不会运行下面的 elif。举例说明
# 定义一个变量
a = 10
# 判断这个变量
if a < 20:
print("a < 20")
elif a < 30:
print("a < 30")
elif a < 40:
print("a < 40")
可以看到3个条件都符合,但如果前面的判断成功,则不会继续判断后面的代码
我们将 a 改为25也是同理,满足第1个 elif 后,第2个 elif 则不会再去判断
2.3. 三目运算
三目运算符是一种简洁的条件表达式,也叫做条件表达式运算符。语法如下:
[为真代码] if [条件表达式] else [为假代码]
if 的标准写法是这样的:
if 1 == 1:
print("yes")
else:
print("no")
使用三目运算可以把它们写为单行:
print("yes") if 1 == 1 else print("no")
比如使用三目运算给变量(性别)随机赋值男或女
import random
sex = "男" if random.randint(0,1) == 0 else "女"
3. 判断条件
我们可以通过比较符判断、逻辑符判断和成员符判断,将这些条件根据需要进行组合,并且可以嵌套在 if 语句中,用于实现复杂的逻辑判断。
3.1. 比较符判断
比较符包括:
> :大于
< :小于
==:等于
!=:不等于
>=:大于等于
<=:小于等于
【案例一】判断数字大于等于10
# 定义一个变量
n = 20
# 判断这个变量
if n >= 10:
print("变量n大于等于10")
【案例二】判断字符串为abc
# 定义一个变量
s = "AAA"
# 判断这个变量
if s == "abc":
print("变量s的值为abc")
else:
print("变量s的值不是abc")
3.2. 逻辑符判断
逻辑符(与、或、非)
and(与):必须满足全部条件
or (或):满足其他一个条件即可
not(非):取反(真->假;假->真)
【案例一】必须满足全部条件
# 判断多个条件
if (1>0) and (2<3) and (2==3):
print("全部条件都满足")
else:
print("其中有一个或多个不满足条件")
- 括号是为了便于阅读,并不是必须的
【案例二】满足任意一个条件即可
# 判断多个条件
if (1>0) or (2<3) or (2==3):
print("满足其中一个或多个条件")
else:
print("一个条件都不满足")
【案例三】取反
if not 1 == 2:
print("执行xxx")
- 1本身不等于2,取反后相当于判断这里为 False
3.3. 成员符判断
一般通过成员符来判断一个元素是否属于一个集合(列表、元组、字符串等)。
in:属于
not in:不属于
【案例一】判断元素属于列表
if "A" in ["A", "B"]:
print("A在列表中")
else:
print("A不在列表中")
【案例二】判断元素不属于列表
if "C" not in ["A", "B"]:
print("C不在列表中")
else:
print("C在列表中")
4. 实际应用
4.1. 商品折扣计算
需求:某商店消费满200打95折,消费满500打9折,消费满1000打8折,消费满2000打7折。
# 循环判断这个金额并计算
while True:
num = int(input("请输入客户消费金额(-1退出):"))
if num == -1:
print("退出!")
break
elif num < 200:
print("客户消费{}元,无折扣应支付{}元\n".format(num, num))
elif num < 500:
print("客户消费{}元,95折后应支付{}元\n".format(num, num * 0.95))
elif num < 1000:
print("客户消费{}元,9折后应支付{}元\n".format(num, num * 0.9))
elif num < 2000:
print("客户消费{}元,8折后应支付{}元\n".format(num, num * 0.8))
elif num >= 2000:
print("客户消费{}元,7折后应支付{}元\n".format(num, num * 0.7))
4.2. 年龄分类
需求:12岁以下为儿童,12~17岁为青少年,18~24为青年,24岁以上为成年人。
# 循环判断
while True:
age = int(input("请输入年龄:"))
if age == -1:
print("退出交互系统!")
break
elif age < 12:
print("儿童")
elif age < 18:
print("青少年")
elif age < 25:
print("青年")
else:
print("成年人")
4.3. 密码验证
需求:用户登录系统需要输入root密码,输入3次错误则锁定用户。
password = "123456" # 定义密码
attempts = 0 # 当前登录次数
locked = False # 锁定账户
while attempts < 3:
user_input = input("请输入root密码:")
if user_input == password:
print("登录成功!")
break
else:
attempts += 1
print("密码错误!还剩余{}次尝试。".format(3 - attempts))
if attempts == 3:
# 失败3次后加锁
locked = True
# 判断是否被加锁
if locked:
print("密码已锁定,无法登录。")