Конкатенация строк в 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
Обратите внимание на то, что в обоих примерах мы добавили пробелы между словами, чтобы получить правильный вывод с точки зрения печати. Так рекомендуется делать и в других случаях.
В примерах выше мы использовали оператор +
для соединения двух или более строк. Но также конкатенация строк в 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()
для их соединения в одну строку. В первом примере мы только добавили пробел для разделения слов, а во втором еще и задействовали переменные в списке.
клауд
Если мы просто попытаемся соединить строку и число, то получим ошибку:
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()
для преобразования числа в строку. Вот пример правильной конкатенации строки и числа:
age = 28
message = "I am " + str(age) + " years old."
print(message)
I am 28 years old.
Мы преобразовали число, заключенное в переменную age
, в строку с помощью функции str()
, и интерпретатор выдал нам нужный результат.
То же самое можно сделать, и используя метод format()
:
age = 28
message = "I am {} years old.".format(age)
print(message)
I am 28 years old.
Этот метод работает так же, как и функция str()
, различается лишь синтаксис.
И еще один способ вывести такой же результат: задействовать новинку версии 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-строки
ещё более мощными средствами форматирования.
Выгодные тарифы на облачные серверы
На примере конкатенации мы в очередной раз убедились, насколько гибким является Python, ведь соединять строки здесь можно разными методами. И даже соединение строки с числом путем преобразования числового значения в строчное можно выполнить как минимум тремя способами: просто выберите понравившийся.