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。也许我忽略了什么?你在比较整数,而不是整数的真实性。是的,正如我所说,我意识到了这一点。