当我输入no时,它不能正确执行

2024-09-29 17:47:41 发布

您现在位置:Python中文网/ 问答频道 /正文

import webbrowser
import time
import sys
import urllib.request


def con():
    cont = input("Do you want to continue? ")
    if (cont.lower() == "yes" or cont.lower() == "y"):
        main()
    elif (cont.lower() == "no" or cont.lower() == "n"):
        sys.exit()
    else:
        print("Invalid answer. Please try again")
        time.sleep(1)
        con()


def main():
    try:
        website = input("What website do you want to go to? (ex. Example.com) ")
        fWebsite = "http://{}".format(website)
        time.sleep(1)
        if (urllib.request.urlopen(fWebsite).getcode() == 200):
            webbrowser.open(fWebsite)
        time.sleep(1)

    except:
        print("Invalid website. Please enter another one")
        time.sleep(1)
        main()
    con()


main()

当代码运行con()时,每当我尝试输入no时,它总是说invalid website。请输入另一个。如何修复它以退出程序?其他的都能用,只是这一部分


Tags: toimporttimemainrequestdefsyssleep
1条回答
网友
1楼 · 发布于 2024-09-29 17:47:41

sys.exit函数通过引发SystemExit异常来工作。您的代码有一个空的except块,它捕获异常并抑制其正常用途(即安静地退出)

解决这个问题的最佳方法是使您的except子句更加特定于您希望捕获的异常类型。捕获所有异常几乎总是一个坏主意(唯一的例外是捕获所有异常,但记录并重新引发大部分异常)

由于您的特定代码正试图处理来自urllib的异常,因此捕获^{}可能是您的最佳选择

相关问题 更多 >

    热门问题