2

これは非常に基本的な質問のように思えますが、どこにも解決策を見つけることができなかったので、以下に示します。

私は主に練習用に小さなプログラムを書いていますが、入力に応じて次のように異なることを行います。

while True:
    switch = input('a, b or c:')

    if switch == "a":
        print("In command line and Powershell...")
    elif switch == "b":
        print("...these lines will never run.")
    elif switch == "c":
        print("Neither will this one, no matter what my input(switch) is.")
    else:
         print("meh...")
                 break

コードを IDLE または PyScripter インタープリターで実行すると正常に動作しますが、コマンド ラインまたは PowerShell で実行すると、入力内容に関係なく、毎回 "else" 行が実行されます。

4

1 に答える 1

1

なぜ最後にキャリッジリターンが返されるのかわかりません。おそらく、これをWindowsで実行しているのでしょうか。Unixではうまく機能します。回避策は、空白をすべて削除することです。

switch = input('a, b or c:').strip()

それはあなたの問題を解決するはずです。

于 2012-08-02T07:28:01.253 に答える