Ваша функция будет работать без изменений.когда вы n.split()
генерируете список слов, n.split() == ['hello', 'My', 'name', 'Is']
, поэтому, когда вы повторяете for word in n.split(): if word in my_list
, вы сравниваете такие слова, как name
с отдельными буквами в my_list
, вы никогда не получите совпадения.вместо этого вы должны использовать другой уровень вложенности, for i in word
, тогда он будет работать!(Также нет необходимости создавать список из alphabet
для этого случая, вы можете использовать его как есть)
alphabet = "abcdefghijklmnopqrstuvwxyzæø˚a ?"
n= input()
def textis():
for word in n.split():
for i in word:
if i in alphabet:
pass
else:
word = word.replace(i,"?")
print(word)
textis()
Все это время ваша программа по-прежнему возвращает все слова в отдельных строках инемного поработав над задачей, вместо этого что-то вроде этого сделало бы свое дело.
s = input('Enter a word: ')
for i in s:
if i not in alphabet:
s = s.replace(i, '?')
# hello ?y name ?is