求奇数之和

时间:2018-08-30 16:33:38

标签: python python-3.x

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)         

3 个答案:

答案 0 :(得分:1)

sum(range(mystery_int, 0)有两个括号,一个括号。同样,range0减小到输入的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)