如何返回循环的开始,以便在输入错误后可以再次请求用户输入?

时间:2019-05-01 12:25:22

标签: python

我希望用户输入目录的路径作为输入。程序应检查此路径是否确实存在。如果路径存在,则应执行其余代码。

如果该路径不存在,则应打印该路径为不存在的路径,我希望它再次请求用户输入路径,直到用户输入存在的路径为止。

我已经用while循环,try和except以及if和else语句尝试了它,但是我不能使它没有错误。

这是我当前的代码:

i = 0

while i<1:

    input = input("Please enter path to directory: ")
    if os.path.exists(input) == False:
        print("This path does not exist")


    elif os.path.exists(input) == True:
        os.chdir(input)
        execute_code(input)
        i +=1

如果用户输入现有路径,则一切正常,但如果该路径不存在,则会打印出该路径不存在,但会显示错误,并且不会再次请求输入。

我需要更改什么,以便程序再次要求用户输入?

2 个答案:

答案 0 :(得分:3)

很少有指针需要照顾:

  1. 切勿使用保留关键字作为变量名
  2. 这里不需要elif条件,因为os.path.exists(input_path)只能有两个返回值,分别为True或False

下面是更新的代码

while True:
    input_path = input("Please enter path to directory: ")
    if not os.path.exists(input_path):
        print("This path does not exist")
    else:
        os.chdir(input_path)
        execute_code(input_path)
        break

希望这会有所帮助!

答案 1 :(得分:1)

您可以使用continue开始循环,并使用break退出循环:

while True:

    user_input = input("Please enter path to directory: ")
    if os.path.exists(user_input) == False:
        print("This path does not exist")
        continue  # it will start from loop begining

    os.chdir(user_input)
    execute_code(user_input)
    break  # exit loop