首页 > 编程知识 正文

Python andor以及三目表达式语法,语言表达题目以及答案

时间:2023-05-04 22:20:52 阅读:184688 作者:2819

Python中的and-or以及三目表达式语法 1.and

在python中,and自左向右扫描布尔表达式,如果所有值为真,则返回最后一个为真的表达式,如果为假,则返回第一个为假的表达式,例如:

print(2 and 1 and 3)#这种情况下打印的值为3,即整个表达式中最后一个为真的部分print(1 and 3 and 0 and 4)#这种情况下打印第一个为假的部分print(1 and 0 and 3/0)#注意这个地方的运算方式与C一样,如果判断这个布尔表达式已经为假,则返回第一个为假的部分,并且不再进行接下来的计算,这里就不会报告除0的错误

注意这个地方会执行短路规则,一旦计算得出表达式是假,则直接返回第一个为假的值,不继续进行运算。

2.or

or的使用与and正好相反,自左向右计算整个布尔表达式,如果有为真的值,那么立刻返回第一个为真的值,如果整个表达式为假,则返回最后一个为假的值

print(0 or 1 or 1/0)#返回的是第一个真值,并且不再继续进行运算,所以没有除0报错print(0 or '')#返回的是最后一个假值 3.and-or

and-or的组合使用与上述的规则一致,例如:

a = "first"b = "second"print(False and a or b) #输出为secondprint(True and a or b) #输出为first

这时候,大家会发现这样使用跟三目表达式很相似,也确实如此,但是有一个问题就是如果a的值为假的时候,就不能像真的三目表达式一样工作了(这时候会进行and运算之后还会判断 or b的值),为了解决这个问题,可以使用列表的方法,例如:

a = "first"b = "second"print( (1 and [a] or [b] )[0] )print( (0 and [a] or [b] )[0] )a = 0b = "second"print( (1 and [a] or [b] )[0] )print( (0 and [a] or [b] )[0] )

这样,就算a的值是假,因为列表元素总是不为空的,所以总是可以得到正确结果。

4.三目运算符

在前面的and-or的组合使用其实就相当于对三目运算符的模拟,其实python本身也有自己的三目表达式,python的三目表达式与其他语言不太一样,例如在C等语言中,我们的三目运算符是这样的格式:

bool ?a:b

在python中使用 if - else:

a = "first"b = "second"result1 = a if 1 > 0 else bprint(result1)result2 = a if 1 < 0 else bprint(result2)

简单来说就是if后边跟bool表达式,如果为真,就去最前面a,否则取后边的b。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。