无法使while循环正常运行

问题描述 投票:2回答:2

我试图在询问用户是否要这样做之后实现重新运行循环的可能性。在说不应再次运行循环时,循环正常停止。但是在“continue”命令之后循环不会再次启动。

我已经尝试阅读一些论坛帖子,但我觉得有点卡住了。

a = "Y"

url = input("Please enter a valid url:")

while (a == "Y"):

    check_url = "https://" in url

        if check_url == False:
            print("Invalid url, please try again.")
            url = input("Please enter a valid url:")
            continue

        else:
            print("url enteret successfully!")
            print("url:",url)

            print("Is the given url correct?")
            a = input("Yes/No:")
            if str(a) == "Y" or str(a) == "y" or str(a) == "YES" or str(a) == "Yes" or str(a) == "yes":
                break
            if str(a) == "N" or str(a) == "n" or str(a) == "No" or str(a) == "NO" or str(a) == "no":
                print("Please try again.")
                continue       
            else:
                print("Invalid entry. Assuming correct url is given.")
                break
python python-3.x while-loop
2个回答
1
投票

保持循环的条件是"Y"while (a == "Y"),但是你将值改为"N"。尝试切换不变量和起始值。

a = "N"

url = input("Please enter a valid url:")

while (a == "N"):
    ...

此外,如果使用break控制语句退出循环,则实际上不需要检查值。尝试这样的事情:

while True:
    url = input("Please enter a valid url:")
    if "https://" not in url:
        print("Invalid url, please try again.")
        continue
    print("url entered successfully!")
    print("url:", url)

    print("Is the given url correct?")
    a = input("Yes/No:")
    if str(a) == "Y" or str(a) == "y" or str(a) == "YES" or str(a) == "Yes" or str(a) == "yes":
        break
    elif str(a) == "N" or str(a) == "n" or str(a) == "No" or str(a) == "NO" or str(a) == "no":
        print("Please try again.")
        continue       
    else:
        print("Invalid entry. Assuming correct url is given.")
        break

0
投票

你的循环不会继续,因为a不再等于'Y'。在continue语句之前添加a = "Y",它应该可以工作

© www.soinside.com 2019 - 2024. All rights reserved.