2017-09-26 6 views
0

私は現在、を使っています。Pythonを使って退屈なものを自動化し、第4章でこの例を挙げました(興味がある場合はhereを読むことができます)。このコードは、本の中で示唆されている例から入力され、以下に貼り付けられています。この本では、私はペットの名前を入力するように促すはずですが、それがリストにあるものと一致しない場合、私はその名前でペットを持っていないという応答を得なければならないと言われています。Python Ch 4 myPetsでボーリングを自動化

私はに実行する問題は、私は実際に取得応答があるということである。

Enter a pet name: 
Gennie 
Traceback (most recent call last): 
    File "/Users/gillian/Documents/Python/AutomateTheBoringStuffwithPython/Ch4Example1.py", line 3, in <module> 
    name = str(input()) 
    File "<string>", line 1, in <module> 
NameError: name 'Gennie' is not defined 

私はそれは次のようになり、なぜわかりません。この例のコードとは何か違うものは見当たりませんが、そのエラーに関する何かが正しいとは思われません。私はどこに行ったのですか?

myPets = ['Zophie', 'Pooka', 'Fat-tail'] 
print('Enter a pet name: ') 
name = input() 
if name not in myPets: 
    print('I do not have a pet named ' + name) 
else: 
    print(name + ' is my pet.') 
+3

使用しているPythonのバージョンは?私はあなたがPython 2.7を使用していると確信しています。この本はおそらくPython 3のために設計されていますが、構文は少し異なります。 – Kevin

+3

[python3.xのraw \ _input()とinput()の違いは何ですか?](https://stackoverflow.com/questions/4915361/whats-the-difference-between-raw-input-and) -input-in-python3-x) – Guillaume

+1

Python2の 'input()'は与えられた入力文字列を評価するので、 'Gennie'と入力すると、同じ名前の変数の値で置き換えようとします。このナンセンスはPython3で修正されました。 – Guillaume

答えて

0

raw_input()に変更input()あなたはPythonの2.xのを使用しているように見えると、このコードは3.xで書かれているよう

差異の詳細については、hereをご覧ください。

関連する問題