0 yq1krasi6mpv0k5j scaled
Конкатенация строк — самая распространенная операция в программировании на Python. Есть несколько варинатов как сложить две строки.
Варианты обьединения строк:
Это самый простой способ. Давайте рассмотрим на примере:
s1 = 'Apple' s2 = 'Pie' s3 = 'Sauce' s4 = s1 + s2 + s3 print(s4)
Результат: «Pythonist.ru нужен Питонисту»
Давайте рассмотрим другой пример, где мы получаем 2 строки от пользователя и потом конкатенируем их.
s1 = input('Введите первую строку :\n')
Введите первую строку :
pythonist.ru
s2 = input('Введите вторую строку:\n')
Введите вторую строку:
сайт для программистов
print('Конкатенированная строка =', s1 + s2) >>> s1 = input('Введите первую строку :\n')
Введите первую строку :
pythonist.ru
>>> s2 = input('Введите вторую строку:\n')
Введите вторую строку:
сайт для программистов
>>> print('Конкатенированная строка =', s1 + s2)
Результат: Конкатенированная строка = pythonist.ru сайт для программистов
Очень удобный способ использование оператора «+». Единственный момент, который надо учитывать это то, что обе вводные должны быть строками.
>>>'Hello' + 4 Traceback (most recent call last): File "<input>", line 1, in TypeError: can only concatenate str (not "int") to str
Мы можем использовать str() function для представленя объекта в виде строки.
Давайте посмотрим как конкатенировать строку и число или другой объект.
print('Питонист' + str(4))
class Data:
id = 0
def __init__(self, i):
self.id = i
def __str__(self):
return 'Номер[' + str(self.id) + ']'
print('Питонист ' + str(Data(10))) Результат:
>>> Питонист
>>> Питонист Номер[10]
Основная проблема оператора «+» в том, что используя его мы не можем добавить разделитель между строками. Например если мы хотим сконкатенировать строки “Hello” и “World” и поставить между ними пробел, то нам надо писать так «Hello» + » » + «World»
Мы можем использовать функцию join() для конкатенации строк и одновременного добавления разделителя между ними. Это полезная функция, когда мы имеем последовательность строк, например List или tuple строк.
Если вам не нужен разделитель, то можно использовать 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() для конкатенации и форматирования.
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
Функция format() очень мощная и использовать ее только для сложения строк не самый лучший и быстрый вариант.
Если вы используете Python3.6+ то вы можете использовать f-строки для конкатенации. Это новый способ форматирования строк. Он был представлен в PEP 498 – Literal String Interpolation.
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-строки более чистый и легкий способ по сравнению с format()
Форматирование строк в Python может быть сделано разными способами. Используйте один из них, в зависимости, что вам нужно сделать со строками. Если надо сконкатенировать и добавить разделитель, тогда используйте Join(). Если надо еще и отформатировать, тогда format() или f-строки. Учитывайте что f-строки можно использовать с версии Python3.6 или выше.
Если вы ищете работу на Python, на Talanto.work сейчас есть варианты для junior, middle, senior…
Рынок Python-вакансий большой, но удобным его назвать сложно. Формально вакансий много, однако в реальном поиске…
Срезы в Python — это больше, чем a[2:7]. В статье — быстрый разбор полезных приёмов:…
В этой статье мы рассмотрим возведение в степень в Python с помощью различных методов, от…
Дубликаты в списке Python — частая проблема. В статье показано, как быстро убрать повторы, в…
Услуга виртуального хостинга на SpaceWeb позволяет арендовать часть сервера (shared-сервера) и разместить на нём свой…