Мой подход состоял бы в том, чтобы оставить последний доступный символ и принять решение, является ли он пробелом или нет:

ребования

Используйте Python для создания функцииcleanstring(S) «очистить» пробелы в предложенииS.

Предложение может иметь дополнительные пробелы в начале и / или в конце и / или между словами.Подпрограмма возвращает новую версию предложения без лишних пробелов.То есть в новой строке слова должны быть одинаковыми, но в начале не должно быть пробелов, только один пробел между каждым словом и без пробелов в конце.

Эта программа о том, что вы пишете код для поиска по строке, чтобы найти слова, и поэтому вам не разрешено использовать функцию split в Python.

Вы можете решить эту проблему с помощью базовых возможностей операторов if и while и строковых операций len и конкатенации.

Например: если ввод: «Привет миру!» тогда вывод должен быть: "Привет миру!"

Вопрос

Моя программа удаляет больше символов в программе, чем необходимо.

Вход: "Привет, мир!"

Выход: «Адский мир»

Как я могу исправить ошибку в моей программе?

def cleanupstring (S):
    newstring = ["", 0]
    j = 1
    for i in range(len(S) - 1):
        if S[i] != " " and S[i+1] != " ":
            newstring[0] = newstring[0] + S[i]
        else:
            newstring[1] = newstring [1] + 1
    return newstring

# main program

sentence = input("Enter a string: ")

outputList = cleanupstring(sentence)

print("A total of", outputList[1], "characters have been removed from your 
string.")
print("The new string is:", outputList[0]) 

Ответы на вопрос(3)

Ваш ответ на вопрос