2017-09-26 70 views
0

我正在從Zed Shaw的「Learn python 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

嘗試逐一逐個運行每組語句,直到找出導致錯誤的行。 –

+0

[TypeError:不是在字符串格式化過程中轉換的所有參數python](https://stackoverflow.com/questions/18053500/typeerror-not-all-arguments-converted-during-string-formatting-python) – jpmc26

+0

僅供參考,現在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

對不起,我不明白。如果我寫這個,它給我錯誤,「用戶名」是未定義的 –

+0

用戶名是你的變量。您在%之後使用的參數是您的變量。礦早些時候有一個錯字。 – yesemsanthoshkumar

+0

對不起,我還是不明白。我該怎麼糾正錯誤? –

相關問題