Возникли проблемы с запуском цикла while - PullRequest
2 голосов
/ 26 апреля 2019

Я пытаюсь реализовать возможность повторного запуска цикла после того, как спросила пользователя, хотят ли они это сделать. Сказав, что цикл не должен запускаться снова, цикл останавливается правильно. Но цикл не запускается снова после команды «продолжить».

Я уже пытался читать некоторые сообщения на форуме, но чувствую себя немного застрявшим.

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

Ответы [ 2 ]

1 голос
/ 26 апреля 2019

Ваше условие для поддержания цикла - "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 голосов
/ 26 апреля 2019

Ваш цикл не продолжается, потому что a больше не равен 'Y'.Добавьте a = "Y" перед оператором continue, и оно должно работать

...