2017-09-26 2 views
0

Ich mache Übung 14 von der Zed Shaw's "Lerne Python den harten Weg", aber dieses Problem hat. Ich habe sogar versucht, den Code aus dem Buch einzufügen, aber es gibt mir immer diesen Fehler. Hier ist mein Code:Nicht alle Argumente während der Formatierung von Zeichenfolgen konvertiert

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) 

Was verursacht diesen Fehler?

+0

Versuchen Sie, jede Gruppe von Anweisungen einzeln nacheinander auszuführen, bis Sie herausgefunden haben, welche Zeile den Fehler verursacht. –

+0

Mögliches Duplikat von [TypeError: nicht alle Argumente, die während der String-Formatierung von Python konvertiert wurden] (https://stackoverflow.com/questions/18053500/typeerror-not-all-arguments-converted-during-string-formatting-python) – jpmc26

+0

FYI, Shaws Buch ist etwas veraltet (und daher an einigen Stellen falsch), seit er sich geweigert hat, zu Python 3 zu migrieren. Vielleicht möchtest du etwas anderes suchen. – jpmc26

Antwort

0

Diese Zeile sieht falsch:

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

Für nichts zu erklären, -1. (Dies ist auch ein Duplikat.) – jpmc26

0

Ändern Sie die Anweisung

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

Sie gab die Variable als ein Argument, aber sie hat keinen Platzhalter für das Argument haben. Aus diesem Grund kann das Argument während der Formatierung nicht in eine Zeichenfolge konvertiert werden.

+0

Es tut mir leid, ich verstehe nicht. Wenn ich das schreibe, gibt es mir einen Fehler, dass "Benutzername" nicht definiert ist. –

+0

user_name ist deine Variable. Die Argumente, die Sie nach% verwenden, sind Ihre Variablen. Meine hatte früher einen Tippfehler. – yesemsanthoshkumar

+0

Es tut mir leid, verstehe ich immer noch nicht.Was soll ich den Fehler korrigieren? –

Verwandte Themen