本章目录
- Part One:初识if语法
- Part Two:进阶if语法
- Part Three:完整if语法
- Part Four:if语法注意事项
初识if语法
if的英文释义是“如果,假设”的意思,在Python中也用其作为条件判断,可以使得一部分代码只在满足某个条件时才会被执行。
简单的if语句的语法格式是:
if 条件:
# 满足条件执行的代码块
例如
age = 18
if age >= 18:
print("Hey, boy!")
print("You are a man now!")
结果为:
Hey, boy!
You are a man now!
在这里,如果age >= 18为False,那么程序将不会执行两条 print 语句。
虽然都是用 if 关键词定义判断,但与Java语言不同,Python不使用 {} 将 if 语句控制的区域包含起来。Python使用的是缩进方法。同时,也不需要用 () 将判断条件括起来。
缩进在Python中具有非常重要的地位,同样的缩进代表一组代码块,不同的缩进就是不同的代码块,例如:
age = 18
if age >= 18:
print("Hey, boy!")
print("You are a man now!")
就会报缩进错误:
IndentationError: unexpected indent
同样的,如下缩进,代码的执行逻辑就变了:
age = 16
if age >= 18:
print("Hey, boy!")
print("You are a man now!")
其中第一条语句是条件判断的代码块,第二条语句不包含在条件判断中,所以结果为:
You are a man now!
进阶if语法
如果希望在不满足条件时,也有一部分代码会被执行,则可以匹配上else语句。
else的英文释义是“除此以外”,是对if的条件判断的结果直接取反,综合的语法结构是:
if 条件:
# 满足条件执行的代码块
else:
# 不满足条件执行的代码块
if语句中可以没有else,但是,else必须匹配上if才可以使用。
与if的语法一样,else也是使用缩进组织代码块,例如:
age = 16
if age >= 18:
print("Hey, boy!")
print("You are a man now!")
else:
print("Hey, boy!")
print("This is gonna be your league in a little while, but I appreciate you giving us this year.")
结果为:
Hey, boy!
This is gonna be your league in a little while, but I appreciate you giving us this year.
完整if语法
如果类似的条件是需要多次判断,并且每个判断中都会执行不同的代码,则可以使用多重if的语法,其语法:
if 条件1:
# 代码块1
elif 条件2:
# 代码块2
elif 条件3:
# 代码块3
else:
# 代码块4
例如:
age = 16
if age <= 6:
print("Hey, LeBron!")
print("You will become a basketball superstar in the future!")
elif 6 < age <= 18:
print("Hey, LeBron!")
print("You are strong enough, go to NBA!")
elif 18 < age <= 25:
print("Hey, LeBron!")
print("This is gonna be your league in a little while, but I appreciate you giving us this year.")
else:
print("Hey, LeBron!")
print("Give me a chance, I just wanna win once...")
结果为:
Hey, LeBron!
You are strong enough, go to NBA!
if语句也可以嵌套使用,但是要注意使用好缩进即可。
if语法注意事项
- 判断条件值的测试
Python不仅仅可以使用布尔型变量作为条件,它可以直接在if中使用任何表达式作为条件.
大部分表达式的值都会被当作True,但以下表达式值会被当作False:False,None,0,空字符串,空列表,空字典,空集合。
我们可以用代码一一来验证:
验证True和False
var1 = False
var2 = True
if var1:
print("False")
else:
print("True")
if var2:
print("True")
结果为:
True
True
验证None
var1 = None
var2 = "TAG"
if var1:
print("None")
else:
print("Not None")
if var2:
print("Not None")
结果为:
Not None
Not None
验证0
var1 = 0
var2 = 1
if var1:
print("0")
else:
print("Not 0")
if var2:
print("Not 0")
结果为:
Not 0
Not 0
验证空字符串
var1 = ""
var2 = " "
if var1:
print("Empty String")
else:
print("Not Empty String")
if var2:
print("Not Empty String")
注意空格也是一个字符串,所以结果为:
Not Empty String
Not Empty String
验证空列表
var1 = ["Java", "Android", "Python"]
var2 = []
if var1:
print("The first element is:{}.".format(var1[0]))
else:
print("The list is empty.")
if var2:
print("The first element is:{}.".format(var1[0]))
else:
print("The list is empty.")
结果为:
The first element is:Java.
The list is empty.
同理,也适用于字典,集合等,不过这种写法不推荐,最好还是是用len语法来验证是否为空。
总结一下,只要条件是非零数值、非空字符串、非空list等,就判断为True,否则为False。
- input注意事项
input和print是经常配套使用的一组代码,print是输出到控制台,而input是从控制台读取用户输入。
需要注意的是,从控制台读取的是一个字符串,如果要和其它类型的数据进行比较,需要做相应的转换,否则会报错,例如:
# 将String类型的input转为int类型,然后再去比较
age = int(input())
if age <= 6:
print("Hey, LeBron!")
print("You will become a basketball superstar in the future!")
elif 6 < age <= 18:
print("Hey, LeBron!")
print("You are strong enough, go to NBA!")
elif 18 < age <= 25:
print("Hey, LeBron!")
print("This is gonna be your league in a little while, but I appreciate you giving us this year.")
else:
print("Hey, LeBron!")
print("Give me a chance, I just wanna win once...")
结果为:
7
Hey, LeBron!
You are strong enough, go to NBA!
网友评论