mystery_int = 7
无法获得此循环,仅保留modifiyng代码以获取错误消息。有没有人有什么建议?
while mystery_int in range(mystery_int):
if mystery_int > 0:
mystery_int = sum(range(0, mystery_int + 2))
if mystery_int < 0:
mystery_int = sum(range(mystery_int, 0))
print(mystery_int)
sum(range(mystery_int, 0)
有两个开头括号,一个关闭。此外,range
从0
变为少于输入的一个;因此,mystery_int
不在range(mystery_int)
,循环永远不会运行。并使用相同的变量名来表示两个不同的东西,如mystery_int in range(mystery_int)
,是一个坏主意。
mystery_int=7
while mystery_int in range(0,100):
print(mystery_int)
你宣称mystery_int = 7并且你把范围视为不好的mystery_int,尝试使用其他范围,如果你的值mystery_int = 7在范围内,它将创建无限循环,因为你已经采取了mmystery_int = 7。
将循环从while
更改为for
这对我有用(我还将print
函数移出循环。
mystery_int = 7
for mystery_int in range(mystery_int):
if mystery_int > 0:
mystery_int = sum(range(0, mystery_int + 2))
if mystery_int < 0:
mystery_int = sum(range(mystery_int, 0))
print(mystery_int)
但这并不是您在评论中对负值所描述的内容,以下两个标志的作用如下:
mystery_int = 7
if mystery_int > 0:
mystery_sign = 1
if mystery_int < 0:
mystery_int*=-1
mystery_sign = -1
for mystery_i in range(mystery_int):
mystery_int = sum(range(0, mystery_i + 2))
print(mystery_int*mystery_sign)