Top.Mail.Ru
Публичное облако на базе VMware с управлением через vCloud Director
Вход / Регистрация

Конкатенация строк Python

Роман Андреев
Роман Андреев
Технический писатель
07 июня 2023 г.
25613
4 минуты чтения
Средний рейтинг статьи: 4

Конкатенация строк в Python — это операция соединения двух или более строк в одну. В результате конкатенации создается новая строка, которая содержит все символы из исходных, расположенные в нужном порядке. Пример: если у нас есть две строки Hello и world!, то конкатенация этих строк даст новую строку Hello world! В Python, как и во многих других языках программирования, для конкатенации строк используются разные способы. Рассмотрим их все.

Оператор +

Возьмем классический пример:

  
string1 = "Hello" string2 = "world!" string3 = string1 + ", " + string2 print(string3) Hello, world!

Здесь мы присвоили строке string1 значение Hello, а строке string2 значение world!, а затем сложили их, добавив запятую с пробелом в середине, и вывели на экран новую строку.

Приведем еще пару примеров конкатенации с помощью оператора +. Вот конкатенация трех строк:

  
string1 = "I" string2 = "love" string3 = "Python" result = string1 + " " + string2 + " " + string3 print(result) I love Python

Как видим, никаких отличий. И такой пример:

  
first_name = "Monty" last_name = "Python" result = "My name is " + first_name + " " + last_name print(result) My name is Monty Python

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

Метод join()

В примерах выше мы использовали оператор + для соединения двух или более строк. Но также конкатенация строк в Python 3 может быть выполнена и при помощи метода join(). Вот наш первый пример, записанный таким способом:

  
strings = ["Hello", "world!"] string3 = ", ".join(strings) print(string3)

И в выводе мы увидим всё тот же Hello, world!.

А вот и два других примера, переписанные с использованием метода join():

  
strings = ["I", "love", "Python"] result = " ".join(strings) print(result) I love Python
  
first_name = "Monty" last_name = "Python" strings = ["My name is", first_name, last_name] result = " ".join(strings) print(result) My name is Monty Python

Обратите внимание, что в обоих примерах мы создали список строк и затем использовали метод join() для их соединения в одну строку. В первом примере мы только добавили пробел для разделения слов, а во втором еще и задействовали переменные в списке.

Облачные серверы

Масштабируемые вычислительные ресурсы
по всему миру с почасовой оплатой

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

Если мы просто попытаемся соединить строку и число, то получим ошибку:

  
age = 28 message = "I am " + age + " years old." print(message) Traceback (most recent call last):   File "C:/Python/Python38/concat1.py", line 2, in <module>     message = "I am " + age + " years old." TypeError: can only concatenate str (not "int") to str

Так бывает, если используется неправильный синтаксис. В данном случае код вызовет ошибку TypeError, потому что мы пытаемся соединить строку с числом без преобразования числа также в строку.

Конкатенация строки и числа через str()

Чтобы исправить эту ошибку, мы можем использовать функцию str() для преобразования числа в строку. Вот пример правильной конкатенации строки и числа:

  
age = 28 message = "I am " + str(age) + " years old." print(message) I am 28 years old.

Мы преобразовали число, заключенное в переменную age, в строку с помощью функции str(), и интерпретатор выдал нам нужный результат.

Конкатенация строки и числа через format()

То же самое можно сделать, и используя метод format():

  
age = 28 message = "I am {} years old.".format(age) print(message) I am 28 years old.

Этот метод работает так же, как и функция str(), различается лишь синтаксис.

Конкатенация строки и числа через f-строки

И еще один способ вывести такой же результат: задействовать новинку версии 3 — f-строки:

  
age = 28 message = f"I am {age} years old." print(message) I am 28 years old.

f-строки (formatted string literals) в Python действуют так же, как и метод str.format(), но предоставляют более удобный и лаконичный способ переноса значений в строку. С помощью f-строк мы можем вставлять значения переменных прямо внутрь строки, используя фигурные скобки {} и указывая имя переменной внутри этих скобок. Вот еще несколько примеров конкатенации строк и чисел с использованием f-строк:

  
name = "Monty" age = 35 print(f"My name is {name} and I am {age} years old.") My name is Monty and I am 35 years old.
  
salary = 100000 tax_rate = 0.25 taxes = salary * tax_rate print(f"My salary is {salary} and my taxes are {taxes}.") My salary is 100000 and my taxes are 25000.0.

Как видите, мы можем вставлять значения переменных внутрь строки, используя фигурные скобки, и Python автоматически подставляет значения переменных в эти места при выполнении программы. Обратите внимание, что f-строки поддерживают также различные форматы вывода, которые можно указать внутри фигурных скобок. Например, можно указать количество знаков после запятой для чисел с плавающей запятой (или точкой). Это делает f-строки ещё более мощными средствами форматирования.

Выгодные тарифы на облачные серверы

  • Premium 3.3 ГГц
  • High CPU 5.5 ГГц
  • Dedicated CPU
Москва
Cloud MSK 15

300 ₽/мес

Процессор
1 x 3.3 ГГц
Память
1 ГБ
NVMe
15 ГБ
Канал
1 Гбит/с
Публичный IP
Cloud MSK 30

550 ₽/мес

Процессор
1 x 3.3 ГГц
Память
2 ГБ
NVMe
30 ГБ
Канал
1 Гбит/с
Публичный IP

Заключение

На примере конкатенации мы в очередной раз убедились, насколько гибким является Python, ведь соединять строки здесь можно разными методами. И даже соединение строки с числом путем преобразования числового значения в строчное можно выполнить как минимум тремя способами: просто выберите понравившийся.

Хотите внести свой вклад?
Участвуйте в нашей контент-программе за
вознаграждение или запросите нужную вам инструкцию
img-server
07 июня 2023 г.
25613
4 минуты чтения
Средний рейтинг статьи: 4
  • Ваш комментарий
  • Предпросмотр
Пока нет комментариев
Произошла неизвестная ошибка
Мы используем на сайте куки.
В интернете без них никак