Прежде всего: пожалуйста, имейте в виду, что я очень новичок в программировании.
Я пытаюсь написать простую программу на Python, которая заменит согласные в строке на согласную + «о» + согласную. Например, «b» будет заменено на «bob», а «d» будет заменено на «dod» (поэтому слово «python» будет заменено на «popytothohonon»).
Для этого я создал словарь, содержащий пары b:bob,c:coc,d:dod и т. д. Затем я использовал команду replace(), чтобы прочитать слово и заменить согласные на их перевод в словаре. Полный фрагмент кода выглядит так:
def replacer(text):
consonant='bcdfghjklmnpqrstvwxz'
lexicon={}
for x in range(0,len(consonant)):
lexicon[x]=(consonant[x]),(consonant[x]+'o'+consonant[x])
for i,j in lexicon.items():
text=(text.replace(i,j))
return text
Теперь, когда я пытаюсь вызвать эту функцию, я получаю следующую ошибку:
Traceback (most recent call last):
File "D:\x\x.py", line 37, in <module>
print(replacer("python"))
File "D:\x\x.py", line 17, in replacer
text=(text.replace(i,j))
TypeError: Can't convert 'int' object to str implicitly
Но я не использую целые числа! Со словарем должно быть что-то не так, потому что все работает, когда я делаю это "вручную" вот так:
list={'b':'bob', 'c':'coc', 'd':'dod', 'f':'fof', 'g':'gog', 'h':'hoh'......}
Но когда печатаю "нерукотворный" словарь вроде бы все в порядке:
{0: ('b', 'bob'), 1: ('c', 'coc'), 2: ('d', 'dod'), 3: ('f', 'fof')........
Что я делаю не так?