当前位置: 首页 > 面试题库 >

在Python中评估if语句的顺序

梁马鲁
2023-03-14
问题内容

如果您有一个if语句,其中对多个变量或函数进行了评估,那么按什么顺序对其进行评估?

if foo > 5 or bar > 6:
    print 'foobar'

在这种特定情况下,是将foo相对于5评估,然后将6相对于吧(从左至右)进行评估,还是将其从右至左进行评估?我假设aorand以相同顺序求值。


问题答案:

如果第一个是,则将首先评估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:
   # ...

否则,当personis时将引发异常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