web-dev-qa-db-fra.com

Mettre une variable dans une chaîne (guillemet)

Aide je ne peux pas obtenir que cela fonctionne, j'essaye de mettre la variable age dans la chaîne mais cela ne chargera pas la variable correctement.

Voici mon code:

import random
import sys
import os


age = 17
print(age)
quote = "You are" age "years old!"

Donne cette erreur:

File "C:/Users/----/PycharmProjects/hellophyton/hellophyton.py", line 9
        quote = "You are" age "years old!"
                        ^
SyntaxError: invalid syntax

Process finished with exit code 1
6
Tim

Vous devriez utiliser un formateur de chaîne ici, ou une concaténation. Pour la concaténation, vous devrez convertir une int en une string. Vous ne pouvez pas concaténer les ints et les chaînes ensemble. 

Cela déclenchera l'erreur suivante si vous essayez:

TypeError: unsupported operand type(s) for +: 'int' and 'str'

Formatage:

quote = "You are %d years old" % age
quote = "You are {} years old".format(age)

Concaténation (à sens unique)

quote = "You are " + str(age) + " years old" 

Edit : Comme noté par J.F. Sebastian dans le (s) commentaire (s), nous pouvons également procéder comme suit

En Python 3.6:

f"You are {age} years old"

Les versions précédentes de Python:

"You are {age} years old".format(**vars())
8
Pythonista

C'est une façon de le faire:

>>> age = 17
>>> quote = "You are %d years old!" % age
>>> quote
'You are 17 years old!'
>>> 
0
Joe T. Boka

Vous devez utiliser le signe + pour l'insérer dans la chaîne comme ceci:

quote = "You are " + age + " years old!"

Vous pouvez en savoir plus sur les autres moyens de le faire sur La documentation de Python sur les chaînes .

0
gr1zzly be4r