我在 Python 中编写了一个代码,即使我使用了 break 语句并继续,它仍然会进入 Python 中的无限循环:

Posted

技术标签:

【中文标题】我在 Python 中编写了一个代码,即使我使用了 break 语句并继续,它仍然会进入 Python 中的无限循环:【英文标题】:I have written a code in Python where even if i am using a break statement and continue still its going into an infinite loop in Python: 【发布时间】:2017-07-06 06:13:55 【问题描述】:

下面的代码正在运行,但是当我试图退出代码时,它会进入一个无限循环,即使我输入 1,它也不会跳出循环。我是 Python 初学者,谁能帮帮我?

这是我的代码,

import urllib2
import sys

urlToRead = ('https://www.google.com')

crawledWebLinks = 

while urlToRead !='':
    try:
        urlToRead = raw_input('Please enter the Next weblink to crawl')
        if urlToRead == '':
            print ('Ok Existing the Loop')
            break
        shortName = raw_input('Please enter a short Name for the Url to Read  ' + urlToRead)
        webfile = urllib2.urlopen(urlToRead).read()
        crawledWebLinks[shortname] = webfile
    except:
        print (sys.exc_info()[0])
        stopOrproceed = raw_input('You want to Stop or Continue, Please type in 1 to stop or anything else to Continue')
        if stopOrproceed == 1:
            print ('Okies we are stopping')
            break
        else:
            print ('lets continue')
            continue


print (crawledWebLinks.keys())

【问题讨论】:

stopOrproceed 是一个字符串。它永远不会与整数 1 比较。您的 if 语句应该类似于 stopOrProceed == "1"int(stopOrProceed) == 1 raw_input 返回一个字符串。你的输入是"1",而不是1 【参考方案1】:

以下几行是导致问题的行,

stopOrproceed = raw_input('You want to Stop or Continue, Please type in 1 to stop or anything else to Continue')
if stopOrproceed == 1:
    print ('Okies we are stopping')
    break

您会看到raw_input 获取输入并将其存储为字符串。所以在从用户那里获得价值之后。您的 stopOrproceed 变量将具有 "1"

当你检查stopOrproceed==1 --> "1"==1。这在 Python 中绝对不相等。所以评估总是假的因此控件永远不会进入if,因此你永远不会break

试着改成这个,

if stopOrproceed == "1":
        print ('Okies we are stopping')
        break

【讨论】:

最后一个建议(类型转换)是个坏主意,因为它很可能会导致不需要的 TypeError 是的,我知道也许我应该提一下……谢谢好友@Dimgold 非常感谢毗湿奴....它工作得很好我用它和 int 和 string 都试过了,它工作得很好。万分感谢。 :) 如果它确实有效。接受答案。点击下方的小tick :)

以上是关于我在 Python 中编写了一个代码,即使我使用了 break 语句并继续,它仍然会进入 Python 中的无限循环:的主要内容,如果未能解决你的问题,请参考以下文章

我在 Python 中编写了一个代码来从 5 个元素的数组中找到 4 个元素的最大值和最小值

node.js 可以编写一个方法,以便可以两种方式调用它 - 即使用回调或异步/等待?

Python discord bot 不接受错误

超简单的Python教程系列——第18篇:调试

为使用 OpenCV 的 C++ 代码编写 Python 绑定

成员变量得到一个随机值,即使我在构造函数中初始化它 - 为什么?