Как сделать пробел в print python
Перейти к содержимому

Как сделать пробел в print python

  • автор:

В строке заменить пробелы символом *

В строке заменить пробелы звездочкой. Если встречается подряд несколько пробелов, то их следует заменить одним знаком * , пробелы в начале и конце строки удалить.

Решение задачи на языке программирования 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

Пробелы в выражениях и операторах языка Python

Однако при объединении аннотации аргумента со значением по умолчанию используйте пробелы вокруг знака ‘=’ :

# Правильно def munge(sep: AnyStr = None): . def munge(input: AnyStr, sep: AnyStr = None, limit=1000): . 
# Неправильно def munge(input: AnyStr=None): . def munge(input: AnyStr, limit = 1000): . 
# Правильно if foo == 'blah': do_blah_thing() do_one() do_two() do_three() 
# Неправильно if foo == 'blah': do_blah_thing() do_one(); do_two(); do_three() 
# Неправильно if foo == 'blah': do_blah_thing() for x in lst: total += x while t  10: t = delay() if foo == 'blah': do_blah_thing() else: do_non_blah_thing() try: something() finally: cleanup() do_one(); do_two(); do_three(long, argument, list, like, this) if foo == 'blah': one(); two(); three() 
  • ОБЗОРНАЯ СТРАНИЦА РАЗДЕЛА
  • Разметка кода Python, PEP 8
  • Пробелы в выражениях и операторах языка Python
  • Когда использовать запятые в коде на Python
  • Комментарии в коде языка Python
  • Соглашения об именах
  • Рекомендации по программированию на Python

ХОЧУ ПОМОЧЬ
ПРОЕКТУ

Как вставить пробел после каждого третьего символа в строке Python?

Например, на вход попадает число 100000. На выходе должно получится 100 000.

  • Вопрос задан более года назад
  • 1308 просмотров

Комментировать
Решения вопроса 1

Из какого словаря? В каком формате данные представлены в этом словаре? Разделять надо начиная слева или справа? Это конечно великая тайна автора, о которой он никому не поведает.
Но, для простейшего случая, если речь идет только в ВЫВОДЕ данных , изначально хранимых в виде чисел (между прочим — целых или даже float) то вот так:

a=10000000000 print(''.format(a).replace(',', ' '))

Результат:
10 000 000 000
А если вы имели ввиду что-то другое — ну так тюнингуйте мой пример под свои потребности самостоятельно. И учитесь свои мысли высказывать точно и однозначно. Это умение необходимо для программиста.

Ответ написан более года назад
Комментировать
Нравится Комментировать
Ответы на вопрос 0
Ваш ответ на вопрос

Войдите, чтобы написать ответ

python

  • Python
  • +3 ещё

В боте когда я меняю переменую many += 1 выводиться ошибка?

  • 1 подписчик
  • 5 минут назад
  • 4 просмотра

Вывод через пробел Python

Ума не приложу, как правильно вывести массив типа integer в виде строки через пробел? Есть варианты? Массив вида:

z = [1,2,3,4,5,6,7] 

Отслеживать
51.3k 87 87 золотых знаков 267 267 серебряных знаков 505 505 бронзовых знаков
задан 29 дек 2011 в 14:01
411 2 2 золотых знака 7 7 серебряных знаков 21 21 бронзовый знак

4 ответа 4

Сортировка: Сброс на вариант по умолчанию

print " ".join(map(str, z)) 

Отслеживать
51.3k 87 87 золотых знаков 267 267 серебряных знаков 505 505 бронзовых знаков
ответ дан 29 дек 2011 в 14:03
Sergii Kozlov Sergii Kozlov
2,468 16 16 серебряных знаков 13 13 бронзовых знаков

for i in z: print(i, end = " ") 

Отслеживать
ответ дан 29 дек 2011 в 14:06
3,456 12 12 серебряных знаков 9 9 бронзовых знаков

print ' '.join(z) 

Отслеживать
ответ дан 29 дек 2011 в 14:09
3,028 13 13 серебряных знаков 14 14 бронзовых знаков

print ' '.join(str(v) for v in z) 

Отслеживать
ответ дан 8 янв 2012 в 9:18
49 2 2 бронзовых знака

    Важное на Мете
Похожие

Подписаться на ленту

Лента вопроса

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

Дизайн сайта / логотип © 2024 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2024.2.16.5008

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *