Как соединить строку и число?
Как соединить в print строку и число? Если например eесть переменная num в цикле, и эту же переменную нужно в этом цикле соединить со строкой.
Отслеживать
51.6k 200 200 золотых знаков 61 61 серебряный знак 242 242 бронзовых знака
задан 13 мая 2017 в 15:43
83 1 1 серебряный знак 11 11 бронзовых знаков
что вы понимаете под «соединить»?
13 мая 2017 в 15:49
5 ответов 5
Сортировка: Сброс на вариант по умолчанию
>> print 'Foo', 123 Foo 123
Либо используя format :
>> print "<> <>".format("Foo", 123) Foo 123
Отслеживать
ответ дан 13 мая 2017 в 15:50
phen0menon phen0menon
653 5 5 серебряных знаков 19 19 бронзовых знаков
In [263]: var = 50 In [264]: f'variable + 5%: ' Out[264]: 'variable + 5%: 52.5'
Отслеживать
ответ дан 13 мая 2017 в 16:02
MaxU — stand with Ukraine MaxU — stand with Ukraine
149k 12 12 золотых знаков 59 59 серебряных знаков 132 132 бронзовых знака
print("Distance to Sun: " + str(150000000) + " km")
Отслеживать
ответ дан 13 мая 2017 в 15:48
user249284 user249284
Да просто через запятую
print("string",2)
Отслеживать
ответ дан 13 мая 2017 в 15:49
855 6 6 серебряных знаков 11 11 бронзовых знаков
print «String», 1, «String», 2, «ETC»;
Отслеживать
ответ дан 13 мая 2017 в 15:56
user245150 user245150
пожалуйста, постарайтесь оставлять чуть более развёрнутые ответы. дополнить ответ можно, нажав править
17 мая 2017 в 6:36
-
Важное на Мете
Похожие
Подписаться на ленту
Лента вопроса
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.11.15.1019
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Синтаксис объединения строк в Python
Часто в программах на Python возникает потребность объединить несколько строк в одну. В Python для этого предусмотрен метод join() , который применяется к строке-разделителю и принимает на вход список строк, которые нужно объединить.
Возьмем для примера список из двух строк: [«Hello», «world»] . Чтобы объединить эти строки через дефис, нужно применить метод join() к дефису, то есть вызвать его так: «-» .join([«Hello», «world»]) . В результате получится строка «Hello-world» .
На первый взгляд может показаться странным, что метод join() применяется не к списку строк, который мы хотим объединить, а к строке-разделителю. Ведь логичнее было бы вызвать его так: [«Hello», «world»].join(«-«) . Однако в Python выбран именно первый вариант.
Причина этому — общая логика организации методов в Python. В Python, как и в большинстве других языков программирования, методы применяются к объектам того типа, которому они принадлежат. Метод join() принадлежит типу str , то есть строкам, и поэтому он применяется к объектам этого типа.
Если бы метод join() применялся к спискам, то это создало бы несколько проблем. Во-первых, пришлось бы учесть случаи, когда в списках содержатся не только строки, но и другие типы данных. Во-вторых, пришлось бы определить, что делать, если список пустой или содержит только один элемент. В итоге, код стал бы более сложным и труднее для понимания.
Таким образом, выбор синтаксиса string.join(list) вместо list.join(string) обусловлен логикой организации методов в Python и учетом различных случаев использования.
Объединение и повторение строк в Python
Два или более строковых литерала, те, которые заключены в кавычки рядом друг с другом, автоматически объединяются.
>>> 'Py' 'thon' # 'Python'
Эта функция особенно полезна, когда необходимо разделить длинные строки, что бы они помещались на экране в IDE:
>>> text = ('Поместите несколько строк в круглые скобки ' . 'чтобы они соединились вместе.') >>> text # 'Поместите несколько строк в круглые скобки, чтобы они были соединены вместе.'
Такое поведение дает возможность так же делить форматированные строки (f-строки), например:
>>> a = 'например: 2' >>> b = 'вместе' >>> text = (f'Поместите несколько строк (a>) в круглые скобки ' . f'чтобы они соединились b>.') >>> text # 'Поместите несколько строк (например: 2) в круглые скобки чтобы они соединились вместе.'
Такое деление строк работает только с литералами, но не с переменными или выражениями:
# не удастся объединить переменную и строковый литерал >>> prefix = 'Py' >>> prefix 'thon' # File "", line 1 # prefix 'thon' # ^ # SyntaxError: invalid syntax >>> ('un' * 3) 'ium' # File "", line 1 # ('un' * 3) 'ium' # ^ # SyntaxError: invalid syntax
Если необходимо объединить переменные или переменную и литерал, используйте знак ‘+’ :
>>> prefix + 'thon' # 'Python'
Лучший и наиболее быстрый (по времени выполнения), а так же менее ресурсозатратный (для ОС) способ объединить список строк — это конечно метод str.join() . Этот метод объединения строк рекомендуется компилятором PyPy (если вдруг захотите ускорить свой код).
# начальная строка >>> line = 'Состав корзины покупателя:' # список строк, которые нужно добавить >>> lst_line = ['- картошка', '- морковь', '- лук', '- чеснок', '- свекла'] # вставляем начальную строку по индексу 0 в список >>> lst_line.insert(0, line) # объединяем список строк по разделителю '\n' >>> rez = '\n'.join(lst_line) >>> print(rez) # Состав корзины покупателя: # - картошка # - морковь # - лук # - чеснок # - свекла
Что бы повторить строку нужное количество раз, необходимо использовать символ умножения * :
>>> '#' * 45 # '#############################################' >>> '-!-' * 15 # '-!--!--!--!--!--!--!--!--!--!--!--!--!--!--!-'
Такое поведение можно использовать, например для подчеркивания строк, выводимых в терминал или текстовый файл. Для этого вычислим длину слова, а затем символ ‘-‘ «умножим» на полученную длину строки:
>>> line = 'Привет мир!' >>> n = len(line) >>> print(f"line>\n'-'*n>") # Привет мир! # -----------
- ОБЗОРНАЯ СТРАНИЦА РАЗДЕЛА
- Преобразование строки в число
- Строку в список, кортеж или множество символов
- Одинарные, двойные и тройные кавычки в строке Python
- Вывод специальных символов в строке Python «как есть»
- Объединение и повторение строк
- Индексирование строк
- Использование срезов строк
- Cрез строки Python от заданного символа/знака до конца строки
- Создание макета для печати базовыми методами строк
- Способы форматирования текстовых строк
- Подсчет повторений слов в тексте, деление строки на список слов
- Удаление слова из строки Python по фрагменту или шаблону
- Удаление пунктуации из строки
- Деление строки по заглавным буквам
- Создание отчетов и писем по шаблонам
Как соединить число и строку в python
Вы имеете список строк с парами ключ-значение вида key=value и хотите объединить их в одну строку. Для этих целей можно воспользоваться методом join строковых объектов.
Пример 1.34. Объединение строк в buildConnectionString
return ";".join(["%s=%s" % (k, v) for k, v in params.items()])
Перед тем, как мы продолжем, сделаю одно интересное замечание. Я постоянно повторяю, что функции являются объектами, строки являются объектами, все является объектами. Вы могли подумать, что под строковыми объектами подразумевались строковые переменные . Но нет, посмотрите внимательно на этот пример, и вы увидете, что строка ";" сама по себе является объектом, метод join которого вы вызываете. В любом случае, метод join объединяет элементы списка в одну строку, в которой элементы оказываются разделены точкой с запятой. Совсем не обязательно, чтобы в качестве разделителя выступала точка с запятой, не обязательно, чтобы он был одним символом — разделитель может быть произвольной строкой.
| Метод join может работать только со списками строк, он не делает никаких преобразований. Если список содержит один или более нестроковых элементо, будет сгенерировано исключение. | |
Пример 1.35. Вывод программы odbchelper.py
>>> params = "server":"mpilgrim", "database":"master", "uid":"sa", "pwd":"secret"> >>> ["%s=%s" % (k, v) for k, v in params.items()] ['server=mpilgrim', 'uid=sa', 'database=master', 'pwd=secret'] >>> ";".join(["%s=%s" % (k, v) for k, v in params.items()]) server=mpilgrim;uid=sa;database=master;pwd=secret
Именно эту строку возвращает функция buildConnectionString и выводит программа. Историческая справка. Когда я начал изучать Python, я ожидал, что join будет методом списка, а строка-разделитель — его аргументом. Многие люди думали точно также. До появления версии Python 1.6 строки не имели всех этих полезных методов. Был отдельный модуль string, содержащий функции для работы со строками. Каждая функция воспринимала строку в качесве первого аргумента. Функции посчитали достаточно важными, чтобы поместить их непосредственно в строковые объекты, что имеет смысл для таких функций, как lower, upper и split. Однако многие программисты обратили внимание на новый метод join, приводя аргументы в пользу того, что он должен быть методом списка или остаться частью старого модуля string (в котором и сейчас содержится много полезных вещей). Сам я использую новый метод join, но вы можете увидеть код написанный и по-другому. Если это вас беспокоит, вы можете использовать вместо него старую функцию string.join. Вы, наверное, зададите вопрос, есть ли аналогичный метод для разбиения строки, возвращающий список подстрок? Да, конечно, и называется он split.
Пример 1.36. Разбиение строк
>>> li = ['server=mpilgrim', 'uid=sa', 'database=master', 'pwd=secret'] >>> s = ";".join(li) >>> s 'server=mpilgrim;uid=sa;database=master;pwd=secret' >>> s.split(";") ['server=mpilgrim', 'uid=sa', 'database=master', 'pwd=secret'] >>> s.split(";", 1) ['server=mpilgrim', 'uid=sa;database=master;pwd=secret']
| Метод split выполняет действия, обратные методу join, разбивая строку на подстроки. Обратите внимание, что сам разделитель (“;”) не содержится в результате. | |
| Метод split воспринимает второй необязательный аргумент, указывающий максимальное число разбиений. (“О-о-о, необязательные аргументы…” Вы узнаете, как определить функцию с необязательными аргументами, в следующей главе.) |
| Вызов anystring.split(delimiter, 1) может быть полезен, если вы хотите найти первое вхождение подстроки и, затем, работать с фрагментами до этой подстроки (он является первым элементом возвращаемого списка) и после него (второй элемент возвращаемого списка). | |
- Python Knowledge Base отвечает на наиболее распространенные вопросы о списках и содержит множество примеров кода с использованием списков.
- Python Library Reference описывает все методы строк.
- Python Library Reference содержит информацию о модуле string.
- The Whole Python FAQ объяняет, почему join является методом строковых объектов, а не списков.
Copyright © 2000, 2001, 2002 Марк Пилгрим
Copyright © 2001, 2002 Перевод, Денис Откидач
