Вывод в Python без новой строки или пробела
В Python при использовании функции print() по умолчанию каждый новый элемент выводится с новой строки или с пробелом. Это логично для большинства случаев, но иногда возникает необходимость вывести данные без перехода на новую строку или пробела. Например, есть задача вывести четыре точки подряд без пробелов и переносов строк.
Стандартный код Python выглядит так:
for i in range(4): print('.')
print('.', '.', '.', '.')
В обоих случаях результат будет выведен с переходами на новую строку или с пробелами.
Для того чтобы решить данный вопрос, необходимо использовать параметр end в функции print() . Параметр end определяет, что будет добавлено после каждого вывода. По умолчанию значение end равно «\n» , что означает переход на новую строку.
Если нужно выводить элементы без перехода на новую строку, можно установить значение end равным пустой строке:
for i in range(4): print('.', end='')
Точки будут выведены на одной строке без пробелов и переносов.
Таким образом, функция print() в Python предоставляет гибкий функционал для контроля формата вывода данных.
Как после каждого символа ставить точку?
Как после каждого символа ставить точку(любой знак)?! Или есть другой способ как из каждого символа получить такой результат?
print(data.split('.'))
Чтобы в конце получилось что-то вроде этого =>
['g', 'h', 'b', 'd', 't', 'n', '']
Отслеживать
48.6k 17 17 золотых знаков 56 56 серебряных знаков 100 100 бронзовых знаков
задан 7 дек 2019 в 12:32
15 5 5 бронзовых знаков
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
Чтобы получить такой результат как в вопросе:
print(list(data))
Отслеживать
ответ дан 7 дек 2019 в 12:39
26.2k 7 7 золотых знаков 31 31 серебряный знак 48 48 бронзовых знаков
- python
- python-3.x
-
Важное на Мете
Похожие
Подписаться на ленту
Лента вопроса
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
Дизайн сайта / логотип © 2024 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2024.1.9.3159
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Как разделить строку по пробелам python
Такую задачу всегда можно решить с помощью цикла. Но в Python есть метод .split() . Именно его обычно используют для разделения строки на части. В качестве разделителя можно использовать любой символ: пробел, запятую, перенос строки ( \n ) и т.д.
На выходе мы получим список строк:
str = 'how are you' str.split(' ') # ['how', 'are', 'you']
Пробел как разделитель можно не указывать. Метод .split() будет использовать параметр по умолчанию:
str = 'how are you?' str.split() # ['how', 'are', 'you']
Иногда перед тем, как разделить строку, необходимо избавиться от лишних знаков препинания:
str = 'Hi, how are you?' str[:-1].replace(',', '').split() # ['Hi', 'how', 'are', 'you']
В строке заменить пробелы символом *
В строке заменить пробелы звездочкой. Если встречается подряд несколько пробелов, то их следует заменить одним знаком * , пробелы в начале и конце строки удалить.
Решение задачи на языке программирования Python
Решение данной задачи классическим способом, без использования продвинутых возможностей Python, может быть таким.
Сначала избавляемся от пробелов в начале и конце строки, если они имеются. Для этого перебираем строку посимвольно сначала или с конца. Как только встречается первый непробельный символ, берем срез от него до конца строки или до начала, в случае удаления пробелов с конца.
Далее снова посимвольно перебираем строку. Если очередной символ не является пробелом, то формировать новую строку добавлением к ней этого символа. В ветку elif попадают символы пробела, но здесь проверяется не был ли равен предыдущий символ пробелу. Если это не так (не был равен), то только тогда к новой строке добавляется «*». Лишние пробелы будут просто пропущены и не добавлены к новой строке.
s = input() i = 0 while s[i] == ' ': i += 1 s = s[i:] i = len(s) while s[i - 1] == ' ': i -= 1 s = s[:i] s_new = s[0] i = 1 while i len(s): if s[i] != ' ': s_new += s[i] elif s[i - 1] != ' ': s_new += '*' i += 1 print(s_new + '!')
Пример выполнения скрипта:
one two three four f*ve six seven one*two*three*four*f*ve*six*seven!
Однако в языке программирования Python данную задачу проще решить, преобразовав строку в список. С помощью метода split строка разделяется на слова по пробелам. При этом неважно сколько их. Далее остается только снова собрать слова в строку. Проще это сделать строковым методом join :
s = input() l = s.split() s1 = '*'.join(l) print(s1)
X Скрыть Наверх
Решение задач на Python