除变量Python之外的任何东西

时间:2013-01-09 21:19:50

标签: python

我是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'

5 个答案:

答案 0 :(得分:3)

您可以使用while循环检查输入是否为' o'或者' d':

MyFile = None
while MyFile != 'o' and MyFile != 'd':
  Myfile = raw_input( '''Specify filename (o) or use default chain (d)? ''')

答案 1 :(得分: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''o'

答案 2 :(得分: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...

答案 3 :(得分: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':
    ...

答案 4 :(得分:0)

使用elif(elseif),否则

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()