【发布时间】:2016-05-16 19:09:32
【问题描述】:
我正在完成一项作业,遇到了一些让我感到困惑的事情,因为我对 python 不是很擅长。这是代码。
def main():
list = [1,2]
x = 2
if (x in list == True):
print("hi")
if (x in list):
print("Why does this proc?")
main()
我相信输出会是两者,但输出只是第二个 if 语句。我知道在 C 中,如果你有类似的东西
if (x = 6)
因为只有一个“=”,所以 x 现在等于 6。(如其所读,如果 (),x = 6)。
这个python代码是否发生了类似的事情?是先检查 'list == true',然后再检查 x 是否在列表中?
任何见解将不胜感激!
【问题讨论】:
-
就是这样。它正在检查
x in list and list == True。 -
为什么会出现错误?这是一个完全合法的 Python 语句。是的,这也行不通,
list不等于False。 -
在这种情况下,我想说这种行为有点古怪,但正是它给我们带来了
4 < x < 8之类的东西。 -
当 len(list) == 0 时,list 被评估为 False,否则为 True
-
bool([1,2])为真,bool([])为假。然而[1,2] == True是假的。所以if list会'proc',但if list == True不会。
标签: python logic statements