如果if判断中存在多个表达式判断,需要使用逻辑运算符。
例如有一个变量a,需要判断是否在1到5之间,那么则需要判断a是否大于1且a小于5。这个时候需要使用and逻辑运算符进行判断。
and
python中使用and判断左右两边表达式是同时正确,正确时返回最后一个对象(或者说值),错误时返回第一个对象(或者说值)。
a=10
if a>1 and a<5:print('a在1和5之间')
else:print('a不在1和5之间')
以上代码判断a变量是否大于1,并且a是否小于5,使用and逻辑运算符将要判断左右两边的值是否都是判断正确,或者说左右两边的判断值是否都为真,都为真的话使用and连接起来的表达式才为真,假设其中有一个为错,那么使用and连接起来的表达式就为假。
以上代码运行的结果如下:
我们把a的值改为2,and连接的左右两边的运算结果都成立,都为真,运行结果如下:
or
python中使用or判断左右两边表达式是否有一个正确,正确时返回第一个对象(或者说值),如果左右两边都是错误,那么则为False。
or和and的区别为:
- or只需要连接的左右两边的条件其中一个为真则整个使用or运算符连接起来的整体表达式都为真。
- and需要左右两边连接起来的表达式都为真,那么左右两边连接起来的整体表达式才都为真。
not
not在做运算时,用来为值取反,not True则为False,not False 则为True。
假设一个表达式 1>10 为真,使用not 1>10,整个表达式的值会取反,真的话就为假,假的话就为真。
代码为:
a=0
if not a>1:print('a在1和5之间')
else:print('a不在1和5之间')
以上代码即时a等于0的时候判断条件还未真,执行了原本正确的代码块。
结果为: