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
f-stringsPython 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Метод .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()
Последнее обновление