【问题标题】:so simple ask about while loop这么简单的问一下while循环
【发布时间】:2018-05-15 20:39:59
【问题描述】:

我是 python 初学者,我有两个练习。第一个运行流畅,没问题。但是第二个没有运行...为什么?它们有什么区别?

第一:

x=0
while x<10:
    print 'x is currently:', x
    print 'x is still less than 10, adding to x'
    x+=1

    if x==3:
        print 'Hey x equals 3!'
    else:
        print 'continuing...'
        continue

第二个:

x=0
while x<2:
    print 'may be!!'
    x+=1

    if 2<x<10:
        print "the number is:", x

    else:
        print 'not yet!!'
        continue

【问题讨论】:

  • 从表面上看,代码看起来不错。我认为您需要提供更多上下文和问题描述。
  • 欢迎来到 StackOverflow。请阅读并遵循帮助文档中的发布指南。 Minimal, complete, verifiable example 适用于此。在您发布 MCVE 代码并准确描述问题之前,我们无法有效地帮助您。我们应该能够将您发布的代码粘贴到文本文件中并重现您描述的问题。您的第二个循环执行没有错误;它确实运行。它不是为了复制第一个循环的输出而设计的。我们需要您描述您的问题。
  • 不必要地使用了 continue 字 BTW。它仍将继续下一次迭代
  • 当你得到解决方案时,请记得给有用的东西投票并接受你最喜欢的答案(即使你必须自己写),这样 Stack Overflow 才能正确存档问题。跨度>

标签: python while-loop


【解决方案1】:

玩弄值和变量以及循环格式以使其更好,学习是通过自己尝试来实现的。
您的代码设置x=1,然后打印“可能是”并递增变量,然后跳过if,进入else 并打印“尚未”。使用x=1,“可能是”再打印一次,然后设置x=2,它再次跳过if,因为条件只接受x超过2个不相等。然后print 'not yet' 在else 中,检查循环并停止它,因为 x 不再小于 2,而是相等。

【讨论】:

    【解决方案2】:

    我推断您的问题是没有打印出the number is: 3,也许是在那之后的任何内容。

    问题出在你的循环控制序列中:

    while x<2:               # Exit the loop once x reaches 2
        print 'may be!!'
        x+=1                 # x is no longer the value you tested;
                             # is that really what you want?
        if 2<x<10:
            print "the number is:", x
    

    if 语句永远不会是True;当xwhile 处为0 或1 时,将其递增为1 或2,条件仍为False。在下一次迭代中,while 条件会强制您退出循环。

    顺便说一句,循环底部的continue 是没用的;循环自然会继续。

    【讨论】:

    • 感谢您在这里的每一个帮助!!!我解决了我的问题。首先,我尝试获取最多 10 个数字的所有数据。但正如你所说,我的循环正在中断并得到我想要的。
    【解决方案3】:
    if 2<x<10:
    

    X 永远不会超过 2。因为一开始你给 X 0。然后你说;

    "while x<2:"
    

    当 x 大于等于 2 时,退出 while 循环。

    【讨论】:

      猜你喜欢
      • 2011-06-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-23
      • 1970-01-01
      • 1970-01-01
      • 2021-05-29
      • 2014-03-09
      相关资源
      最近更新 更多