【发布时间】:2020-10-21 12:27:56
【问题描述】:
我正在观看 this 课程,并在 28:25 包含此代码:
x = 4.5
ans = 0
if x>= 0:
while ans*ans < x:
ans = ans +1
if ans*ans != x:
print (x, 'is not a perfect square')
else: print (ans)
else: print (x, ' is a negative number')
我没有得到 while 循环——它会一遍又一遍地迭代,然后检查 if 语句吗?还是每次迭代时都会检查 if 语句?我觉得自己很傻!
希望能得到一些帮助——我想如果我更多地运用自己,我会得到帮助的——但这些东西与音乐和哲学非常不同。
(啊——现在明白了——我没有考虑缩进。while 下的 if 和 else 只会在 while 循环中断后发生,因为它们不在 while 循环“内部”。我发誓我每天都变得越来越笨。或者也许我已经很久没有做任何真正超出领域的思考了。)
【问题讨论】:
-
while 会一直迭代,只要
ans*ans < x然后执行ans = ans +1,如果ans*ans >= x就会中断,并继续它下面的if 语句,即if ans*ans != x: -
第6行和第8行的
if和else与第4行的while没有关系 -
它会一遍又一遍地迭代然后检查 if 语句吗?是的,只要
ans*ans < x -
它有助于将
else: print (ans)之类的内容转换为带有缩进的多行。它使流程更容易被发现,并且更适合使用调试器单步执行。并学习一个 python 调试器!然后你可以逐行遍历程序,看看它做了什么。
标签: python if-statement while-loop