Хорошие усилия. Вы почти у цели. Congrats. Я сделал минимальные изменения в вашем коде. Все, что я сделал, это разделил предложение на слова (а затем разделил каждый символ слова) и применил логику обращения c к каждому разделенному списку слов. Также была пропущена проверка ..isdi git (), поскольку согласно предварительному условию 3 слово может состоять как из алфавитов, так и из ди git. Это все. Отдых - это ваш код.
Я предположил, что слова разделены 1 и только 1 пробелом. Если нет, используйте модуль re.
Ниже приведен код. Если вы ничего не понимаете, пожалуйста, спросите.
def swap(a, b):
return b, a
def reverse_each_word(sentence):
list_of_string = [i for i in sentence.split(" ")]
Finalresult = ""
for eachString in list_of_string:
eachString = [x for x in eachString]
r = len(eachString) - 1
l = 0
while l < r:
if not (eachString[l].isalpha() or eachString[l].isdigit()):
l += 1
elif not (eachString[r].isalpha() or eachString[r].isdigit()):
r -= 1
else:
eachString[l], eachString[r] = swap(eachString[l], eachString[r])
l += 1
r -= 1
result = "".join(eachString)
Finalresult += (result+" ")
return Finalresult
print(reverse_each_word( 'Hello! cu2 Ayaan...'))
Вывод
olleH! 2uc naayA...