如何在while循环中修复if语句?

时间:2017-08-21 19:43:40

标签: python python-3.x while-loop

在我的if循环的while语句中,我希望它在用户将verify_name设置为no时循环返回以询问公司名称。但是,如果用户将集verify_name输入为no,则会重新循环到verify_name输入。我该如何解决这个问题,以便它突破这个循环并重新询问公司名称?

import time
while True:
    company_name = input("\nWhat is the name of your company? ")
    while True:
        verify_name = input("\nPlease verify that {} is the correct name of your company \nusing Yes or No: ".format(company_name))
        if verify_name.lower() == "no":
            print("\nPlease re-enter your company name.")
            continue
        elif verify_name.lower() not in ('yes', 'y'):
            print("\nThis is an invalid response, please try again.")
            time.sleep(1)
            continue
        else:
            print("\nWelcome {}.".format(company_name))
            break
    else:
        continue

    break

1 个答案:

答案 0 :(得分:2)

决定重新询问嵌套while循环的公司名称​​ ;内部while循环应关注验证是/否输入。

while True:
    company_name = input("\nWhat is the name of your company? ")

    while True:
        verify_name = input("\nPlease verify that {} is the correct name of your company \nusing Yes or No: ".format(company_name))
        verify_name = verify_name.lower()
        if verify_name not in {'yes', 'no', 'y', 'n'}:
            print("\nThis is an invalid response, please try again.")
            time.sleep(1)
            continue
        break

    if verify_name in {'y', 'yes'}:
        print("\nWelcome {}.".format(company_name))
        break

    else:
        print("\nPlease re-enter your company name.")