【问题标题】:How to do a while loop when using a greater than or less than使用大于或小于时如何执行while循环
【发布时间】:2019-05-04 23:54:25
【问题描述】:

我不明白为什么我的 while 循环是连续的,我该如何让它停止?

我尝试根据大于和小于数字创建一个 while 循环,它已经工作,但我的输出是连续的并且不会停止。

lineno=int(input("how many lines do you want of RLA code?"))

target= 3

while lineno >= target:
    print("Proceed")

while lineno< target: 
    print ("try again")

我希望输出继续询问,直到他们获得等于或大于 3 的用户输入,当他们获得大于 3 或等于 3 的数字时,我希望他们继续使用以下方法向他们提出不同的问题用户输入而不是连续打印“proceed”或“true”。

【问题讨论】:

  • linenotarget 需要在循环内更新。你的意思是使用if
  • 这是预期的,因为您的条件 lineno 是 3,它等于目标,因此它打印继续

标签: python while-loop python-3.7


【解决方案1】:

您应该继续询问用户在一个循环中需要多少行,而不是像下面这样在循环中打印 Proceed:

while lineno < target:
    lineno=int(input("how many lines do you want of RLA code?"))
print("Proceed")

【讨论】:

    【解决方案2】:

    我不明白为什么我的 while 循环是连续的,我该如何让它停止?

    因为您没有在 while 循环中更新变量 lineno。您可以尝试将输入语句移动到 while 循环下。

    我希望输出一直询问​​,直到他们获得等于或大于 3 的用户输入

    您已经回答了自己的问题。如果您想询问用户或重复特定代码特定次数,您应该考虑将其移至python 中的while 语句或for 语句下。

    我希望他们继续使用用户输入向他们提出不同的问题,而不是不断打印“继续”或“真”。

    您可以在while 1: 之后添加新问题(请参阅我的评论)。

    在下面查找示例代码。它应该可以按照您的意愿工作,但我建议您再试一次,并尝试以您自己的方式实施解决方案。

    def askUser():
        while 1:
            lineno = int(input("how many lines do you want of RLA code?"))
            target = 3
    
            if lineno >= target:
                print("Proceed")
                break
    
            if lineno < target: 
                print ("try again")
    
        # Ask a different question
    
    
    askUser()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-02
      • 2020-05-17
      • 1970-01-01
      • 2015-10-15
      相关资源
      最近更新 更多