Python

Python, помогите пожалуйста

В строке имеется несколько слов, разделенных одним или несколькими пробелами. Требуется убрать из текста лишние пробелы: два и более пробелов подряд, а также все пробелы в начале и в конце строки.
Вот мой код на 4 и 5 тесте пишет ошибка выполнения, остальные на ок, что не так?
s = input()
s = s.lstrip()
s = s.rstrip()
f = len(s)
t = str()
for i in range(len(s)):
if s[i] != " ":
t += s[i]
count = 0
else:
count += 1
if count == 1:
print(t, end = " ")
t = ""
t = ""
while s[f - 1] != " ":
t += s[f - 1]
f -= 1
print(t[::-1])
Без отступов тут всё не так. Будет не ошибка выполнения, а ошибка компиляции. Предлагаешь угадывать, какие операторы вложенные, а какие - нет?

В общем, без регулярок, сплитов и замен, и в один проход, это делается так:
 from itertools import pairwise
print(''.join(c for c, d in pairwise(input().strip() + ' ') if not (c == d == ' ')))

Или так:
 s = input().strip()
print(''.join(s[i] for i in range(len(s) - 1) if not (s[i] == s[i+1] == ' ')) + s[-1])
Даниил Чупинин
Даниил Чупинин
87 571
Лучший ответ
Даулет Камбаров ну так скопировалось
 import re
print(re.sub(r'\s+', ' ', input().strip()))
 s, s0 = input().strip(), ''
while s != s0: s, s0 = s.replace(' ', ' '), s
print(s)
 s = input().strip()
for i in range(len(s) - 2, -1, -1):
if s[i] == ' ' and s[i + 1] == ' ': s = s[:i] + s[i + 1:]
print(s)
 s, t = input().strip(), ''
for i in range(len(s)):
if s[i] != ' ' or s[i - 1] != ' ': t += s[i]
print(t)
Ваша задача решается так:
 print(' '.join(input().strip().split())) 
Берем input(), методом strip() убираем все пробелы в начале и в конце строки. Затем, методом split() разбиваем текст в список всех символов, разделенных любым количеством пробелов, и методом ' '.join() возвращаем эти символы к строке, оставляя между ними только один пробел.
Олег Рябов
Олег Рябов
4 183
 s = input() 
s = s.strip()
result = ""
count = 0

for i in range(len(s)):
if s[i] != " ":
result += s[i]
count = 0
else:
count += 1
if count == 1:
result += " "

print(result)
Eduard Geis
Eduard Geis
216