Как соединить строку и число в Python

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, in 
    print(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”.

1 комментарий к “Как соединить строку и число в Python”

  1. Пингбэк: Как преобразовать целое число в строку - pythonturbo

Комментарии закрыты.