Поиск по сайту:

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


Введение

Python поддерживает конкатенацию строк с помощью оператора +. В большинстве других языков программирования, если мы объединяем строку с целым числом (или любым другим примитивным типом данных), язык заботится о преобразовании их в строку, а затем объединяет ее.

Однако в Python, если вы попытаетесь соединить строку с целым числом с помощью оператора +, вы получите ошибку времени выполнения.

Пример

Давайте рассмотрим пример объединения строки (str) и целого числа (int) с помощью оператора +.

current_year_message = 'Year is '

current_year = 2018

print(current_year_message + current_year)

Желаемый результат — строка: Year is 2018. Однако, когда мы запускаем этот код, мы получаем следующую ошибку времени выполнения:

Traceback (most recent call last):
  File "/Users/sammy/Documents/github/journaldev/Python-3/basic_examples/strings/string_concat_int.py", line 5, in <module>
    print(current_year_message + current_year)
TypeError: can only concatenate str (not "int") to str

Так как же объединить str и int в Python? Существуют различные другие способы выполнения этой операции.

Предпосылки

Для выполнения этого урока вам понадобятся:

  • Знакомство с установкой Python 3. И знакомство с программированием на Python. VS Code для Python.

Это руководство было протестировано с Python 3.9.6.

Использование функции str()

Мы можем передать int в функцию str(), она будет преобразована в str:

print(current_year_message + str(current_year))

Целое число current_year возвращается в виде строки: Year is 2018.

Использование оператора интерполяции %

Мы можем передавать значения в спецификацию преобразования с форматированием строк в стиле printf:

print("%s%s" % (current_year_message, current_year))

Целое число current_year интерполируется в строку: Year is 2018.

Использование функции str.format()

Мы также можем использовать функцию str.format() для конкатенации строки и целого числа.

print("{}{}".format(current_year_message, current_year))

Целое число current_year приводится к строковому типу: Year is 2018.

Использование f-строк

Если вы используете Python 3.6 или более позднюю версию, вы также можете использовать f-строки.

print(f'{current_year_message}{current_year}')

Целое число current_year интерполируется в строку: Year is 2018.

Заключение

Вы можете ознакомиться с полным скриптом Python и другими примерами Python в нашем репозитории GitHub.