В строке заменить пробелы или несколько пробелов одним символом "*" (Python)

Тема: 
Строки

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

Алгоритм решения задачи:

  1. Посимвольно просмотреть строку с ее начала. Запомнить номер первого непробельного символа. Взять срез из строки от первого непробельного символа до ее конца.
  2. Просмотреть строку с конца. Запомнить номер первого непробельного символа с конца. Взять срез из строки от ее начала до первого непробельного символа с конца.
  3. Присвоить новой строке первый символ старой (он в любом случае не пробел).
  4. Посимвольно просматривать старую строку. Если очередной символ не является пробелом, то формировать новую строку добавлением к ней этого символа. В ветку 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() строка разделяется на слова по пробелам. При этом неважно сколько их. Далее остается только снова собрать слова в строку через "*":

s = input()
l = s.split()
s1 = ''
for i in l:
	s1 += i + '*'
s1 = s1[:-1] # удаляем последнюю "*"	
print(s1)

надо изменить название

def browseClicked(self):
        f, _ = QtGui.QFileDialog.getOpenFileName(self) # тут указывается строка над которой будем работать
        if f!="":
            self.fileEdit.setText(f)
            count = 0
            print(f)
            for i in f:
               if i =="/":
                   f.replace(f[0:count], '')
                   print(count)
            count = count +1
            print(f)
            #self.qlist.addItem(f)
надо чтобы не было / и не было того что находится между ними

Генерация строки и встроенные методы

import random, string
 
stroka = ''
for i in xrange(0,40):
    if random.randint(0,1):
        stroka = stroka + random.choice(string.ascii_lowercase)
    else:
        stroka = stroka + ' '
 
stroka = stroka.strip()
 
for key in stroka:
    stroka = stroka.replace(' ','*')
    stroka = stroka.replace('**','*')
 
print stroka

s = input()l = s.split()s1

s = input()
l = s.split()
s1 = '*'.join(l)

либо

s = input()
s1 = '*'.join(s.split())