基本用法
判断,基于一定的条件,决定是否要执行特定的一段代码,例如判断一个数是不是正数:
x = 0.5
if x > 0:
print("Hey!")
print("x is positive")
Hey!
x is positive
在这里,如果 x > 0 为 False ,那么程序将不会执行两条 print 语句。
虽然都是用 if 关键词定义判断,但与C,Java等语言不同,Python不使用 {} 将 if 语句控制的区域包含起来。Python使用的是缩进方法。同时,也不需要用 () 将判断条件括起来。
上面例子中的这两条语句:
print ("Hey!")
print ("x is positive")
就叫做一个代码块,同一个代码块使用同样的缩进值,它们组成了这条 if 语句的主体。
不同的缩进值表示不同的代码块,例如:
x = 0.5
if x > 0:
print("Hey!")
print("x is positive")
print("This is still part of the block")
print("This isn't part of the block, and will always print.")
Hey!
x is positive
This is still part of the block
This isn't part of the block, and will always print.
在这两个例子中,最后一句并不是if语句中的内容,所以不管条件满不满足,它都会被执行。
一个完整的 if 结构通常如下所示(注意:条件后的 : 是必须要的,缩进值需要一样):
if <condition 1>:
<statement 1>
<statement 2>
elif <condition 2>:
<statements>
else:
<statements>
当条件1被满足时,执行 if 下面的语句,当条件1不满足的时候,转到 elif ,看它的条件2满不满足,满足执行 elif 下面的语句,不满足则执行 else 下面的语句。
值的测试
Python不仅仅可以使用布尔型变量作为条件,它可以直接在if中使用任何表达式作为条件:
大部分表达式的值都会被当作True,但以下表达式值会被当作False:
- False
- None
- 0
- 空字符串,空列表,空字典,空集合
mylist = [3, 1, 4, 1, 5, 9]
if mylist:
print("The first element is:", mylist[0])
else:
print("There is no first element.")
The first element is: 3
修改为空列表:
mylist = []
if mylist:
print("The first element is:", mylist[0])
else:
print("There is no first element.")
There is no first element.
然这种用法并不推荐,推荐使用 if len(mylist) > 0: 来判断一个列表是否为空。