【问题标题】:Python - Stay in loop Until condition is metPython - 保持循环直到满足条件
【发布时间】:2018-06-29 01:01:58
【问题描述】:

我想编写一个循环,直到满足条件。

这是目前为止的代码,我不确定是否一切正确,我对 while 循环的经验很少:

x = 2885
y = 1440
difference = 0
while True:
     if x > y:
          difference = x - y
          break

所以我想要的是不断从x 中减去我的常数y 直到

y > x

还有最后的

difference = 5

非常感谢任何帮助,在此先感谢!

【问题讨论】:

  • xy 永远不会改变,因此您的循环要么是无限的,要么在第一次迭代期间结束。

标签: python if-statement while-loop


【解决方案1】:

仅使用模数不是更好的方法。

>>> x = 2885
>>> y = 1440
>>> x%y
5
>>> 

或仍在使用循环

>>> x = 2885
>>> y = 1440
>>> while x >= y :
...     x = x - y
... 
>>> x
5
>>>

【讨论】:

  • 你还能如何使用模数?
  • @ritesht93 正是我在寻找的东西,我只是不知道模数是做什么的。谢谢你的回答!
【解决方案2】:

不是True作为执行条件,而是把x > y

x = 2885
y = 1440
while x >= y:
   x -= y

>>x

输出:

5

【讨论】:

  • 您应该使用x >= y 的条件,否则如果x 完全可整除,1440 仍将保留(例如x=2880
【解决方案3】:

Modulus 是您最好的解决方案,但如果您坚持使用循环解决方案,这也可以在相当简单的 for 循环中实现。

>>> x = 2885
>>> y = 1440
>>> for i in range(x, -1, -y): # -1 as substitution for inclusive 0
...     pass
...
>>> i
5

【讨论】:

    猜你喜欢
    • 2021-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-02
    • 2016-04-12
    • 1970-01-01
    • 2022-11-23
    • 1970-01-01
    相关资源
    最近更新 更多