mystery_int = 7
无法获得此循环,请仅保留修改代码以获取错误消息。有人有建议吗?
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)
答案 0 :(得分:1)
sum(range(mystery_int, 0)
有两个括号,一个括号。同样,range
从0
减小到输入的1;因此,mystery_int
不在range(mystery_int)
中,并且循环永远不会运行。而且像mystery_int in range(mystery_int)
中那样使用相同的变量名来表示两种不同的事物是一个坏主意。
答案 1 :(得分:0)
mystery_int=7
while mystery_int in range(0,100):
print(mystery_int)
您声明mystery_int = 7,并且您将范围取为mystery_int不好,请尝试使用其他范围,如果您的值mystery_int = 7在范围内,它将创建 已经采取mmystery_int = 7的方式进行了无限循环。
答案 2 :(得分:0)
将循环从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)