0

エラーが発生しましたが、コードを改良する方法がわかりません。

基本的に、私がやろうとしているのはecho、端末アプリでの疑似コマンドです。

while True:
    foo = input("~ ")
    bar = str
    if foo in commands:
        eval(foo)()
    elif foo == ("echo "+ bar):
        print(bar)
    else:
        print("Command not found")

明らかに、それは機能していません。

このプロジェクトを達成するために何を使用する必要があるか知っている人はいますか?

4

2 に答える 2

2

変数を作成し、文字列型であるbarに等しく設定します。str次に、これを string に追加しようとします"echo "。これは明らかにうまくいきません。あなたは何をしようとしていbarますか? barユーザー入力に接続されていないため、ユーザーが何を入力しても変更されません。

入力が「echo」で始まるかどうかを確認し、そうであれば残りを出力する場合は、次のようにします。

if foo.startswith("echo "):
    print foo[5:]

str「任意の文字列」という意味ではありません。それはすべての文字列の型です。Python チュートリアルを読んで、Pythonの基本を理解してください。

于 2012-10-06T05:18:00.120 に答える
0

このコードはおそらく問題を引き起こしています:

"echo "+ bar

barこれはstrデータ型です。

コードを修正する方法は次のとおりです。

while True:
    command = input("~ ")    # Try to use good variable names

    if command in commands:
        commands[command]()  # Avoid `eval()` as much as possible.
    elif command.startswith('echo '):
        print(command[5:])   # Chops off the first five characters of `foo`
    else:
        print("Command not found")
于 2012-10-06T05:17:48.390 に答える