如果您有一个if语句,其中对多个变量或函数进行了评估,那么按什么顺序对其进行评估?
if foo > 5 or bar > 6:
print 'foobar'
在这种特定情况下,是将foo相对于5评估,然后将6相对于吧(从左至右)进行评估,还是将其从右至左进行评估?我假设aor
和and
以相同顺序求值。
如果第一个是,则将首先评估left子句,然后评估第一个False
。
这就是为什么您可以执行以下操作的原因:
if not person or person.name == 'Bob':
print "You have to select a person and it can't be Bob"
没有破坏。
相反,对于and
子句,只有第一个为True
:时,将评估right子句:
if person and person.name:
# ...
否则,当person
is时将引发异常None
。
问题内容: 在Python中,我们可以这样做: 有人可以指出我有关此功能的文档吗? 它是语言的实现细节或功能吗? 利用此功能是否很好? 问题答案: 在和 短路 ,请参见布尔操作文档: 表达式首先计算; 如果为假,则返回其值;否则,将求值并返回结果值。 表达式首先计算; 如果为true,则返回其值;否则,将求值并返回结果值。 注意如何,对,是 只有 当评估计算为一个真正的价值。相反,for ,仅当评
这段代码给出的答案不是很直观: 0 1 我明白为什么会发生这种情况-赋值的左侧返回对底层值的引用,同时创建上述值,然后才使用新计算的对右侧进行评估映射。 这种行为在C标准中是否有表述?还是求值顺序没有定义? 使用g 5.2.1获得结果。
问题内容: 当可以设置为None时,使用以下格式是否不好? 问题是,如果my_var为None ,将引发TypeError。 还是我应该使用: 要么 换一个问题,以上哪一项是Python最佳实践(如果有)? 欢迎其他选择! 问题答案: 依赖条件语句的顺序是安全的(此处是Python参考),特别是由于您指出的问题-能够缩短可能导致一系列条件语句出现问题的评估是非常有用的。 大多数语言会弹出这种代码:
本文向大家介绍Python用exec评估语句,包括了Python用exec评估语句的使用技巧和注意事项,需要的朋友参考一下 示例
问题内容: 说我有一大堆的是无论是变量或。我想在一个if语句中评估一组这些变量,以查看它们是否都像这样: 除非那行不通。我知道我可以这样做: 但这是非常丑陋的-特别是如果这些if语句将在我的代码中频繁出现。有什么方法可以使用更简洁的语法进行此评估(例如第一个示例)? 问题答案: 您永远不要使用(或)测试布尔变量。相反,要么写: 或使用(以及相关问题的表弟): 或使用Python的可传递比较:
Python3 实例 以下实例通过使用 if...elif...else 语句判断数字是正数、负数或零: 实例(Python 3.0+)# Filename : test.py # author by : www.runoob.com # 用户输入数字 num = float(input("输入一个数字: ")) if num > 0: print("正数") elif num == 0: pri