Строка в питоне сложение

Как работает конкатенация строк в Python 3? Примеры.

Конкатенация строк — самая распространенная операция в программировании на Python. Есть несколько варинатов как сложить две строки.

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

Варианты обьединения строк:

  • + operator
  • метод join()
  • % оператор
  • функция format()
  • f-string (форматированные строковые литералы)

Конкатенация строк с помощью оператора ‘+’

Это самый простой способ. Давайте рассмотрим на примере:

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 "", line 1, in TypeError: can only concatenate str (not "int") to str

Мы можем использовать str() function для представленя объекта в виде строки.

Читайте также:  Php class parameter array

Давайте посмотрим как конкатенировать строку и число или другой объект.

print('Питонист' + str(4)) class Data: def __init__(self, i): self.id = i def __str__(self): return 'Номер[' + str(self.id) + ']' print('Питонист ' + str(Data(10)))

Основная проблема оператора «+» в том, что используя его мы не можем добавить разделитель между строками. Например если мы хотим сконкатенировать строки “Hello” и “World” и поставить между ними пробел, то нам надо писать так «Hello» + » » + «World»

Конкатенация строк используя функцию join().

Мы можем использовать функцию 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()

Можно использовать функцию строк format() для конкатенации и форматирования.

s1 = 'Hello' s2 = 'World' s3 = "<>-<>".format(s1, s2) print('String Concatenation using format() =', s3) s3 = " ".format(in1=s1, in2=s2) print('String Concatenation using format() =', s3)

String Concatenation using format() = Hello-World
String Concatenation using format() = Hello World

Функция format() очень мощная и использовать ее только для сложения строк не самый лучший и быстрый вариант.

Конкатенация с использованием f-строк

Если вы используете Python3.6+ то вы можете использовать f-строки для конкатенации. Это новый способ форматирования строк. Он был представлен в PEP 498 – Literal String Interpolation.

s1 = 'Hello' s2 = 'World' s3 = f' ' print('String Concatenation using f-string =', s3) name = 'Pankaj' age = 34 d = Data(10) print(f' age is and 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

Конкатенация строк в 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
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 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 and I am 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 and my taxes are .")

My salary is 100000 and my taxes are 25000.0.

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

H3: Заключение

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

Источник

Оцените статью