0

Learn Python the Hard Way(第2版、LPTHW)の16回目の演習を行っているときに、奇妙な問題に遭遇しました。
最初にコードを入力してコピーしました。コンソールでスクリプトを実行すると(python ex16.py test.txtを使用)、同じメッセージが表示されます。

File "ex16.py", line 19, in <module>  
line1 = input("line 1: ")  
TypeError: 'str' object is not callable    

コードは次のとおりです。

from sys import argv

script, filename = argv

print("We're going to erase %r." % filename)
print("If you don't want that, hit CTRL-C (^C).")
print("If you do want that, hit RETURN.")

input = ("?")

print("Opening the file...")
target = open(filename, 'w')

print("Truncating the file. Goodbye!")
target.truncate()

print("Now I'm going to ask you for three lines.")

line1 = input("line 1: ")
line2 = input("line 2: ")
line3 = input("line 3: ")

print("I'm going to write these to the file.")

target.write(line1)
target.write("\n")
target.write(line2)
target.write("\n")
target.write(line3)
target.write("\n")

print("And finally, we close it.")
target.close()  

これは、LPTHWがPython 2.7用に作成されており、Python 3.3を使用していることが原因ですか?

4

2 に答える 2

3

ここで組み込み関数をシャドウイングしinputました:

input = ("?")

等号inputは、組み込み関数をシャドウするという名前の変数に割り当てられinput()ます。等号を削除すると、コードが機能します。

input("?")
于 2013-01-09T22:14:12.200 に答える
0
input = ("?")

上記をコメントアウトして、スクリプトを再試行してください。

于 2013-01-09T22:16:11.847 に答える