Search code examples
pythonvariablesquotes

Putting a variable into a string (quote)


Help I can't get this to work, I am trying to put the variable age into the string but it won't load the variable properly.

Here is my code:

import random
import sys
import os


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

Gives this error:

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

Process finished with exit code 1

Solution

  • You should use a string formatter here, or concatenation. For concatenation you'll have to convert an int to a string. You can't concatenate ints and strings together.

    This will raise the following error should you try:

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

    Formatting:

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

    Concatenation (one way)

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

    Edit: As noted by J.F. Sebastian in the comment(s) we can also do the following

    In Python 3.6:

    f"You are {age} years old"
    

    Earlier versions of Python:

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