2017-04-25 2 views
0

J'ai commencé à apprendre Python 2.7.x avec le livre "Apprendre Python le Hard Way". J'étudie actuellement la fonction raw_input et j'expérimente avec différentes manières de l'utiliser. J'ai écrit le code suivant:Comment insérer une variable dans une requête raw_input?

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 

Je reçois cette erreur avec la dernière ligne:

TypeError: not all arguments converted during string formatting

Comment puis-je utiliser la fonction raw_input d'une manière similaire et insérez une variable afin de personnaliser la question intégré dans la requête raw_input (excuses si je fais un gâchis de la terminologie)?

Idéalement, je voudrais sortir une question dans ce sens:

How old are you, Bob?

Répondre

4

essayer:

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

Explication:

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. 

Alors, quand vous faites

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

disons que vous avez entré Paul

de sorte que la déclaration ci-dessus devient,

age = "Paul" % name 

et depuis la chaîne « Paul » n'est pas un espace réservé, il jette l'erreur correspondante.

+0

Cela ne semble pas fonctionner. La requête devient: "Quel âge avez-vous,% s?" et quand je réponds, je vois la même erreur. –

+0

avez-vous essayé 'age = raw_input (" Quel âge avez-vous,% s? "% Name)'? – JkShaw

+0

Parfait, ça a marché. Merci! –