While循环Python-没有错误为什么?
为什么下面的代码没有抛出错误While循环Python-没有错误为什么?,python,while-loop,Python,While Loop,为什么下面的代码没有抛出错误 while 7: print ("Hi") 相反,它会永远打印Hi。因为表达式7在布尔上下文中被认为是真的,比如while测试 在布尔上下文中,所有非零数字都为真。非空字符串、非空列表、元组或字典也是如此 基本上,任何不是空的、不是无的或假的、不是数字零的都被认为是真值。请参阅。任何非零的都被解释为真,因此while7与while1同义,while1是一个无限循环,而循环只接受真或假条件,例如: While 1: print("hi") 因为1被
while 7:
print ("Hi")
相反,它会永远打印Hi。因为表达式7在布尔上下文中被认为是真的,比如while测试
在布尔上下文中,所有非零数字都为真。非空字符串、非空列表、元组或字典也是如此
基本上,任何不是空的、不是无的或假的、不是数字零的都被认为是真值。请参阅。任何非零的都被解释为真,因此while7与while1同义,while1是一个无限循环,而循环只接受真或假条件,例如:
While 1:
print("hi")
因为1被认为是真的,所以循环变为infinte
如果希望程序打印HI 7次,则需要一个for循环:
它们是这样工作的:
for i in range(7):
print("hi")
i只是一个变量,range7只是你想循环的次数好吧,7是真的,所以它应该永远打印Hi。你为什么认为它应该抛出并出错?我的计算机上有一个很好的小程序,可以永远打印y,并且不会在每次计算机出现问题时都产生错误。尤其是Python将允许您比其他更严格的语言做得更多,因为Python希望您知道自己在做什么。我自己也经常使用while True。@RobFoley,这是完全错误的。布尔-1是真的。@RobFoley:不,-1被认为是真的。请参阅我在回答中链接到的文档。我也这么认为,但我只是在Python3.4的控制台中执行了-1==True,结果返回false。1==True返回True。也许我忽略了什么?你在比较整数,而不是整数的真实性。是的,正如我所说,我意识到了这一点。