找到奇数之和

问题描述 投票:-2回答:3

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)         
python python-3.x
3个回答
1
投票

sum(range(mystery_int, 0)有两个开头括号,一个关闭。此外,range0变为少于输入的一个;因此,mystery_int不在range(mystery_int),循环永远不会运行。并使用相同的变量名来表示两个不同的东西,如mystery_int in range(mystery_int),是一个坏主意。


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。


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)   
© www.soinside.com 2019 - 2024. All rights reserved.