Помещение переменной в строку (цитата)
Помощь Я не могу заставить это работать, я пытаюсь поместить переменную age в строку, но она не будет загружать переменную должным образом.
Вот мой код:
import random
import sys
import os
age = 17
print(age)
quote = "You are" age "years old!"
Выдает эту ошибку:
File "C:/Users/----/PycharmProjects/hellophyton/hellophyton.py", line 9
quote = "You are" age "years old!"
^
SyntaxError: invalid syntax
Process finished with exit code 1
4 ответа
Вы должны использовать форматировщик строки здесь или конкатенацию. Для объединения вы должны будете преобразовать int
к string
, Вы не можете объединить целые и строки вместе.
Это вызовет следующую ошибку, если вы попытаетесь:
TypeError: unsupported operand type(s) for +: 'int' and 'str'
Форматирование:
quote = "You are %d years old" % age
quote = "You are {} years old".format(age)
Конкатенация (в одну сторону)
quote = "You are " + str(age) + " years old"
Редактировать: Как отмечено JF Sebastian в комментариях, мы также можем сделать следующее
В Python 3.6:
f"You are {age} years old"
Более ранние версии Python:
"You are {age} years old".format(**vars())
Это один из способов сделать это:
>>> age = 17
>>> quote = "You are %d years old!" % age
>>> quote
'You are 17 years old!'
>>>
Вам нужно использовать +
знак, чтобы вставить его в строку, как это:
quote = "You are " + age + " years old!"
Вы можете прочитать больше о других способах сделать это на строковой документации Python.
Что ж, пожалуйста, проверьте следующий код, который был задан кем-то еще.
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 в sing или двойных кавычках представляет собой строку, состоящую из одной строки. Так что '\' просто создайте новую строку для удобства. И все строки, заключенные в одинарные кавычки, составляют строку str, events_req_format.
Я просто изменил строку {"eventTypeIds": ["26420387"]},
как видите, я добавил форматированную строку с префиксом f для переменной.