Python: Конкатенация строки и целого числа (Int)

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

К концу чтения этого учебника вы узнаете, как использовать Python для объединения строки и целого числа с помощью нескольких методов. Вы узнаете, как использовать функцию str(), метод .format(), спецификатор формата % и – мой личный фаворит – Python f-strings.

Содержание

Объединение строки и целого числа в Python с помощью +

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

Давайте посмотрим, как это выглядит, когда мы просто пытаемся объединить строку и целое число в Python с помощью оператора +:

# Попытка объединить строку и целое число в Python

word = 'bemind.gitbook.io'
integer = 2020

new_word = word + integer

# Возвращает: TypeError: can only concatenate str (not "int") to str

Ошибка TypeError конкретно сообщает нам, что строку и целое число нельзя объединить. Поэтому сначала нужно преобразовать наше целое число в строку. Мы можем сделать это с помощью функции string(), которая принимает входное значение и преобразует его в строку, если это возможно.

Давайте попробуем запустить нашу программу снова, но на этот раз сначала преобразуем целое число в строку:

# Объединение строки и целого числа в Python с помощью +
word = 'bemind.gitbook.io'
integer = 2020

new_word = word + str(integer)
print(new_word)

# Возвращает: bemind.gitbook.io2020

Мы видим, что, преобразовав целое число в строку с помощью функции string(), мы смогли успешно объединить строку и целое число.

В следующем разделе вы узнаете, как использовать Python f-strings для объединения строки и целого числа.

Объединение строки и целого числа в Python с помощью f-strings

Python f-strings были представлены в версии 3.6 Python и предложили более современный способ интерполяции строк и выражений в строках. F-strings в Python создаются путем добавления буквы f или F перед открывающими кавычками строки. Это позволяет включать выражения или переменные внутри фигурных скобок, которые оцениваются и преобразуются в строки во время выполнения.

Из-за того, что f-strings оценивают выражения в строки, мы можем использовать их для легкого объединения строк и целых чисел. Давайте посмотрим, как это выглядит:

# Объединение строки и целого числа в Python с помощью f-strings
word = 'bemind.gitbook.io'
integer = 2020

new_word = f'{word}{integer}'
print(new_word)

# Возвращает: bemind.gitbook.io2020

Одно из великих преимуществ f-strings в Python – это их читаемость. Они предоставляют нам способ сразу понять, какие переменные объединяются и как они объединяются. Нам не нужно задумываться о том, почему мы преобразуем целое число в строку, мы просто знаем, что это произойдет.

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

Объединение строки и целого числа в Python с помощью format

Метод .format() в Python работает аналогично f-strings, используя фигурные скобки для вставки переменных в строки. Он доступен в версиях, начиная с Python 2.7, поэтому, если вы работаете с более старой версией, это подход, который вы можете использовать.

Подобно Python f-strings, нам не нужно беспокоиться о предварительном преобразовании нашего целого числа в строку для объединения. Мы можем просто передать значение или переменную, содержащую целое число.

Давайте посмотрим, как это выглядит:

# Объединение строки и целого числа в Python с помощью .format
word = 'bemind.gitbook.io'
integer = 2020

new_word = '{}{}'.format(word, integer)
print(new_word)

# Возвращает: bemind.gitbook.io2020

Мы видим, что этот подход возвращает ожидаемый результат. Хотя этот метод работает так же хорошо, как и другие, метод строки .format() может быть немного сложным для чтения. Это связано с тем, что значения, помещенные в заполнители, не видны сразу.

В следующем разделе вы узнаете, как объединить строку и целое число в Python с помощью оператора %.

Объединение строки и целого числа в Python с помощью %

В этом последнем разделе вы узнаете, как использовать оператор % для объединения строки и целого числа в Python. Оператор % представляет собой более старый стиль интерполяции строк в Python. Мы помещаем %s в наши строки в качестве заполнителей для различных значений, аналогично включению фигурных скобок в примере выше.

Давайте посмотрим, как мы можем объединить строку и целое число в Python:

# Объединение строки и целого числа в Python с помощью %
word = 'bemind.gitbook.io'
integer = 2020

new_word = '%s%s' % (word, integer)
print(new_word)

# Возвращает: bemind.gitbook.io2020

Мы видим, что это возвращает тот же ожидаемый результат. Однако этот подход является наименее читаемым из четырех рассмотренных здесь. Он включен сюда скорее для полноты, чем как предлагаемый подход.

Заключение

В этом учебнике вы узнали, как использовать Python для объединения строки и целого числа. Вы узнали, почему это не так интуитивно, как в других языках, а также четыре разных способа достичь этого. Вы узнали, как использовать оператор + с функцией string(), как использовать Python f-strings, а также как использовать метод .format() и оператор % для интерполяции строк.

Чтобы узнать больше о функции строки string() в Python, ознакомьтесь с официальной документацией здесь.

Связанные учебники

Ознакомьтесь с некоторыми из этих связанных учебников:

  • Pandas: Преобразование значений столбцов в строки

  • Python: Удаление специальных символов из строки

  • Python rfind: Найти индекс последней подстроки в строке

  • Python Lowercase String с .lower(), .casefold() и .islower()

Last updated