0

我对 Python 非常陌生,基本上想要 d 或 o 以外的任何东西来重新运行这个问题?有什么帮助吗?

Myfile = raw_input( '''Specify filename (o) or use default chain (d)? ''')


if Myfile == 'd':
    print 'default choosen '
    Myfile = 'M:/test/testchains_a.csv'


if Myfile == 'o':
    print 'own file choosen '
    Myfile = raw_input('Enter absolute path to the .csv file:')

else:
    print 'successful'
4

5 回答 5

3

您可以使用while循环来检查输入是否为“o”或“d”:

MyFile = None
while MyFile != 'o' and MyFile != 'd':
  Myfile = raw_input( '''Specify filename (o) or use default chain (d)? ''')
于 2013-01-09T21:22:05.153 回答
1

您可以按照squiguy建议的方式执行此操作,但将整个内容放入循环中可能更具可读性,因此您不必重复相同的检查两次:

while True:
    Myfile = raw_input( '''Specify filename (o) or use default chain (d)? ''')

   if Myfile == 'd':
        print 'default choosen '
        Myfile = 'M:/test/testchains_a.csv'
        break

    elif Myfile == 'o':
        print 'own file choosen '
        Myfile = raw_input('Enter absolute path to the .csv file:')
        break

这将永远循环,直到它遇到一个break- 换句话说,直到他们选择'd'or 'o'

于 2013-01-09T21:24:33.270 回答
0

您可以使用循环:

wrong = True
while(wrong):
    file = raw_input("My awesome prompt")
    if file == "d":
        file = '/some/path'
        wrong = False
    if file == "o":
        file = raw_input("Where?")
        wrong  = False

# Continue your program...
于 2013-01-09T21:28:36.310 回答
0

我认为你的实际问题是糟糕的 UI 设计。第一个问题是多余的,很容易消除:

myfile = raw_input('Enter absolute path to the .csv file (leave blank to use the default):')
myfile = myfile or 'M:/test/testchains_a.csv'

这种“按回车键使用默认值”的方法在对话程序中很常见。

要回答所的问题,我建议使用这样的函数:

def prompt(message, choices):
    while True:
        s = raw_input(message)
        if s in choices:
            return s

并在您的主要代码中:

option = prompt('Specify filename (o) or use default chain (d)? ', 'od')
if option == 'd':
    ...
elif option == 'o':
    ...
于 2013-01-09T21:29:56.267 回答
0

使用 elif (elseif) 和 else

file = input("enter (d) to use the default file or enter (c) to specify a custom path: ")
if file.lower() == "d":
    print("some code")
elif file.lower() == "c":
    print("some code")
else:
    print("invalid answer!")
    input()
于 2020-05-23T16:09:38.440 回答