Не запутайтесь между print
и return
.
Вам нужно внимательно посмотреть на выходные данные ваших методов (то, что они возвращают, а не то, что они печатают вконсоль):
- методы
strip()
и palin()
возвращают ссылки на себя, а не что-либо полезное, связанное с их входами. - метод
decode()
isn 't не возвращает ничего.
Чтобы исправить это, вы можете использовать переменную внутри вашего метода, которую вы строите на основе входных переменных, используя желаемую логику.Например:
def strip(text):
print("Your Lower case string is: ",text)
print("With the specials stripped: ")
stripped_text = "" # <-- create and initialise a return variable
for index in text:
if index in alphabet:
stripped_text += index # <-- update your return variable
print(index, end="")
print()
return stripped_text # <-- return the updated variable
Затем вам нужно сделать нечто подобное для decode()
, хотя здесь у вас уже есть выходная переменная (encrypted
), поэтому вам просто нужно return
в концеметод.
Метод palin()
не должен ничего возвращать: он просто распечатывает результат.
Как только вы это заработаете, вы должны подумать о том, как выможно использовать другие функции языка Python для более легкого достижения ваших целей.
Например, вы можете использовать replace()
для упрощения вашего strip()
метода:
def strip(text):
return text.replace('[^a-z ]','') # <-- that's all you need :)