【发布时间】:2020-09-26 17:26:10
【问题描述】:
我需要使用 for 循环找到完美立方体的立方根,但我不知道为什么我的代码不起作用:
n = int(input('n = '))
for guess in range(0, n+1):
if guess**3 != n:
guess = guess + 1
if guess**3 == n:
print(guess, 'is the cube root of', n)
if guess**3 != n:
print("not a perfect cube")
如果我输入数字 8(例如),它会打印出来:
n = 8
not a perfect cube
2 is the cube root of 8
2 is the cube root of 8
not a perfect cube
not a perfect cube
not a perfect cube
not a perfect cube
not a perfect cube
not a perfect cube
我想知道是否有人可以帮助我意识到我做错了什么。
【问题讨论】:
-
你不需要在for循环中手动改变猜测,循环会自动完成
-
正如@ChristianSloper 提到的,您正在修改
guess两次。此外,您可能希望将其重写为if / else块而不是多个if语句。最后,现在,每次循环执行时都会调用最后一个if guess**3 != n:。在评估了所有可能的猜测之后,您似乎希望它只发生一次。 -
怎么不行?你期望什么输出?
标签: python python-3.x loops cube