Python поддерживает конкатенацию строк с помощью оператора +
. В большинстве других языков программирования, если соединить строку и число (или значение другого типа), язык сам преобразует не-строковое значение в строку, а затем объединяет.
Однако в Python, если вы попытаетесь объединить str
и int
с помощью оператора +
, вы получите ошибку. Рассмотрим пример:
current_year_message = 'Year is ' current_year = 2023 print(current_year_message + current_year)
Желаемый результат – строка Year is 2023
. Однако при выполнении этого кода мы получаем следующую ошибку:
Traceback (most recent call last): File "/Users/sammy/Documents/github/journaldev/Python-3/basic_examples/strings/string_concat_int.py", line 5, inprint(current_year_message + current_year) TypeError: can only concatenate str (not "int") to str
Как же конкатенировать строку и число в Python? Есть несколько способов.
Примечание редакции. О 7 способах объединения строк читайте в статье “Конкатенация строк в Python”.
Использование функции str()
Можно сперва преобразовать число в строку, передав его в функцию str():
current_year_message = 'Year is ' current_year = 2023 print(current_year_message + str(current_year)) # Результат: # Year is 2023
Целое число current_year
преобразуется в строку и возвращается в составе итоговой строки.
Использование оператора интерполяции %
Чтобы соединить строку и число, можно воспользоваться форматированием строк в стиле printf:
current_year_message = 'Year is ' current_year = 2023 print("%s%s" % (current_year_message, current_year)) # Результат: # Year is 2023
Целое число current_year
интерполируется в строку.
Использование функции str.format()
Мы также можем использовать функцию str.format()
для конкатенации строки и целого числа.
current_year_message = 'Year is ' current_year = 2023 print("{}{}".format(current_year_message, current_year)) # Результат: # Year is 2023
Целое число current_year
приводится к строковому типу.
Использование f-строки
Если вы используете Python 3.6 или более поздние версии, вы также можете использовать f-строки.
current_year_message = 'Year is ' current_year = 2023 print(f'{current_year_message}{current_year}') # Результат: # Year is 2023
Целое число current_year
интерполируется в строку.
Заключение
Итак, мы разобрали, как соединить строку и число в Python. В целом все методы сводятся к тому, что число перед конкатенацией преобразуется в строку, а затем объединяются строки. При этом можно воспользоваться функцией str()
либо одним из вариантов форматирования строк.
Перевод статьи Pankaj “How To Concatenate String and Int in Python”.
Пингбэк: Как преобразовать целое число в строку - pythonturbo