目录
布尔值
在了解条件语句之前,需要理解布尔值(bool)的概念,也叫真值。
布尔值只有两个结果,分别为True和False(即真和假),也可以表示为1和0。如果一条语句的结果为真,结果就会输出True,反之则为False。
print(1 > 3) #输出为False
print(1 < 3) #输出为True
显然在数值上1是比3要小的,所以第一条语句的结果为假,输出结果为False,第二条语句输出为True。
当用于if语句中的条件时,以下值也会被视为假:
None, (), [], {}, ' ', " ", 0
空元组、空列表、空字典等空序列和映射,包括数值0都会被视为假。
此外,bool()函数可以将结果转换为布尔值。
print(bool(25)) #输出为True
print(bool([])) #输出为False
条件语句
在Python中,想要满足某种条件就执行特定的命令,就要使用条件语句。
条件语句的基本结构为:
if 判断条件:
执行语句
else:
执行语句
判断条件的数据结构就是布尔值,如果if后的判断条件为真,就会执行下面的语句,反之则会执行else下面的语句。
要注意条件语句后的冒号。
if语句
假设一种应用情况:有一种用户系统,当输入你的用户名的时候,系统会输出欢迎你登录的语句:
user = input('Please enter your name:') #input()获取用户输入
if user == 'Taylor': #判断用户输入是否为Taylor
print('Hello,', user, '!') #如果满足条件,输出结果为 Hello, Taylor !
代码的运行结果为:
else子句
如果用户输入不是Taylor,系统就会判定为陌生人,那么需要输出欢迎陌生人的语句,这里就要用到else来表示不满足条件语句的其他情况:
user = input('Please enter your name:') #input()获取用户输入
if user == 'Taylor': #判断用户输入是否为Taylor
print('Hello,', user, '!') #如果满足条件,输出结果为 Hello, Taylor !
else: #其他所有不满足if情况的条件
print('Hello, stranger!') #被系统判定为陌生人,输出结果为 Hello, stranger!
elif子句
设想接下来的一种情况,在系统内增加一名用户,名为Chamber,当输入该用户名时也会输出欢迎Chamber的语句。那么需要判定的条件就增加到了两个,这里就需要用到elif子句:
user = input('Please enter your name:')#input()获取用户输入
if user == 'Taylor': #判断用户输入是否为Taylor
print('Hello,', user, '!') #如果输入用户名为Taylor,输出结果为 Hello, Taylor !
elif user == 'Chamber':
print('Hello,', user, '!') #如果输入用户名为Chamber,输出结果为 Hello, Chamber !
else: #其他所有不满足情况的条件
print('Hello, stranger!') #被系统判定为陌生人,输出结果为 Hello, stranger!
如果想继续增加判断条件,继续增加elif的条件和执行语句即可。
比较运算符
在条件语句中,基本离不开两个对象的比较。比如在上述实例代码中,输入的用户名和已有用户名进行比较,这里就需要用到比较运算符。
相等比较
相信大家已经注意到,在Python语言中表示相等并不是用' = '来表示,而是使用' == '两个等号表示,其实在很多编程语言里都是这种情况,一个等号表示赋值操作。
a = 15 #将15赋值给a
print(a == 15) #结果为True
还有一个运算符与其相似,is表示两个对象是否相同,以下代码可以体现两种运算符的区别:
a = [3, 6, 9]
b = c = [3, 6, 9]
print(a == b) #输出为True
print(b == c) #输出为True
print(a is b) #输出为False
print(b is c) #输出为True
a, b, c的数值都相等,所以前两次输出都为True,但用is对a和b进行比较时却输出False,说明is运算符关心的不是数值的相等,而是对象是否相同。
在前两行的赋值操作中,b = c = [3, 6, 9]表示b和c指向的是同一个对象,指向同一个存储地址。a虽然和b、c数值相同,但数值存储在另一个地址,所以指向的对象是不同的。
" == "是比较两个变量的类型和数值,来确定他们是否相等。
" is " 是比较两个变量是否指向同一个存储地址,来确定两变量是否相同,即为同一个对象。
比较两个对象是否不相等或不相同,分别用" != "和" is not "来表示
a = [1, 2]
b = [1, 2]
print(a != [1, 2]) #输出为False
print(a is not b) #输出为True
大小比较
两个变量比较大小就很简单了,和数学上一样,分别用" > "和" < "来表示大于和小于,如果加上相等条件在后面加一个" = "即可,即" >= "表示大于等于," <= "表示小于等于。
a = 15
b = 15
print(a > b) #输出为False
print(a <= b )#输出为True
是否在内
" in "用来检查成员资格,如果对象在序列内结果返回True,反之则为False。" not in "表示对象不在序列内。
x = 15
y = 9
z = [0, 5, 10, 15]
print(x in z) #输出为True
print(y not in z) #输出为True
比较运算符总结
== | 相等(值、类型) |
!= | 不相等(值、类型) |
is | 相同(对象) |
is not | 不相同(对象) |
> | 大于 |
>= | 大于等于 |
< | 小于 |
<= | 小于等于 |
in | 在内 |
not in | 不在内 |