为什么以下代码不会抛出错误?
while 7:
print ("Hi")
相反,它会永远打印“嗨”。
答案 0 :(得分:4)
因为表达式7
在布尔上下文中被认为是真的(如while
测试)。
在布尔上下文中,所有非零数字都为真。非空字符串,非空列表,元组或字典也是如此。
基本上,任何非空的,不是None
或False
而不是数字零的东西都被认为是真值。请参阅Truth Value Testing。
答案 1 :(得分:2)
任何非零的东西都被解释为True,所以while(7)与while(1)同义,这是一个无限循环
答案 2 :(得分:0)
虽然循环只采用True
或False
条件,例如:
While 1:
print("hi")
因为1被认为是True
,所以循环变为infinte
如果您希望该程序print("hi")
7次,则需要for
循环:
他们的工作方式如下:
for i in range(7):
print("hi")
i
仅仅是一个变量,而range(7)
只是您想要循环的次数