条件语句可以让程序选择是否执行特定的语句块。
1. 布尔值
在用作if语句中的条件时,标准值False、None、数值0、空字符串、空元祖、空列表、空字典等,都被视为假。
True和其他各种值都被视为真。
>>> if 'aa':
... print('aa is True')
...
aa is True
>>> if 0: # 0被判断为False,没有执行print
... print('0 is true')
...
2. if elif else
直接上代码:
>>> num = int(input('Enter a number:'))
Enter a number:>? 10
>>> if num > 0:
... print('The number is positive')
... elif num < 0:
... print('The number is negative')
... else:
... print('The number is zero')
...
The number is positive
3. 条件表达式
如果条件为真,表达式的结果为提供的第一个值,否则为第二个值。
>>> name = 'Jack'
>>> status = 'friend' if name.endswith('Gumby') else 'stranger'
>>> status
'stranger'
4. 比较运算符
表达式 | 描述 |
---|---|
x == y | x 等于 y |
x < y | x 小于 y |
x > y | x 大于 y |
x <= y | x 小于或等于 y |
x >= y | x 大于或等于 y |
x != y | x 不等于 y |
x is y | x 和 y 是同一对象 |
x is not y | x 和 y 是不同的对象 |
x in y | x 是容器(如序列)y 的成员 |
x not in y | x 不是容器(如序列)y的成员 |
注意:在比较大小时,仅对类型相同或相近的对象有意义,例如整数和浮点数之间。在python 3以后,如果用字符和数值比较大小就会报错了。
- is 和 ==
is 看似和==一样,其实不一样,==是判断两个对象是否相等,而is是判断两个对象是否为同一对象。注意:不要将is用于数值和字符串等不可变的基本值,因为结果是不可预测的。
>>> x=y=[1,2,3]
>>> z=[1,2,3]
>>> x==y
True
>>> x==z
True
>>> x is y
True
>>> x is z
False
- 字符串和序列的比较
字符串是根据字母排序顺序进行比较的,但要注意大写与小写字符的比较。
>>> 'a'<'b'
True
>>> 'a'<'B'
False
>>> 'a'.lower()<'B'.lower()
True
其他序列的比较方式与此相同,也是根据其元素的顺序进行比较的。
>>> [1,2]<[2,1]
True
>>> [2,[1,3]]<[2,[1,5]]
True
5. 布尔运算符和链式比较
and、or和not是三个布尔运算符
x and y:当条件x和y都为真、True时,才返回True。在某些时候也可以使用链式比较来简化语句。
>>> num1=5
>>> if num1 >1 and num1 < 10:
... print(num1)
...
5
>>> if 1<num1<10:
... print(num1)
...
5
x or y:当条件x和y中有一个为True,则返回True。
>>> if num1 >0 or num1 < 0:
... print('num1 is not 0')
...
num1 is not 0
x not y:当条件x为True且y为False时,返回True。
>>> if num1>0 and not num1==0:
... print('num1 is not negative')
...
num1 is not negative
参考:
《Python基础教程》