Python конкатенация: Как работает конкатенация строк в Python 3? Примеры.
Как работает конкатенация строк в 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 "<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().
Мы можем использовать функцию 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 = "{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() очень мощная и использовать ее только для сложения строк не самый лучший и быстрый вариант.
Конкатенация с использованием f-строк
Если вы используете 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 или выше.
Метод str.join() в Python, объединяет список строк.
Создает строку из списка строк.
Синтаксис:
Параметры:
Возвращаемое значение:
Описание:
Метод str.join()
возвращает строку, которая является конкатенацией (объединением) всех элементов строк итерируемого объекта iterable
.
В итоговой строке элементы объединяются между собой при помощи строки-разделителя str
.
Если в последовательности iterable
есть какие-либо НЕ строковые значения, включая байтовые строки bytes
, то поднимается исключение TypeError
.
Примеры создания строки из списка строк.
>>> x = ['возвращает', 'строку', 'которая', 'является', 'конкатенацией'] # объединение списка строк с разделителем "пробел" >>> line = ' '.join(x) >>> line # 'возвращает строку которая является конкатенацией' # в качестве разделителя символ новой строки '\n' >>> line = '\n'.join(x) >>> line # 'возвращает\nстроку\nкоторая\nявляется\nконкатенацией' >>> print(line) # возвращает # строку # которая # является # конкатенацией
Очень часто метод str.join()
используется для формирования какого то итогового сообщения, в зависимости от условий в программе. В начале кода определяется пустой список, а по ходу программы, в результате проверок, добавляются части выходного сообщения (например при проверке корректности заполнения полей формы).
В примере будем использовать словарь из двух списков — error
(для ошибок) и message
(для итогового сообщения):
# здесь поступают какие то данные, пускай # num - должно быть целым числом # name - имя, которое должно быть не менее 3-х букв content = {'message': [], 'error': []} # далее идет код проверок например: if num: if type(num) is int: content['message']. append(f' - Введено число {num}') else: content['error'].append(f' - {num} - это не целое число') else: content['error'].append(' - Вы не ввели число') if name: if len(name) > 3: content['message'].append(f' - Введено имя: {name}') else: content['error'].append(' - Имя не должно быть короче 3-х букв') else: content['error'].append(' - Вы не ввели имя') # в конце кода итоговые проверки и вывод сообщения if content['error']: # если есть какие-то ошибки content['error'].insert(0, 'При вводе данных возникли ошибки:\n') result_message = '\n'.join(content['error']) else: # если все хорошо. content['message'].insert(0, 'Результаты ввода данных:\n') result_message = '\n'.join(content['message']) print(result_message)
Как добавить/соединить существующую строку со списком строк.
Очень просто. Необходимо существующую строку добавить в начало списка методом изменяющихся последовательностей sequence. insert(i, x)
, а затем применить метод str.join()
.
# начальная строка >>> line = 'Состав корзины покупателя:' # список строк, которые нужно добавить >>> lst_line = ['- картошка', '- морковь', '- лук', '- чеснок', '- свекла'] # вставляем начальную строку по индексу 0 в список >>> lst_line.insert(0, line) # объединяем список строк по разделителю '\n' >>> rez = '\n'.join(lst_line) >>> print(rez) # Состав корзины покупателя: # - картошка # - морковь # - лук # - чеснок # - свекла
Конечно данную операцию можно осуществить другим способом, при помощи оператора присваивания на месте +=
. Но такой код будет работать значительно дольше и потреблять больше памяти, особенно это заметно, когда строк очень много.
Это происходит потому, что строка str
— это неизменяемый тип и при конкатации (сложении строк) КАЖДЫЙ РАЗ образуется НОВАЯ строка, на что тратятся ресурсы системы:
>>> line = 'Состав корзины покупателя:' # список строк, которые нужно добавить >>> lst_line = ['- картошка', '- морковь', '- лук', '- чеснок', '- свекла'] >>> for add_line in lst_line: . .. line += f'\n{add_line}' ... print(line) # Состав корзины покупателя: # - картошка # - морковь # - лук # - чеснок # - свекла
Python Pandas — Конкатенация — CoderLessons.com
Pandas предоставляет различные средства для простого объединения объектов Series, DataFrame и Panel .
pd.concat(objs,axis=0,join='outer',join_axes=None, ignore_index=False)
objs — это последовательность или отображение объектов Series, DataFrame или Panel.
ось — {0, 1, …}, по умолчанию 0. Это ось для объединения.
join — {‘inner’, ‘external’}, по умолчанию ‘external’. Как обрабатывать индексы на других осях. Наружный для объединения и внутренний для пересечения.
ignore_index — логическое значение, по умолчанию False. Если True, не используйте значения индекса на оси конкатенации. Результирующая ось будет помечена 0, …, n — 1.
join_axes — это список объектов Index. Специальные индексы для использования для других (n-1) осей вместо выполнения внутренней / внешней логики набора.
objs — это последовательность или отображение объектов Series, DataFrame или Panel.
ось — {0, 1, …}, по умолчанию 0. Это ось для объединения.
join — {‘inner’, ‘external’}, по умолчанию ‘external’. Как обрабатывать индексы на других осях. Наружный для объединения и внутренний для пересечения.
ignore_index — логическое значение, по умолчанию False. Если True, не используйте значения индекса на оси конкатенации. Результирующая ось будет помечена 0, …, n — 1.
join_axes — это список объектов Index. Специальные индексы для использования для других (n-1) осей вместо выполнения внутренней / внешней логики набора.
Объединение объектов
Функция concat выполняет всю тяжелую работу по выполнению операций конкатенации вдоль оси. Давайте создавать разные объекты и делать конкатенацию.
Live Demo
import pandas as pd one = pd.DataFrame({ 'Name': ['Alex', 'Amy', 'Allen', 'Alice', 'Ayoung'], 'subject_id':['sub1','sub2','sub4','sub6','sub5'], 'Marks_scored':[98,90,87,69,78]}, index=[1,2,3,4,5]) two = pd.DataFrame({ 'Name': ['Billy', 'Brian', 'Bran', 'Bryce', 'Betty'], 'subject_id':['sub2','sub4','sub3','sub6','sub5'], 'Marks_scored':[89,80,79,97,88]}, index=[1,2,3,4,5]) print pd.concat([one,two])
Его вывод выглядит следующим образом —
Marks_scored Name subject_id 1 98 Alex sub1 2 90 Amy sub2 3 87 Allen sub4 4 69 Alice sub6 5 78 Ayoung sub5 1 89 Billy sub2 2 80 Brian sub4 3 79 Bran sub3 4 97 Bryce sub6 5 88 Betty sub5
Предположим, что мы хотим связать определенные ключи с каждым из фрагментов разделенного DataFrame. Мы можем сделать это, используя аргумент keys —
Live Demo
import pandas as pd one = pd.DataFrame({ 'Name': ['Alex', 'Amy', 'Allen', 'Alice', 'Ayoung'], 'subject_id':['sub1','sub2','sub4','sub6','sub5'], 'Marks_scored':[98,90,87,69,78]}, index=[1,2,3,4,5]) two = pd.DataFrame({ 'Name': ['Billy', 'Brian', 'Bran', 'Bryce', 'Betty'], 'subject_id':['sub2','sub4','sub3','sub6','sub5'], 'Marks_scored':[89,80,79,97,88]}, index=[1,2,3,4,5]) print pd.concat([one,two],keys=['x','y'])
Его вывод выглядит следующим образом —
x 1 98 Alex sub1 2 90 Amy sub2 3 87 Allen sub4 4 69 Alice sub6 5 78 Ayoung sub5 y 1 89 Billy sub2 2 80 Brian sub4 3 79 Bran sub3 4 97 Bryce sub6 5 88 Betty sub5
Индекс результирующего дублируется; каждый индекс повторяется.
Если результирующий объект должен следовать своей собственной индексации, установите для ignore_index значение True .
Live Demo
import pandas as pd one = pd.DataFrame({ 'Name': ['Alex', 'Amy', 'Allen', 'Alice', 'Ayoung'], 'subject_id':['sub1','sub2','sub4','sub6','sub5'], 'Marks_scored':[98,90,87,69,78]}, index=[1,2,3,4,5]) two = pd.DataFrame({ 'Name': ['Billy', 'Brian', 'Bran', 'Bryce', 'Betty'], 'subject_id':['sub2','sub4','sub3','sub6','sub5'], 'Marks_scored':[89,80,79,97,88]}, index=[1,2,3,4,5]) print pd.concat([one,two],keys=['x','y'],ignore_index=True)
Его вывод выглядит следующим образом —
Marks_scored Name subject_id 0 98 Alex sub1 1 90 Amy sub2 2 87 Allen sub4 3 69 Alice sub6 4 78 Ayoung sub5 5 89 Billy sub2 6 80 Brian sub4 7 79 Bran sub3 8 97 Bryce sub6 9 88 Betty sub5
Обратите внимание, что индекс изменяется полностью, а ключи также переопределяются.
Если вдоль оси = 1 необходимо добавить два объекта, то будут добавлены новые столбцы.
Live Demo
import pandas as pd one = pd.DataFrame({ 'Name': ['Alex', 'Amy', 'Allen', 'Alice', 'Ayoung'], 'subject_id':['sub1','sub2','sub4','sub6','sub5'], 'Marks_scored':[98,90,87,69,78]}, index=[1,2,3,4,5]) two = pd.DataFrame({ 'Name': ['Billy', 'Brian', 'Bran', 'Bryce', 'Betty'], 'subject_id':['sub2','sub4','sub3','sub6','sub5'], 'Marks_scored':[89,80,79,97,88]}, index=[1,2,3,4,5]) print pd.concat([one,two],axis=1)
Его вывод выглядит следующим образом —
Marks_scored Name subject_id Marks_scored Name subject_id 1 98 Alex sub1 89 Billy sub2 2 90 Amy sub2 80 Brian sub4 3 87 Allen sub4 79 Bran sub3 4 69 Alice sub6 97 Bryce sub6 5 78 Ayoung sub5 88 Betty sub5
Конкатенация с использованием append
Полезный ярлык для конкатата — это методы добавления экземпляров в Series и DataFrame. Эти методы на самом деле предшествовали concat. Они соединяются по оси = 0 , а именно по индексу —
Live Demo
import pandas as pd one = pd.DataFrame({ 'Name': ['Alex', 'Amy', 'Allen', 'Alice', 'Ayoung'], 'subject_id':['sub1','sub2','sub4','sub6','sub5'], 'Marks_scored':[98,90,87,69,78]}, index=[1,2,3,4,5]) two = pd.DataFrame({ 'Name': ['Billy', 'Brian', 'Bran', 'Bryce', 'Betty'], 'subject_id':['sub2','sub4','sub3','sub6','sub5'], 'Marks_scored':[89,80,79,97,88]}, index=[1,2,3,4,5]) print one.append(two)
Его вывод выглядит следующим образом —
Marks_scored Name subject_id 1 98 Alex sub1 2 90 Amy sub2 3 87 Allen sub4 4 69 Alice sub6 5 78 Ayoung sub5 1 89 Billy sub2 2 80 Brian sub4 3 79 Bran sub3 4 97 Bryce sub6 5 88 Betty sub5
Функция добавления также может принимать несколько объектов:
Live Demo
import pandas as pd one = pd. DataFrame({ 'Name': ['Alex', 'Amy', 'Allen', 'Alice', 'Ayoung'], 'subject_id':['sub1','sub2','sub4','sub6','sub5'], 'Marks_scored':[98,90,87,69,78]}, index=[1,2,3,4,5]) two = pd.DataFrame({ 'Name': ['Billy', 'Brian', 'Bran', 'Bryce', 'Betty'], 'subject_id':['sub2','sub4','sub3','sub6','sub5'], 'Marks_scored':[89,80,79,97,88]}, index=[1,2,3,4,5]) print one.append([two,one,two])
Его вывод выглядит следующим образом —
Marks_scored Name subject_id 1 98 Alex sub1 2 90 Amy sub2 3 87 Allen sub4 4 69 Alice sub6 5 78 Ayoung sub5 1 89 Billy sub2 2 80 Brian sub4 3 79 Bran sub3 4 97 Bryce sub6 5 88 Betty sub5 1 98 Alex sub1 2 90 Amy sub2 3 87 Allen sub4 4 69 Alice sub6 5 78 Ayoung sub5 1 89 Billy sub2 2 80 Brian sub4 3 79 Bran sub3 4 97 Bryce sub6 5 88 Betty sub5
Временные ряды
Панды предоставляют надежный инструмент для работы с данными временных рядов, особенно в финансовом секторе. Работая с данными временных рядов, мы часто сталкиваемся со следующим:
- Генерация последовательности времени
- Преобразовать временные ряды на разные частоты
Pandas предоставляет относительно компактный и автономный набор инструментов для выполнения вышеуказанных задач.
Получить текущее время
datetime.now () показывает текущую дату и время.
Live Demo
import pandas as pd print pd.datetime.now()
Его вывод выглядит следующим образом —
2017-05-11 06:10:13.393147
Создать метку времени
Данные с метками времени — это самый базовый тип данных временных рядов, который связывает значения с точками во времени. Для объектов панд это означает использование точек во времени. Давайте возьмем пример —
Live Demo
import pandas as pd print pd.Timestamp('2017-03-01')
Его вывод выглядит следующим образом —
2017-03-01 00:00:00
Также возможно преобразовать целое или плавающее время эпохи. Единицей по умолчанию для них является наносекунда (поскольку именно так хранятся метки времени). Однако часто эпохи хранятся в другом блоке, который можно указать. Давайте возьмем другой пример
Live Demo
import pandas as pd print pd.Timestamp(1587687255,unit='s')
Его вывод выглядит следующим образом —
2020-04-24 00:14:15
Создать диапазон времени
Live Demo
import pandas as pd print pd.date_range("11:00", "13:30", freq="30min").time
Его вывод выглядит следующим образом —
[datetime.time(11, 0) datetime.time(11, 30) datetime.time(12, 0) datetime.time(12, 30) datetime.time(13, 0) datetime.time(13, 30)]
Изменить частоту времени
Live Demo
import pandas as pd print pd.date_range("11:00", "13:30", freq="H").time
Его вывод выглядит следующим образом —
[datetime.time(11, 0) datetime.time(12, 0) datetime.time(13, 0)]
Преобразование в метки времени
Чтобы преобразовать объект Series или подобный списку объект типа даты, например строки, эпохи или смесь, вы можете использовать функцию to_datetime . При прохождении это возвращает Series (с тем же индексом), в то время как подобный списку конвертируется в DatetimeIndex . Взгляните на следующий пример —
Live Demo
import pandas as pd print pd.to_datetime(pd.Series(['Jul 31, 2009','2010-01-10', None]))
Его вывод выглядит следующим образом —
0 2009-07-31 1 2010-01-10 2 NaT dtype: datetime64[ns]
NaT означает не время (эквивалентно NaN)
Давайте возьмем другой пример.
Live Demo
import pandas as pd print pd.to_datetime(['2005/11/23', '2010.12.31', None])
Его вывод выглядит следующим образом —
Конкатенация строки и целого числа в python
Вопрос:
В python говорится, что у вас есть
s = "string"
i = 0
print s+i
даст вам ошибку
поэтому вы пишете
print s+str(i)
чтобы не получить ошибку.
Я думаю, что это довольно неуклюжий способ обработки int и конкатенации строк.
Даже Java не нуждается в явном литье в String для этого типа
конкатенации.
Есть ли лучший способ сделать такую конкатенацию без явного каста в Python?
Лучший ответ:
Современное форматирование строк:
"{} and {}".format("string", 1)
Ответ №1
Нет форматирования строк:
>> print 'Foo',0
Foo 0
Ответ №2
Форматирование строк, используя метод .format()
нового стиля (с настройками по умолчанию . format()):
'{}{}'.format(s, i)
Или более старый, но «все еще придерживающийся», %
-formatting:
'%s%d' %(s, i)
В обоих вышеприведенных примерах нет места между двумя конкатенированными элементами. Если пространство необходимо, его можно просто добавить в строки формата.
Они обеспечивают большой контроль и гибкость в отношении того, как конкатенировать элементы, пространство между ними и т. д. Подробнее о формате см. это.
Ответ №3
Python — интересный язык в том смысле, что, хотя обычно существует один (или два) «очевидных» способа выполнения любой заданной задачи, гибкость все еще существует.
s = "string"
i = 0
print (s + repr(i))
Вышеприведенный фрагмент кода написан в синтаксисе Python3, но круглые скобки после печати всегда разрешены (необязательно) до тех пор, пока версия 3 не сделает их обязательными.
Надеюсь, что это поможет.
Кейтлин
Ответ №4
Метод format() может использоваться для объединения строк и целых чисел
print(s+"{}".format(i))
Разница между использованием запятых, конкатенаций и строковых форматеров в Python
чтобы ответить на общий вопрос, сначала вы должны использовать печать в целом для вывода информации в ваших сценариях на экран при написании кода, чтобы убедиться, что вы получаете то, что ожидаете.
поскольку ваш код становится более сложным, вы можете обнаружить, что ведение журнала было бы лучше, чем печать, но это информация для другого ответа.
существует большая разница между печатью и представлениями возвращаемых значений, которые повторяются в интерактивный сеанс с интерпретатором Python. Печать должна выводиться на стандартный вывод. Эхо-представление возвращаемого значения выражения (которое отображается в вашей оболочке Python, если не None
) будет молчать при запуске эквивалентного кода в скриптах.
в Python 2 у нас были операторы печати. В Python 3 мы получаем функцию печати, которую мы также можем использовать в Python 2.
печать операторов с запятыми (Python 2)
оператор печати с запятыми, разделяющими элементы, использует пробел для их разделения. Конечная запятая приведет к добавлению другого пробела. Никакая конечная запятая не добавит символ новой строки, который будет добавлен к печатному элементу.
вы можете поместить каждый элемент в отдельный оператор печати и использовать запятую после каждого, и они будут печатать то же самое, в той же строке.
например (это будет работать только в скрипте, в интерактивной оболочке, вы получите новое приглашение после каждой строки):
x = "Hello"
y = "World"
print "I am printing",
print x,
print y
выводит:
I am printing Hello World
Функции Печати
со встроенной функцией печати из Python 3, также доступной в Python 2. 6 и 2.7 с этим импортом:
from __future__ import print_function
вы можете объявить разделитель и конец, что дает нам гораздо больше гибкости:
>>> print('hello', 'world', sep='-', end='\n****\n')
hello-world
****
>>>
значение по умолчанию ' '
для сентября и '\n'
для:
>>> print('hello', 'world')
hello world
>>>
конкатенация создает каждую строку в памяти, а затем объединяет их вместе на концах в новую строку (так что это может быть не очень удобно для памяти), а затем печатает их на выходе одновременно. Это хорошо, когда вам нужно объединить строки, вероятно, построенные в другом месте, вместе.
print('hello' + '-' + 'world')
печати
hello-world
будьте осторожны, прежде чем пытаться таким образом объединить литералы других типов в строки, чтобы преобразовать сначала литералы к строкам.
print('here is a number: ' + str(2))
печать
here is a number: 2
если вы попытаетесь объединить целое число, не принуждая его сначала к строке:
>>> print('here is a number: ' + 2)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: cannot concatenate 'str' and 'int' objects
это должно продемонстрировать, что вы должны только пытаться объединить переменные, которые известны как строки. Новый способ форматирования, продемонстрированный далее, обрабатывает эту проблему для вас.
форматирование вы демонстрируя старый стиль Строковой интерполяции, заимствованный из C. Он берет старую строку и один раз создает новую. Что она делает довольно просто. Вы должны использовать это, когда вам может показаться, что вы создаете довольно большой шаблон (при 3+ линиях и 3+ переменных вы определенно должны делать это таким образом).
новый способ сделать это — сделать это (используя индекс аргументов):
print('I am printing {0} and {1}'. format(x, y))
или в python 2.7 или 3 (используя подразумеваемый index):
print('I am printing {} and {}'.format(x, y))
или с именованными аргументами (это семантически легко читать, но код не выглядит очень сухим (т. е. не повторяйтесь))
print('I am printing {x} and {y}'.format(x=x, y=y))
самое большое преимущество это %
форматирование стиля (не показано здесь) заключается в том, что оно позволяет комбинировать позиционные и ключевые аргументы
print('I am printing {0} and {y}'.format(x, y=y))
новое в Python 3.6, формат литералов
Python 3.6 будет иметь формат литералов с более элегантным синтаксис (меньше резервирования). Простой синтаксис что-то вроде:
print(f'I am printing {x} and {y}')
литералы формата могут фактически выполнять код на месте:
>>> print(f'I am printing {"hello".capitalize()} and {"Wo" + "rld"}')
I am printing Hello and World
Python конкатенация строки и числа
Итак, о работе со строками мы немного поговорили, теперь поговорим о функциях и методах строк.
Я постарался собрать здесь все строковые методы и функции, но если я что-то забыл — поправляйте.
Базовые операции
Длина строки (функция len)
Доступ по индексу
Как видно из примера, в Python возможен и доступ по отрицательному индексу, при этом отсчет идет от конца строки.
Оператор извлечения среза: [X:Y]. X – начало среза, а Y – окончание;
символ с номером Y в срез не входит. По умолчанию первый индекс равен 0, а второй — длине строки.
Кроме того, можно задать шаг, с которым нужно извлекать срез.
Другие функции и методы строк
При вызове методов необходимо помнить, что строки в Python относятся к категории неизменяемых последовательностей, то есть все функции и методы могут лишь создавать новую строку.
Поэтому все строковые методы возвращают новую строку, которую потом следует присвоить переменной.
- Переводы, 19 сентября 2016 в 20:31
Как вы, наверное, знаете один из принципов в Python: “Должен быть один и только один способ сделать что-либо”. Можете убедиться в этом, выполнив в в интерпретаторе import this (вы увидите Дзен Python). Несмотря на это, иногда вам всё равно приходится выбирать между несколькими способами сделать что-то, и не всегда очевидно, какой способ лучше. Недавно один студент спросил меня, какой способ конкатенации строк в Python самый эффективный. Я решил поделиться результатом своего маленького исследования и с вами.
Для начала вспомним, какие способы объединения строк предоставляет нам Python. Во-первых, это оператор + :
Также мы можем использовать оператор % , который, конечно, может использоваться не только для соединения строк, но и для этого тоже:
Есть и ещё более современная замена % — это str.format :
Так же, как и % , этот метод гораздо мощнее, чем обычный + , но тем не менее строки соединяют и с его помощью.
Как же мы будем замерять время? В Jupyter (так же известном, как IPython) мы можем использовать магическую команду timeit для запуска кода. Для запуска я подготовил четыре функции, каждая из которых складывает строки разным образом. Исходные строки хранятся в глобальных переменных ( x и y ), а локальная (для каждой функции) переменная z содержит результат сложения. Затем функция возвращает результат.
Конечно concat3() и concat4() фактически одинаковы, но я решил проверить и то, влияет указание порядка строк на скорость или нет. Затем я определил наши глобальные переменные:
И запустил наши функции:
Результат оказался следующим:
- concat1: 153 наносекунды;
- concat2: 275 наносекунд;
- concat3: 398 наносекунд;
- concat4: 393 наносекунды.
Здесь мы можем видеть, что concat1() , который использует оператор + , выполняется гораздо быстрее остальных. Это немного расстроило меня, потому что мне очень нравится str.format , однако теперь в задачах, которые требуют огромного количества обработки строк, от него придётся отказаться.
Возможно, такие результаты могут быть связаны с тем, что короткие строки не создаются в Python каждый раз снова, а хранятся в специальной таблице? Давайте попробуем изменить наши глобальные переменные следующим образом:
Теперь мы получим следующие результаты:
- concat1: 2. 64 микросекунды;
- concat2: 3.09 микросекунды;
- concat3: 3.33 микросекунды;
- concat4: 3.48 микросекунды;
Да, каждый из методов теперь работал гораздо дольше, однако общий результат не изменился — оператор + по прежнему лидирует. Заметим так же, что разница во времени между третьим и четвёртым методом, как и ожидалось, пренебрежимо мала.
«Яндекс», Москва, от 100 000 до 250 000 ₽
После этого я попробовал не объявлять переменные глобальными, а задавать их в теле метода, но на результаты это всё равно не повлияло. Разумеется, можно проводить ещё много разных опытов (например, попробовать сложить больше, чем две строки), однако этого уже достаточно, чтобы иметь примерное представление о скоростях работы различных способов сложения строк в языке Python.
В python говорится, что у вас есть
даст вам ошибку поэтому вы пишете
чтобы не получить ошибку.
Я думаю, что это довольно неуклюжий способ обработки int и конкатенации строк. Даже Java не нуждается в явном литье в String для этого типа конкатенации. Есть ли лучший способ сделать такую конкатенацию без явного каста в Python?
python string-concatenation concatenation
5 ответов
136 Решение [2012-07-19 13:43:00]
Современное форматирование строк:
Нет форматирования строк:
27 Levon [2012-07-19 13:42:00]
Форматирование строк, используя метод .format() нового стиля (с настройками по умолчанию . format()):
Или более старый, но «все еще придерживающийся», % -formatting:
В обоих вышеприведенных примерах нет места между двумя конкатенированными элементами. Если пространство необходимо, его можно просто добавить в строки формата.
Они обеспечивают большой контроль и гибкость в отношении того, как конкатенировать элементы, пространство между ними и т.д. Подробнее о формате см. это.
13 CaitlinG [2013-07-10 10:49:00]
Python — интересный язык в том смысле, что, хотя обычно существует один (или два) «очевидных» способа выполнения любой заданной задачи, гибкость все еще существует.
Вышеприведенный фрагмент кода написан в синтаксисе Python3, но круглые скобки после печати всегда разрешены (необязательно) до тех пор, пока версия 3 не сделает их обязательными.
Python — объединить строку и int
В Python мы обычно выполняем конкатенацию строк с помощью оператора +
. Однако, как мы знаем, оператор +
также используется для сложения целых чисел или чисел с плавающей запятой.
Итак, что произойдет, если у нас будет строка и int с обеих сторон операнда?
Поскольку Python является языком с динамической типизацией, мы не столкнемся с какой-либо ошибкой во время компиляции, а скорее получим ошибку времени выполнения .(В частности, возникает исключение TypeError )
Приведенный ниже фрагмент доказывает это:
a = "Здравствуйте, я учусь в классе" б = 12 печать (a + b)
Выход
Отслеживание (последний вызов последний): Файл "concat.py", строка 5, впечать (a + b) TypeError: может только объединить str (не "int") с str
Итак, поскольку мы не можем напрямую связать целое число со строкой, нам нужно манипулировать операндами, чтобы их можно было объединить.Есть несколько способов сделать это.
1. Использование str ()
Мы можем преобразовать целое число в строку с помощью функции str ()
. Теперь новую строку можно объединить с другой строкой для получения выходных данных;
печать (a + str (b))
Выход
Привет я учусь в 12 классе
Это наиболее распространенный способ преобразования целого числа в строку.
Но мы можем использовать и другие методы.
2. Использование format ()
a = "Здравствуйте, я учусь в классе" б = 12 print ("{} {}". формат (a, b))
Вывод остается таким же, как и раньше.
3. Использование спецификатора формата «%»
a = "Здравствуйте, я учусь в классе" б = 12 print ("% s% s"% (a, b))
Хотя мы можем указать, что и a
, и b
являются строками, мы также можем использовать спецификаторы формата в стиле C (% d
, % s
) для объединения целого числа со строкой.
print ('% s% d'% (a, b))
Вывод остается таким же для приведенного выше кода.
4. Использование f-струн
Мы можем использовать f-строки Python в Python 3.6 или выше для объединения целого числа со строкой.
a = "Здравствуйте, я учусь в классе" б = 12 print (f "{a} {b}")
5. Печать строки с помощью print ()
Если мы хотим напрямую напечатать объединенную строку, мы можем использовать print ()
, чтобы выполнить объединение за нас.
a = "Здравствуйте, я учусь в классе" б = 12 print (a, b, sep = "")
Мы соединяем a
и b
, используя разделитель нулевой строки ( sep
), поскольку разделителем по умолчанию для print ()
является пробел («»).
Заключение
В этой статье мы узнали, как объединить целое число со строкой, используя различные методы.
Список литературы
Конкатенация строк в Python (оператор +, соединение и т. Д.)
Как объединить строки в Python объясняется ниже в примере кода.
- Объединить несколько строк:
+
оператор,+ =
оператор - Объединение строк и чисел:
+
оператор,+ =
оператор,str ()
,формат ()
- Объединить список строк в одну строку:
join ()
- Объедините список чисел в одну строку:
join ()
,str ()
Объединить несколько строк: +
оператор, + =
оператор
+
оператор
Для объединения строковых литералов можно использовать оператор +
( '... '
или "..."
) и строковые переменные.
s = 'aaa' + 'bbb' + 'ccc'
печать (и)
# aaabbbccc
s1 = 'ааа'
s2 = 'bbb'
s3 = 'ccc'
s = s1 + s2 + s3
печать (и)
# aaabbbccc
s = s1 + s2 + s3 + 'ддд'
печать (и)
# aaabbbcccddd
+ =
оператор
Можно также использовать оператор на месте + =
.
Строка справа объединяется после строковой переменной слева.
s1 + = s2
печать (s1)
# aaabbb
Если вы хотите добавить строку в конец строковой переменной, используйте оператор + =
.
s = 'ааа'
s + = 'ххх'
печать (и)
# aaaxxx
Объединить путем последовательной записи строковых литералов
Если вы пишете строковые литералы последовательно, они объединяются.
s = 'aaa''bbb''ccc'
печать (и)
# aaabbbccc
Если между строками есть несколько пробелов или символов новой строки с обратной косой чертой \
(считающихся строками продолжения), они также объединяются.
s = 'aaa' bbb '' ccc '
печать (и)
# aaabbbccc
s = 'ааа' \
'bbb' \
'ccc'
печать (и)
# aaabbbccc
Используя это, вы можете писать длинные строки в нескольких строках кода.
Вы не можете сделать это для строковых переменных.
# s = s1 s2 s3
# SyntaxError: неверный синтаксис
Объединение строк и чисел: +
оператор, + =
оператор, str ()
, формат ()
Различные типы операций +
вызывают ошибку.
s1 = «ааа»
s2 = 'bbb'
я = 100
f = 0,25
# s = s1 + i
# TypeError: должно быть str, а не int
Если вы хотите объединить число, такое как целое число int
или число с плавающей запятой float
, со строкой, преобразуйте число в строку с помощью str ()
, а затем используйте оператор +
или + =
оператор.
s = s1 + '_' + str (i) + '_' + s2 + '_' + str (f)
печать (и)
# aaa_100_bbb_0.25
Используйте функцию format ()
или строковый метод format ()
, если вы хотите преобразовать числовой формат, такой как заполнение нулями или десятичные разряды.
s = s1 + '_' + формат (i, '05') + '_' + s2 + '_' + формат (f, '.5f')
печать (и)
# aaa_00100_bbb_0.25000
s = '{} _ {: 05} _ {} _ {:. 5f}'. format (s1, i, s2, f)
печать (и)
# aaa_00100_bbb_0.25000
Объединить список строк в одну строку: join ()
Строковый метод join ()
может использоваться для объединения списка строк в одну строку.
Запишите следующее:
'Строка для вставки'.join ([Список строк])
Вызовите метод join ()
из 'Строка для вставки'
и передайте [Список строк]
.
Если вы используете пустую строку ''
, [Список строк]
просто объединяется, а если вы используете запятую ,
, это строка с разделителями-запятыми. Если используется символ новой строки \ n
, новая строка будет вставлена для каждой строки.
l = ['aaa', 'bbb', 'ccc']
s = '' .join (l)
печать (и)
# aaabbbccc
s = ','. соединение (l)
печать (и)
# ааа, bbb, ccc
s = '-'. соединение (l)
печать (и)
# aaa-bbb-ccc
s = '\ n'.join (l)
печать (и)
# ааа
# bbb
# ccc
Обратите внимание, что здесь был описан только пример списка, но другие итерируемые объекты, такие как кортежи, могут быть аналогичным образом указаны в качестве аргументов join ()
.
Используйте split ()
, чтобы разделить строку, разделенную определенным разделителем, и получить ее в виде списка.Подробности смотрите в следующем посте.
Объединить список чисел в одну строку: join ()
, str ()
Если вы установите для нестрокового списка значение join ()
, произойдет ошибка.
l = [0, 1, 2]
# s = '-'. join (l)
# TypeError: элемент последовательности 0: ожидаемый экземпляр str, найдено int
Если вы хотите объединить список чисел в одну строку, примените функцию str ()
к каждому элементу в понимании списка для преобразования чисел в строки, затем объедините их с помощью join ()
.
s = '-'. Join ([str (n) для n в l])
печать (и)
# 0-1-2
Его можно записать как выражение генератора, которое является версией генератора списков. Выражения генератора заключены в круглые скобки ()
, но вы можете опустить ()
, если выражение генератора является единственным аргументом функции или метода.
s = '-'. Join ((str (n) для n в l))
печать (и)
# 0-1-2
s = '-'. join (str (n) для n в l)
печать (и)
# 0-1-2
В общем, выражения генератора имеют то преимущество, что использование памяти сокращается по сравнению с пониманием списка.Однако, поскольку join ()
внутренне преобразует генератор в список, нет никаких преимуществ в использовании выражений генератора.
См. Следующий пост для получения подробной информации о составлении списков и выражениях генератора.
Объединение строк в Python с примерами
Объединение строк в Python
В Python строки могут быть объединены с помощью оператора + . Ниже приведены несколько примеров конкатенации строк в Python.
Python Concatenation example
Следующий пример просто объединяет два предложения и отображает их.
print («Это учебник по Python» + «Это глава о конкатенации») |
Конкатенация двух переменных
В следующем примере конкатенации строк Python мы будем использовать две строки переменные и объедините их с помощью оператора ‘+’. Смотрите код с выводом!
str1 = «Это учебник по Python». str2 = «Это глава конкатенации» print (str1 + »« + str2) |
Результатом будет:
Это руководство по Python.Это глава конкатенации
Что произойдет, если объединить Int?
Если попытаться объединить Int со строкой, будет сгенерирована ошибка.
str1 = «Это учебник по Python». str2 = «Это глава конкатенации» int1 = 123 print (str1 + »« + int1) |
Это будет выведено с сообщением об ошибке:
Traceback (последний последний звонок):
Файл «C: PythonProgramsshell.py ”, строка 4, в
print (str1 +” ”+ int1)
TypeError: Невозможно неявно преобразовать объект int в str
Вы должны преобразовать int в строку используя метод Python str , чтобы связать это. См. Пример ниже:
str1 = «Это учебное пособие по Python». str2 = «Это глава конкатенации» int1 = 123 print (str1 + »« + str (int1)) |
Результатом будет:
Это учебное пособие по Python.123
См. Также — Длина строки | Python Tuple
Программа Python для объединения строки
- f
- т
- пер.
- Дом
- Ява
- С
- C ++
- HTML
- CSS
- JavaScript
- SQL
- PHP
- Perl
- Питон
- C #
- Objective-C
- подсказок
- Примеры программ Python
- Примеры программ Python
- Python Print Hello World
- Python Получить ввод от пользователя
- Python сложить два числа
- Python Проверить четность или нечетность
- Python Проверить Prime или нет
- Python Проверить алфавит или нет
- Python Проверить гласный или нет
- Python проверяет високосный год или нет
- Python Check Reverse равный Оригинал
- Python Проверить положительный отрицательный ноль
- Python сложить, вычесть, умножить, разделить
- Python Make Simple Calculator
- Python Добавить цифры числа
- Python Найти сумму натуральных чисел
- Python Рассчитать средний процент
- Python Вычислить среднее чисел
- Python Рассчитать оценку ученика
- Таблица умножения печати Python
- Python Найти квадратный корень числа
- Python Печатные простые числа
- Python решает квадратное уравнение
- Найдите числа, делящиеся на число
- Python Найти множители числа
- Python Найти обратное число
- Python поменять местами два числа
- Python поменять местами две переменные
- Python Найти наибольшее из двух чисел
- Python: найти наибольшее из трех чисел
- Python Найти факториал числа
- Python Найти HCF и LCM
- Python вычислить площадь квадрата
- Python вычислить площадь прямоугольника
- Python вычислить площадь треугольника
- Python вычислить площадь круга
- Python Расчет периметра квадрата
- Python Найти периметр прямоугольника
- Python: определение периметра треугольника
- Python Найти окружность круга
- Python печатает значения ASCII
- Python Печать серии Фибоначчи
- Python Отображение мощности 2
- Python генерирует числа Армстронга
- Python Проверить Армстронг или нет
- Python Проверить палиндром или нет
- Python Найти ncR и nPr
- Python Преобразование километров в мили
- Python Преобразование Фаренгейта в Цельсий
- Python преобразовать градусы Цельсия в градусы Фаренгейта
- Python преобразовать десятичное в двоичное
- Python преобразовать десятичное число в восьмеричное
- Python из десятичной системы в шестнадцатеричную
- Python преобразовать двоичное в десятичное
- Python преобразовать двоичное в восьмеричное
- Python из двоичного в шестнадцатеричный
- Python преобразовать восьмеричное в десятичное
- Python преобразовать восьмеричное в двоичное
- Python преобразовать восьмеричную систему в шестнадцатеричную
- Python из шестнадцатеричного в десятичный формат
- Python из шестнадцатеричного в двоичное
- Python преобразовать шестнадцатеричное в восьмеричное
- Python Показать календарь
- Программы шаблонов печати Python
- Треугольник Флойда с принтом Python
- Программа Python для одномерного массива
- Python Добавить две матрицы
- Python вычитание двух матриц
- Матрица транспонирования Python
- Программа умножения матриц Python
- Строка печати Python
- Python Найти длину строки
- Python Сравнить две строки
- Строка копирования Python
- Строка конкатенации Python
- Python перевернуть строку
- Python удалить гласные из строки
- Удалить пунктуацию в строке
- Python удалить слова из предложения
- Символ счетчика Python в строке
- Python Count Количество каждой гласной
- Python Count Word в предложении
- Python удаляет пробелы из строки
- Строка сортировки Python в алфавитном порядке
- Python Верхний регистр в нижний регистр
- Python из нижнего регистра в верхний регистр
- Python Другой набор операций
- Python поменять местами две строки
- Python генерирует случайные числа
- Python читает файл
- Python Запись в файл
- Файлы копирования Python
- Python объединить два файла
- Список файлов Python в каталоге
- Python Удалить файлы
- Python Печать даты и времени
- Python Получить IP-адрес
- Выключение и перезагрузка компьютера Python
- Учебник Python
- Учебник Python
- Python Test
- Онлайн-тест Python
- Пройти онлайн-тест
- Зарегистрироваться сейчас
- Страница входа в систему
- Весь список тестов
Учебники по программированию на Python
Учебное пособие по объединению строк и форматированию промежуточного уровня по Python, часть 2
Добро пожаловать во вторую часть серии руководств по программированию на Python среднего уровня.В этой части мы поговорим о струнах. Странно, что мы находим такую тему в промежуточных сериях, но это, наверное, одна из самых распространенных вещей, которые делают неправильно.
Для начала напомним, что у нас есть несколько основных принципов определения «промежуточного» питона. Две из них заключались в том, что наш код должен быть эффективным и масштабируемым, а другой заключался в том, что другие должны иметь возможность легко понимать и использовать наш код. Эти два принципа вступают в противоречие, когда дело касается строковых операций.При объединении строк мы можем сделать следующее:
names = ['Джефф', 'Гэри', 'Джилл', 'Саманта'] для имени в именах: statement = 'Привет' + имя print (заявление)
Привет, Джефф Привет, Гэри Привет, Джилл Привет, Саманта
Это легко читается, но, к сожалению, не лучший выбор. Некоторые люди согласятся и позволят вам это сделать, если вы сложите только две строки, и все. Вместо этого вы должны использовать .join
:
names = ['Джефф', 'Гэри', 'Джилл', 'Саманта'] для имени в именах: заявление = ''.присоединиться (['Привет, имя]) печать (заявление)
Привет, Джефф Привет, Гэри Привет, Джилл Привет, СамантаПричина в том, что он лучше масштабируется. Когда мы используем
+
, мы создаем новые струны. Более впечатляющий пример этого может быть, если мы просто пытаемся распечатать строковый список всех имен:names = ['Джефф', 'Гэри', 'Джилл', 'Саманта'] print (',' .join (имена))Джефф, Гэри, Джилл, СамантаДругая довольно распространенная задача объединения строк связана с путями к файлам.Может возникнуть соблазн сделать что-нибудь вроде:
/ начало / файл / путь + '/' + имя файлаКак вы уже догадались, это неправильный метод. Вместо этого мы используем
os.path.join
. Например:# двойной обратный слеш для чепухи окна. location_of_files = 'C: \ Users \\ H \\ Desktop \\ Промежуточный Python' file_name = 'example.txt' с open (os.path.join (location_of_files, file_name)) как f: печать (f.read ())Теперь поговорим о форматировании строк.Предположим, вы хотите вставить переменные в строку, например:
____ сегодня купил ____ яблок!… где мы хотим заполнить пробелы с помощью переменных Python:
кто = 'Гэри' how_many = 12Итак, мы хотим, чтобы приговор был
Гэри купил сегодня 15 яблок!
. Опять же, у вас может возникнуть соблазн вырвать знак+
. Возможно, вы даже захотите выпустить% s
. Ни то, ни другое! Вместо этого мы используем{}
, например:кто = 'Гэри' how_many = 12 print ('{} сегодня купил {} яблок!'.формат (кто, как_мани))Есть еще кое-что, что мы можем сделать с форматированием строк, но я считаю, что это выходит за рамки этой серии. Для получения дополнительной информации о строках ознакомьтесь с документами strings
По струнам пока хватит. Затем давайте поговорим о стандартной библиотеке: argparse, для добавления параметров командной строки в ваши программы Python.
Следующий учебник: Argparse для промежуточного уровня Python, часть 3
Конкатенация строк Python
В Python можно выполнять несколько операций.Вы можете удалить подстроку из строки, вырезать часть строки, запустить цикл for для символов строки. Вы также можете соединить две или более строк. Когда мы объединяем две или более строк в одну строку с помощью операторов или функций, этот процесс называется конкатенацией строк.
В Python мы можем соединить две строки несколькими способами.
Например, у нас есть две строки: одна — «Hello» , а другая — «STechies» , мы будем использовать разные методы для объединения этих двух строк в одну строку, которая будет «Hello STechies» .
В Python объединение строк можно выполнить разными способами:
1. Использование оператора +
2. Использование метода Join ()
3. Использование операторов {}
4. Использование f-строки (интерполяция буквальной строки)1. Использование оператора +
Наиболее распространенный метод выполнения конкатенации строк — использование оператора «+» и , в этом случае нам нужно просто объединить две строки с помощью оператора +.
Пример
# Программа Python для объяснения конкатенации строк с использованием оператора "+" # Объявить строки str1 = 'Привет' str2 = 'Stechies' str3 = '' # Объединение строк с оператором "+" str3 = str1 + str3 + str2 # Вывод на печать print ('Последняя строка:', str3)
Выход
Последняя строка: Hello Stechies
Пояснение
В этом коде переменная с именем str1 инициализируется строковым значением « Hello ».Затем другая переменная str2 инициализируется значением « Stechies ». Переменной str3 назначается пустая строка . В следующем операторе переменной str3 присваивается объединенное значение трех строковых переменных. Оператор + используется для их сложения. Последняя строка кода print (‘Final String:’, str3) выводит окончательное значение переменной str3.
2. Использование метода Join ()
Давайте теперь посмотрим, как мы можем объединить строки без использования оператора +.В этом случае мы можем использовать метод под названием join ().
Метод join () используется для соединения или конкатенации двух или более строк. Этот метод работает путем объединения последовательности строк с разделителем, указанным пользователем. Синтаксис join ():
стык (последовательность)
Здесь str — это разделитель, который будет использоваться для объединения последовательности строк. Давайте посмотрим на пример.
Пример
# Программа Python для объяснения конкатенации строк с использованием метода соединения # Объявить строки str1 = 'Привет' str2 = 'Stechies' str3 = '' # Объединение строк и вывод на печать print ('Последняя строка:', ''.присоединиться ([str1, str3, str2])) # Присоединяемся к String и получаем результат в переменной final_string = '' .join ([str1, str3, str2]) # Объединение строк и вывод на печать print ('Последняя строка с переменной:', final_string)
Выход
Последняя строка: Hello Stechies Конечная строка с переменной: Hello Stechies
Пояснение
Первая строка инициализирует переменную str1 значением «Hello». Переменной str2 присваивается значение «Stechies», а str3 инициализируется пустой строкой.Следующий метод print () print (‘Final String:’, » .join ([str1, str3, str2])), печатает три строки с помощью метода соединения с пробелом. Затем эти строки снова объединяются с помощью метода join. Окончательное значение присваивается переменной с именем final_string. Последняя строка выводит значение этой переменной вместе со строкой «Конечная строка с переменной:».
Результирующая строка — «Hello Stechies» .
3. Использование форматирования строк с операторами {}
Функция форматирования с фигурными скобками обычно используется для конкатенации.Это потому, что когда мы используем {} , он резервирует местозаполнитель для переменной. Функция format () передает переменную оператору {}.
Для целочисленных значений нет необходимости преобразовывать целое число в строку для объединения.
Пример
# Программа Python для объяснения конкатенации строк с помощью фигурных скобок или оператора {} # Объявить строки str1 = 'Привет' str2 = 'Stechies' str3 = '' # Соедините строки и напечатайте строку, используя фигурные скобки или {} print ("Конечная строка: {} {} {}".формат (str1, str3, str2))
Выход
Последняя строка: Hello Stechies
Пояснение
Здесь две переменные str1 и str2 инициализируются значениями «Hello» и «Stechies» соответственно. Пустая строка присваивается переменной str3. Последняя строка кода:
print («Final String: {} {} {}». Format (str1, str3, str2))
Здесь метод print () используется для печати комбинации трех строковых значений.Метод format () защищает заполнитель для строк с помощью фигурных скобок {} {} {} . В результате «Hello», «Stechies» и «» печатаются последовательно.
4. Использование f-струны
F-строка — это расширенная функция, которая на самом деле известна как Literal String Interpolation . Он обеспечивает быстрый и эффективный способ форматирования строк с использованием заполнителей. Он работает как метод format (), но здесь вы можете указать имена переменных внутри фигурных скобок или заполнителей.
Работает с версиями Python 3.6+.
Пример
# Программа Python для объяснения конкатенации строк с помощью f-строки # Объявить строки str1 = 'Привет' str2 = 'Stechies' str3 = '' # Соединяем строки и печатаем строку, используя f-строку print (f '{str1} наш сайт {str2}') # передать значение конкатенации в переменную final_string = f '{str1} {str3} {str2}' # Печатать переменную печать (final_string)
Выход
Здравствуйте! Наш сайт - Stechies Привет, Stechies
Пояснение
Первая строка инициализирует переменную str1 значением «Hello».Переменной str2 присваивается значение «Stechies», а str3 инициализируется пустой строкой. В следующей строке выведите (f ‘{str1} наш сайт {str2}’) , строки соединены с другими строками . Здесь строки str1 и str2 объединены со строками «наш сайт». Следующая строка кода объединяет три строки str1 str3 и str2 с помощью метода f-string.
Затем значение присваивается переменной с именем final_string. Значение этой переменной печатается оператором print () в последней строке программы.
Следовательно, конечное значение переменной final_string — «Hello Stechies» .
Объединить строку с использованием собственной функции
Пример
# Программа Python для объяснения конкатенации строк с использованием цикла for путем добавления строки в цикл # Создал список list1 = ['Наш', 'Сайт', 'is', 'stechies.com'] # Инилизованная строковая переменная final_string = '' # Добавить строку в цикл для l1 в list1: final_string + = l1 # вывод на печать печать (final_string)
Выход
Наш сайт - это stechies.com
Пояснение
Здесь переменная с именем list1 инициализируется списком элементов [‘Our’, ‘Site’, ‘is’, ‘stechies.com’] . Пустая строка присваивается переменной final_string. Затем в цикле for используется переменная l1 для итерации по списку list1 . Все элементы list1 добавлены к переменной final_string. Значение final_string печатается в последней строке.
Окончательный результат: «Наш сайт — stechies.com».
Объединить строку и целочисленную переменную
Чтобы объединить строку и целочисленную переменную, вам необходимо преобразовать целочисленную переменную в строку, а затем объединить с помощью оператора ‘+’ .
Пример
# Программа Python для объяснения конкатенации строк с использованием оператора "+" # Объявление строк и целочисленных переменных str1 = 'Привет' str2 = 'Я' str3 = 25 str4 = 'лет' str5 = 'старый' # Объединение строк с оператором "+" str3 = str1 + '' + str2 + '' + str3 + '' + str4 + '' + str5 # Вывод на печать print ('Последняя строка:', str3)
Выход
Traceback (последний звонок последний): Файл "main.py ", строка 12, в
str3 = str1 + '' + str2 + '' + str3 + '' + str4 + '' + str5 TypeError: невозможно неявно преобразовать объект int в str Объяснение ошибки
В этом коде все переменные str1, str2, str4 и str5 инициализированы значениями — str1 = ‘Hello’, str2 = ‘I am’, str4 = ‘years’ и str5 = ‘old’. Переменной str3 присваивается целочисленное значение 25. Строковые значения всех этих переменных складываются с использованием оператора конкатенации + .Конечное значение сохраняется в переменной str3.
Последняя строка программы выводит строку «Конечная строка» и значение переменной str3. После выполнения кода возникает ошибка en. Это происходит, когда код пытается сложить строки и целочисленное значение вместе, что невозможно.
Правильный пример
# Программа Python для объяснения конкатенации строк с использованием оператора "+" # Объявление строк и целочисленных переменных str1 = 'Привет' str2 = 'Я' str3 = 25 str4 = 'лет' str5 = 'старый' # Объединение строк с оператором "+" str3 = str1 + '' + str2 + '' + str (str3) + '' + str4 + '' + str5 # Вывод на печать print ('Последняя строка:', str3)
Выход
Последняя строка: Здравствуйте, мне 25 лет
Пояснение
Код здесь работает плавно, без ошибок.Это связано с тем, что строковые переменные складываются вместе с целым числом, которое преобразуется в строку. Целочисленное значение в str3 преобразуется в строку с помощью метода str () . Затем это строковое значение объединяется с другими строками с помощью оператора + .
Здесь можно избежать ошибки, возникшей ранее, поскольку две переменные имеют один и тот же тип данных.
Заключение
Добавление или комбинирование строковых значений с помощью оператора + очень эффективно.Но у вас может быть длинная и сложная строка, в которую вам нужно вставить другие строковые значения. Использование метода format () и метода f-строки будет здесь быстрее и эффективнее. Но убедитесь, что вы объединяете значения одного типа. Если значения неоднородны, преобразуйте их с помощью методов int () или str (), чтобы избежать ошибок TypeErrors во время выполнения программы.
.