if语句
在Python中,if语句用于条件判断,根据条件的真假执行不同的代码块。是最基础的控制流语句之一。
本篇文章依然是面向Python零基础的朋友,代码中的注释也包含了一些知识!我会使用一些生动的例子来阐述一个知识点,辅助大家理解记忆!
导航
初识 if语句
if的核心是一个值为True或False的表达式,这决定了是否执行if语句中的代码:True则执行,False则忽略。
if语句的应用示例:
#为了保证网名是独一无二的,而不是有大小写的相似名
#来设计一款检验注册网名的程序:
name = ['moonlit','BigYUE','MJ'] #已注册名字列表
new = 'bigYUE' #新名字
for check in name:
if new.lower() == check.lower(): #都转化为小写来进行比较
print("此名已被注册!")
'''输出
此名已被注册!
'''
与其他编程语言一样,用“==”判断相等;用“!=”来判断不相等;还有“>”大于;“<”小于;“>=”大于等于;“<=”小于等于;
检测多个条件
这里可以用到逻辑运算:
and/ or / not
使用and表示与门
age_1 = 17
age_2 = 20
if (age_1 > 18) and (age_2 > 18): #条件一 and 条件二
print("符合要求")
else:
print("不符合要求") #输出 不符合要求
只有当条件都为真时,执行后面的代码。
使用or表示或门:
age_1 = 17
age_2 = 20
if (age_1 > 18) or (age_2 > 18):
print("符合要求")
else:
print("不符合要求") #输出 符合要求
满足其一个条件即可执行后面的代码。
使用 not 来表示非门
只需要在if 后面的条件前面加上 not ,即可翻转条件的真假,这个很好理解。
检测特定的值是否在列表中
关键词 in 和 not in 可以快速判断元素是否被包含在列表中:
banned_users = ['ender_man','zombie','sunny','1999']
user = 'alex'
if (user not in banned_users):
print("该用户可以正常发言") #输出 该用户可以正常发言
上面的代码中,我们列出一个黑名单,检测用户是否在黑名单列表之中。
布尔表达式
布尔值是条件测试的别名
布尔值常用于记录条件,例如游戏是否在运行,用户是否可以编辑网站特定内容等:
game_active = True #允许游戏行为
can_edit = False #不允许编辑
布尔值表达式用于 if语句:
is_raining = True
if is_raining:
print("带伞") # 输出:带伞
直观的布尔值
print(1 == 2) #输出 False
if语句详解
简单if语句
最简单的if语句只有一个测试和操作:
if 条件为真 :
执行语句
if-else语句
在if后面的条件布尔值为False时,将忽略后面的操作,进行else语句的操作
检测来访者是否为会员:
is_member = False #已经判断为假
if is_member: #条件为假
print("welcome!".title()) #不执行,跳过
else:
print("sorry,you have no permissions!".title())
'''输出
Sorry,You Have No Permissions!
'''
if-elif-else结构
当需要判断的情形不是二选一的时候,我们将使用此结构—— if-elif-else。
使用if-elif-else 结构时,Python只执行其中的一个代码块,它将依次测试条件,直到有个条件通过测试。执行完通过条件的操作代码后,将忽略后面的测试。
scores = 90
if scores >= 95:
print("PERFECT!")
elif scores >= 85:
print("GREAT")
elif 60< scores <85:
print("GOOD")
else:
print("AGAIN")
'''输出
GREAT
'''
省略 else 代码块
只要不满足 if 和elif,else都会执行。这有可能会导致一些意外情况发生,所以如果我们的条件非常明确时,推荐使用elif语句来当最后的代码块:
scores = 20
if scores >= 95:
print("PERFECT!")
elif scores >= 85:
print("GREAT")
elif 60<= scores <85:
print("GOOD")
elif scores < 60:
print("AGAIN")
'''输出
AGAIN
'''
处理列表
检查特殊元素
我们使用for循环来遍历列表时,如果其中有元素是特殊的,就可以使用 if-else语句来处理:
#某用户投票的四个人中,Harry临时不参加选票
members = ['jack','rose','denniel','harry']
vote = 'harry'
for vote_one in members:
if vote_one == vote:
print(f"{vote_one}暂不参与投票".title())
else:
print(f"已将票投给{vote_one}".title())
'''输出
已将票投给jack
已将票投给rose
已将票投给denniel
harry暂不参与投票
'''
在这里面 harry 是特殊元素,将他设置为一个条件就能方便地处理他了。
检测列表是否为空
使用if 语句时,将列表名当做条件表达式时,空列表将返回False值,此时会跳过if语句。
我们可以利用此特性,思考一下如何告诉用户这是一个空列表,并提示往里面加一点东西吧~
总结:
if 后的条件可以是:
- 直接布尔值(True/False)
- 比较运算(如 ==, >, <)
- 逻辑运算(如 and, or, not)
- 返回布尔值的函数或表达式
Python会隐式转换非布尔值为布尔值(如 if 1: 等价于 if True:)。
非布尔值会被隐式转化为布尔值:False, 0, “”, None, [], {}, ()——这些都为 False值。
简单记就是0,和空集为False,其他的值均为True。
拓展:
单行 if 表达式
格式: 值1 if 条件 else 值2
用这个表达式可以简洁地根据条件,在两个值里选一个用于赋值:
age = 20
status = "成年" if age >= 18 else "未成年"
print(status) # 输出"成年"
往期推荐:
——>上一篇:初识“列表”
——>头 篇:Python入门学习笔记–起步!
本专栏持续更新ing~
The End