2017-04-25 2 views
0

Ich habe begonnen, Python 2.7.x mit dem Buch "Lerne Python den harten Weg" zu lernen. Ich lerne gerade über die raw_input Funktion und experimentiere mit verschiedenen Möglichkeiten, es zu benutzen. Ich schrieb den folgenden Code:Wie füge ich eine Variable in eine raw_input-Abfrage ein?

name = raw_input("What is your name? ") 
print "Hi %s," % name, 
home = raw_input("where do you live? ") 

print "I hear that %s is a great place to raise a family, %s." % (home, name) 

age = raw_input("How old are you, %s? ") % name 

Ich erhalte diesen Fehler mit der letzten Zeile:

TypeError: not all arguments converted during string formatting

Wie kann ich die raw_input Funktion in ähnlicher Weise verwenden und eine Variable einfügen so anpassen die Frage eingebettet in die raw_input Abfrage (Entschuldigung, wenn ich ein Durcheinander der Terminologie mache)?

Idealerweise würde ich ausgeben möchte eine Frage in dieser Richtung:

How old are you, Bob?

Antwort

4

Versuch:

age = raw_input("How old are you, %s? " % name) 

Erläuterung:

raw_input([prompt]) 

If the prompt argument is present, it is written to standard output without a trailing newline. The function then reads a line from input, converts it to a string (stripping a trailing newline), and returns that. 

Also, wenn Sie tun

age = raw_input("How old are you, %s? ") % name 

sagen wir, Sie Paul eingegeben

so die obige Aussage wird,

age = "Paul" % name 

und seit string "Paul" ist nicht ein Platzhalter den entsprechenden Fehler auslöst.

+0

Das scheint nicht zu funktionieren. Die Abfrage wird: "Wie alt bist du,% s?" und wenn ich antworte, sehe ich den gleichen Fehler. –

+0

hast du versucht, 'age = raw_input (" Wie alt bist du,% s? "% Name)'? – JkShaw

+0

Perfekt, das hat funktioniert. Vielen Dank! –

Verwandte Themen