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、すべてをループに入れる方が読みやすいかもしれないので、同じチェックを2回繰り返す必要はありません:

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これは、 a に到達するまで、つまり、'd'またはを選択するまで、永遠にループします'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'

この「Enter キーを押してデフォルトを使用する」アプローチは、対話プログラムでは非常に一般的です。

質問に答えるには次のような関数を使用することをお勧めします。

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 に答える