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

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

Решение данной задачи классическим способом, без использования продвинутых возможностей 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]
 
s1 = s[0]
i = 1
while i < len(s):
	if s[i] != ' ':
		s1 += s[i]
	elif s[i-1] != ' ':
		s1 += '*'
	i += 1
print(s1+'!')

Пример выполнения скрипта:

   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)

Комментарии

решить задачу: вводиться многозначное число, в котором цифры могут повторяться. Вывести цифры, которых нет в этом числе.

Ответ на от Светлана

digit = input("Input number: ")
ls = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0']
ls1 = []
for i in ls:
    if i in digit:
        continue
    else:
        ls1.append(str(i))
print(ls1)

Ответ на от Светлана

s=int(input())
s=str(s)
sym0=s.find('0')
if sym0==-1:
    a0=0
else:
    a0=''
sym1=s.find('1')
if sym1==-1:
    a1=1
else:
    a1=''
sym2=s.find('2')
if sym2==-1:
    a2=2
else:
    a2=''
sym3=s.find('3')
if sym3==-1:
    a3=3
else:
    a3=''
sym4=s.find('4')
if sym4==-1:
    a4=4
else:
    a4=''
sym5=s.find('5')
if sym5==-1:
    a5=5
else:
    a5=''
sym6=s.find('6')
if sym6==-1:
    a6=6
else:
    a6=''
sym7=s.find('7')
if sym7==-1:
    a7=7
else:
    a7=''
sym8=s.find('8')
if sym8==-1:
    a8=8
else:
    a8=''
sym9=s.find('9')
if sym9==-1:
    a9=9
else:
    a9=''
x0=str(a0)
x1=str(a1)
x2=str(a2)
x3=str(a3)
x4=str(a4)
x5=str(a5)
x6=str(a6)
x7=str(a7)
x8=str(a8)
x9=str(a9)
z=x1+x2+x3+x4+x5+x6+x7+x8+x9+x0
print(int(z))

Напишите программу,которая решает следуюшую задачу:《 N школьников делят х яблок поровну так,чтобы каждому достались только целье яблоки,остальные яблоки остаются в корзинке.Определить,сколько яблок достанется каждому школьнику и сколько яблок останется в корзинке.

Ответ на от Айдана

N = int(input('Кол-во школьников: '))
YA = int(input('Кол-во яблок: '))
 
DOST = YA // N # div
OST = YA - DOST*N #
print('Школьникам досталось по {0} яблок, в корзине осталось {1}'. format(DOST, OST))