【问题标题】:How to stop the while loop?如何停止while循环?
【发布时间】:2013-09-11 17:19:44
【问题描述】:

编程新手,需要这样的东西,但即使在输入以'0x'开头的字符串后它也不会停止while条件,并且它一直在调用函数。我厌倦了放置'break'而不是增加i值,仍然没有工作。有谁知道为什么?

i = 1
while i < 2:
    call_fun1()
    if hx =='0x':
        i+=1

【问题讨论】:

  • 什么是hx?如果它永远不等于字符串0x,您的循环将永远不会结束。

标签: python-3.x


【解决方案1】:

上面的代码只有在while条件出现时才会进入无限循环

while i < 2:

结果总是true。这将在更改 i 值的代码部分时发生,即

i+=1

从未被执行。当if 条件时会发生这种情况

if hx =='0x':

结果总是false

所以检查原因

if hx =='0x':

总是被评估为false。这应该可以解决问题。

【讨论】:

  • 将if条件改写为if hx.startswith('0x')
  • 另外,您还没有展示如何为hx 分配值。由于表达式if hx =='0x': 中的变量部分是hx,因此您还需要确保hx 在while 循环内的某处更新。
【解决方案2】:

使用if hx =='0x',您检查的是hx 是否等于 "0x",而不是它开始。您需要找到一个“子字符串”。检查这个问题:Examples for string find in Python

因此,i 永远不会递增,因此循环将无限期地继续。

【讨论】:

    猜你喜欢
    • 2010-09-26
    • 2023-01-10
    • 2015-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多