两天之内就可以通过python考试了,这是非常基本的东西。 这是练习中给出的代码
spam = 0
while spam < 5:
print('Hello, world.')
spam = spam + 1
我希望它能一直运行到命中5(因此,最后一行给出的+1是2次),但答案是“无限次”。
有人知道为什么吗? :)是不是因为在此示例中没有elif
条件,所以是ir?
答案 0 :(得分:3)
在python中,缩进很重要。试试这个:
spam = 0
while spam < 5:
print('Hello, world.')
spam = spam + 1
如果您不确定spam = spam + 1
行,Python会将其解释为不在while
块之外,因此它不会被执行,并且会一直循环下去。
答案 1 :(得分:3)
让我们逐行分解代码。
首先有
spam = 0
这会将变量spam
设置为等于值0
。并且它将一直保持该值,直到代码明确更改为止。
然后我们有一个while循环
while spam < 5:
print('Hello, world.')
从字面上看,这意味着spam
的值小于5时,请继续调用print('Hello World')
。但是,垃圾邮件等于0,因此小于5是真实的,并且将永远是真实的。此循环也不会更改值,因此该循环将无限期运行。
最后,我们有
spam = spam + 1
此语句将spam
递增1,但问题是此语句从未到达!即它被放置在无限期运行的循环之后!