2017-09-26 4 views
0

私はZed Shawの "Learn python the hard way"からエクササイズ14を行っていますが、この問題があります。私は本からコードを貼り付けるコピーを試みたことさえあるが、それはいつも私にそのエラーを与える。ここに私のコード:文字列書式操作中にすべての引数が変換されない

from sys import argv 

script, user_name = argv 
prompt = ' >' 

print ("Hi %s I'm the %s script.") % (user_name, script) 
print "I'd like to ask you some questions" 

print ("Do you like me?") % (user_name) 
likes = raw_input(prompt) 

print ("Where do you live %s") % (user_name) 
lives = raw_input(prompt) 

print ("What computer do you use %s") % user_name 
uses = raw_input(prompt) 

print """ 

Alright so I asked you if you liked me and you said %r. You live in %r and you use 
%r computer. Thanks 
""" % (likes, lives, uses) 

このエラーの原因は何ですか?

+0

エラーの原因となっている行を特定するまで、一連のステートメントセットを1つずつ個別に実行してみてください。 –

+0

[TypeError:文字列フォーマット中にすべての引数が変換されないpython](https://stackoverflow.com/questions/18053500/typeerror-not-all-arguments-converted-during-string-formatting-python) – jpmc26

+0

FYI、 Shawの本は、Python 3への移行を拒否して以来、やや古くなっています(したがって、いくつかの場所では間違っています)。他のものを探したいかもしれません。 – jpmc26

答えて

0

この行は間違っになります

print ("Do you like me?") % (user_name) 
+0

何も説明しないために、-1。 (これも複製です) – jpmc26

0

変更声明

print("Do you like me? %s") % (user_name) 

あなたは、引数として変数を与えていますが、引数のプレースホルダを持っていませんでした。そのため、フォーマット中に引数を文字列に変換できないのです。

+0

私は申し訳ありませんが、私は分かりません。私がそれを書くと、それは "username"が定義されていないというエラーが表示されます –

+0

user_nameはあなたの変数です。 %の後に使用する引数は変数です。私の入力ミスは早かった。 – yesemsanthoshkumar

+0

申し訳ありません私はまだ理解していません。私はどうすればエラーを修正する必要がありますか? –

関連する問題