Конкатенация строк Python
Конкатенация строк — очень распространенная операция в программировании. Конкатенация строк Python может быть выполнена различными способами. Это руководство предназначено для изучения различных способов объединения строк в программе на Python.
Конкатенация строк Python
Мы можем выполнить конкатенацию строк, используя следующие способы:
- Использование оператора +
- Использование метода join()
- Использование оператора %
- Использование функции format()
- Использование f-строки (буквальная интерполяция строк)
Объединение строк с помощью оператора +
Это самый простой способ конкатенации строк. Давайте рассмотрим простой пример.
s1 = 'Apple'
s2 = 'Pie'
s3 = 'Sauce'
s4 = s1 + s2 + s3
print(s4)
Вывод: ApplePieSauce
Давайте рассмотрим другой пример, где мы получим две строки из пользовательского ввода и соединим их.
s1 = input('Please enter the first string:\n')
s2 = input('Please enter the second string:\n')
print('Concatenated String =', s1 + s2)
Выход:
Please enter the first string:
Hello
Please enter the second string:
World
Concatenated String = HelloWorld
>>>'Hello' + 4
Traceback (most recent call last):
File "<input>", line 1, in
TypeError: can only concatenate str (not "int") to str
Мы можем использовать функцию str() для получения строкового представления объекта. Давайте посмотрим, как соединить строку с целым числом или другим объектом.
print('Hello' + str(4))
class Data:
id = 0
def __init__(self, i):
self.id = i
def __str__(self):
return 'Data[' + str(self.id) + ']'
print('Hello ' + str(Data(10)))
Выход:
Hello4
Hello Data[10]
Самая большая проблема с оператором + заключается в том, что мы не можем добавить какой-либо разделитель или разделитель между строками. Например, если нам нужно соединить \Hello и \World с разделителем-пробелом, нам придется написать это как Hello + + World
.
Конкатенация строк с помощью функции join()
Мы можем использовать кортеж строк. Если вам не нужен разделитель, используйте функцию join() с пустой строкой.
s1 = 'Hello'
s2 = 'World'
print('Concatenated String using join() =', "".join([s1, s2]))
print('Concatenated String using join() and whitespaces =', " ".join([s1, s2]))
Выход:
Concatenated String using join() = HelloWorld
Concatenated String using join() and spaces = Hello World
Конкатенация строк с использованием оператора %
Мы можем использовать оператор % для форматирования строк, его также можно использовать для конкатенации строк. Это полезно, когда мы хотим объединить строки и выполнить простое форматирование.
s1 = 'Hello'
s2 = 'World'
s3 = "%s %s" % (s1, s2)
print('String Concatenation using % Operator =', s3)
s3 = "%s %s from JournalDev - %d" % (s1, s2, 2018)
print('String Concatenation using % Operator with Formatting =', s3)
Выход:
String Concatenation using % Operator = Hello World
String Concatenation using % Operator with Formatting = Hello World from JournalDev - 2018
Конкатенация строк с использованием функции format()
Мы также можем использовать функцию string format() для конкатенации и форматирования строк.
s1 = 'Hello'
s2 = 'World'
s3 = "{}-{}".format(s1, s2)
print('String Concatenation using format() =', s3)
s3 = "{in1} {in2}".format(in1=s1, in2=s2)
print('String Concatenation using format() =', s3)
Выход:
String Concatenation using format() = Hello-World
String Concatenation using format() = Hello World
Функция Python String format() очень мощная, использование ее только для объединения строк не является ее правильным использованием.
Конкатенация строк с использованием f-строки
Если вы используете Python 3.6+, вы также можете использовать f-string для конкатенации строк. Это новый способ форматирования строк, представленный в PEP 498 — Литеральная интерполяция строк.
s1 = 'Hello'
s2 = 'World'
s3 = f'{s1} {s2}'
print('String Concatenation using f-string =', s3)
name = 'Pankaj'
age = 34
d = Data(10)
print(f'{name} age is {age} and d={d}')
Выход:
String Concatenation using f-string = Hello World
Pankaj age is 34 and d=Data[10]
Python f-string чище и проще в написании по сравнению с функцией format(). Он также вызывает функцию str(), когда аргумент объекта используется в качестве замены поля.
Заключение
Форматирование Python String можно выполнить несколькими способами. Используйте их в зависимости от ваших требований. Если вам нужно объединить последовательность строк с разделителями, используйте функцию join(). Если при конкатенации также требуется некоторое форматирование, используйте функцию format() или f-строку. Обратите внимание, что f-string можно использовать с версиями Python 3.6 и выше.
Вы можете проверить полный скрипт Python и другие примеры Python в нашем репозитории GitHub.