我是Python新手,完全陷入困境
有没有办法让值小于值的变量
例如
x = int(input ("Input a value for x: "))
i = 1
while i < x:
x += i
i += 1
else:
print ("here is your new number:", x,)
每当我使用它时,没有任何反应
感谢您的帮助
答案 0 :(得分:0)
说没有任何事情发生在技术上并不正确,很多事情正在发生。
然而,一个事件没有发生的是产生输出的东西(除非你输入一个小于或等于一的值)。
如果while..else
块没有进行任何迭代,else
构造只会执行while
块。
所以,如果你想在循环之后输出,无论循环体是否执行,摆脱else
并取消print
。
其他未发生的事情是循环本身的退出条件。如果i
的开头时间小于x
(并且他们的开头都是肯定的),请将i
添加到x
,然后将1
添加到{ {1}}永远不会给您i
不小于i
的情况。
想想(例如):
x
您可以看到 x i Description
----- ----- -----------
3 1 Initial state
4 2 x += i; i += 1;
6 3 x += i; i += 1;
9 4 x += i; i += 1;
13 5 x += i; i += 1;
18 6 x += i; i += 1;
24 7 x += i; i += 1;
31 8 x += i; i += 1;
的增长速度超过x
,因此i
将始终为真。
你如何解决这个问题完全取决于你想要实现的目标。由于您已根据代码描述了您的问题,因此您的代码完全符合您的要求。因此,既然你说它没有按你的预期工作,那么你的要求可能需要一些工作: - )
我建议用英语说明你在这里尝试实现的目标,然后我们就可以建议你的实施出错了。
答案 1 :(得分:0)
如果i&lt;
您写的内容将导致无限循环x在开头。所以它永远不会达到你希望它的印刷声明。另外,我还认为你必须删除else并缩进print语句。