0

Pythonコードで機能していないように見える条件ステートメントを作成しようとしています。私はその理由を読んで理解しようとしましたが、ブール値に欠陥はないように見えると個別に述べました。しかし、それらを条件付きステートメントに配置しようとすると、構文エラーが発生します。たぶん誰かが見て、このインスタンスで私のコードが失敗する理由を調べることができます:

userinput = raw_input("Please enter a word: ")

if (len(userinput) > 1 and userinput.isalpha() == True):
    print "Thanks for entering a word."
else:
    print "That was not an acceptable word."

具体的には、次のような構文エラーを受け取ります。

if len(userinput) > 1 and userinput.isalpha() == True):
SyntaxError: invalid syntax                           ^
4

3 に答える 3

5

入力文字列には文字が保持されているため、\n入力が失敗します。

代わりに使用することを検討してくださいuserinput = raw_input("Please enter a word: ").strip()...


また、isalpha()長さが1以上であるかどうかをすでにチェックしており、コードを次のように減らしています。

if userinput.isalpha():
    # whatever

そして、構文エラーはかなりうまく消えます...()後の余分なuserinput)

于 2013-01-28T16:21:05.713 に答える
2

貼り付けたトレースバックは、元のスニペットとは異なるコードを示しています。の後に余分な閉じ括弧がありlen(userinput)、これがエラーの原因です。

于 2013-01-28T16:26:20.737 に答える
1

私は3つの修正を行いました:

  • 1つ目はifステートメントにあります(isalpha()はすでにブール値を返します)
  • 2つ目は、入力の最後にある余分なスペースを削除するためのストリップ関数です。
  • 3つ目は、印刷文字列を囲む角かっこです(python3と互換性を持たせるため)。

最終的なコードは次のとおりです。

userinput = raw_input("Please enter a word: ").strip()

if (len(userinput) > 1 and userinput.isalpha()):
    print ("Thanks for entering a word.")
else:
    print ("That was not an acceptable word.")
于 2013-01-28T16:21:53.927 に答える