2017-12-16 11 views
-4

私のコードは、無効な文字識別子を持っていると言っています。識別子に無効な文字があります。4

import random 
answer1 = ("Absolutely!") 
answer2 = ("No way Pedro!") 
answer3 = ("Go for it tiger.") 
input("Welcome to the Magic 8 Ball game and use it to answer your questions...") 
question = int(input("Ask me for any advice and I’ll help you out. Type in your question and then press Enter for an answer.")) 
print("shaking.... \n" * 4) 
choice = random.randint(1,3) 

if choice == 1: 
    answer = Answer1 
elif choice == 2: 
    answer = Answer2 
else: 
    answer = Answer3 
print(answer) 
+2

インデントを修正してください。これはPythonでは非常に重要です。 – cdarke

+4

そして、 'answer1'と' Answer1'は二つの*異なる*識別子です。 –

+0

ユーザが2番目の 'input()'に何も入力しないと()、 'int()'変換は 'ValueError'をスローします。例外処理が必要なのかもしれません。 – cdarke

答えて

1

あなたの識別子に無効な文字があるということは、そこにはいけないものがあることを意味します。エラーメッセージが次のように表示された場合:

File "invalchar.py", line 23 
    values = list(analysis.values()) 
      ^
SyntaxError: invalid character in identifier 

「無効な文字」がどこにあるかを正確に示しています。私は構文ミスのためにあなたのコード全体を調べることをお勧めします。また、私は次のように良い書式を使い始めるでしょう:

import random 

answer1=("Absolutely!") 
answer2=("No way Pedro!") 
answer3=("Go for it tiger.") 

input("Welcome to the Magic 8 Ball game and use it to answer your 
questions...") 

question = int(input("Ask me for any advice and I’ll help you out. 
Type in your question and then press Enter for an answer.")) 

print("shaking.... \n" * 4) 
choice=random.randint(1,3) 

if choice == 1: 
    answer = Answer1 

elif choice == 2: 
    answer = Answer2 

else: 
    answer = Answer3 
    print(answer) 

これは読みやすくなります。また、無効な文字はスペースである可能性があるので、スペースが正しいことを確認してください。

+0

_無効な文字は空白になる可能性があるので、タブが正しいことを確認してください_この場合、 'IndentationError'が表示されます。 –

+0

@JohnGordon私はそれを間隔に変更しました。私はしかし、質問があります。 4つではなく5つのスペースがある場合は、有効なタブと1つの無効な文字として読み取られませんか?インデントエラー/ –

+0

の代わりに無効なcharエラーを消去するいいえ、それはまだIndentationErrorです。識別子の無効な文字は、変数名に文字通り許可されていない文字が含まれていることを意味します。通常、これは、PDFやその他のフォーマットの多い文書のカットアンドペーストコードの結果です。 –

関連する問題