Python if语句中有括号和无括号的区别
在python中,Python if语句中有括号和无括号的区别,python,Python,在python中,if语句可以包含括号,也可以不包含括号: if True: pass if (True): pass 这两者之间有什么区别,甚至是性能上的差异吗?在Python中,括号是不需要的。您通常使用它们对长而复杂的表达式进行分组。与大多数语言一样,会忽略额外的括号。在Python中,if语句根本不需要任何代码。这两个语句都是相同的。正如编译的字节码所示 >>> from dis import dis >>> dis(compile
if
语句可以包含括号,也可以不包含括号:
if True:
pass
if (True):
pass
这两者之间有什么区别,甚至是性能上的差异吗?在Python中,括号是不需要的。您通常使用它们对长而复杂的表达式进行分组。与大多数语言一样,会忽略额外的括号。在Python中,
if
语句根本不需要任何代码。这两个语句都是相同的。正如编译的字节码所示
>>> from dis import dis
>>> dis(compile("if True: pass", "string", "exec"))
1 0 LOAD_NAME 0 (True)
3 POP_JUMP_IF_FALSE 9
6 JUMP_FORWARD 0 (to 9)
>> 9 LOAD_CONST 0 (None)
12 RETURN_VALUE
>>> dis(compile("if (True): pass", "string", "exec"))
1 0 LOAD_NAME 0 (True)
3 POP_JUMP_IF_FALSE 9
6 JUMP_FORWARD 0 (to 9)
>> 9 LOAD_CONST 0 (None)
12 RETURN_VALUE
他们之间根本没有区别。我能想到两件事
if 10/5 == 2 and 2*5 == 10:
pass
这样看起来会更好
if (10/5 == 2) and (2*5 == 10):
pass
要记住的另一件事是对条件句进行分组 在括号中包含条件可以稍微改变预期的顺序:
x = True
y = True
z = True
if x==False and y==False or z==True:
print 'foo' # This will print
if x==False and (y==False or z==True):
print 'bar' # This will not print
如果(x==False和y==False)或z==True,则第一条语句应被解读为
,
第二条语句很难看;第一个不是。你的答案和X没有区别!