Reputation: 163
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
Upvotes: 16
Views: 67166
Reputation: 109
Well, please check following code which was asked someone else again.
event_type_id = 26420387
### this is original post, need to add variable to 'eventTypeIds'
##events_req_format = '{' \
## '"jsonrpc": "2.0", ' \
## '"method": "SportsAPING/v1.0/listEvents", ' \
## '"params": {"filter": {"eventTypeIds": ["26420387"]},' \
## '"marketStartTime": {"from": "2022-03-12T00:00:00Z","to": "2022-03-13T23:59:00Z"}}},' \
## '"id": 1' \
## '}'
# added formatted string with variable event_type_id, used prefix f
events_req_format = '{' \
'"jsonrpc": "2.0", ' \
'"method": "SportsAPING/v1.0/listEvents", ' \
'"params": {"filter": {"eventTypeIds": ["'\
f'{event_type_id}'\
'"]},' \
'"marketStartTime": {"from": "2022-03-12T00:00:00Z","to": "2022-03-13T23:59:00Z"}}},' \
'"id": 1' \
'}'
Str quoted with sing or double quotation is a single line string. So '\' is just make a new line for convenience. And the all the strings quoted by single quotation are making a str, events_req_format.
I just changed the string {"eventTypeIds": ["26420387"]},'
As you can see, I added formatted string with prefix f for the variable.
Upvotes: 0
Reputation: 11615
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())
Upvotes: 27
Reputation: 2152
You need to use the +
sign to insert it into the string like this:
quote = "You are " + age + " years old!"
You can read more about other ways of doing this on Python's string documentation.
Upvotes: 0
Reputation: 6589
This is one way to do it:
>>> age = 17
>>> quote = "You are %d years old!" % age
>>> quote
'You are 17 years old!'
>>>
Upvotes: 1