Итак, у меня есть этот проект для школы, и я настолько близок к его завершению, но есть тот, который я просто не могу заставить работать нормально. Одна из функций, которые у меня есть:Python: Письма к номерам не работают правильно
vowels = "aeiou"
consonants = "bcdfghjklmnpqrstvwyz"
def alphapinDecode(tone):
s = tone.lower()
pin = ''
for ch in s:
if ch in consonants:
idx = consonants.find(ch)
elif ch in vowels:
idx2 = vowels.find(ch)
pin = str(pin) + str(idx*5 + idx2)
print(pin)
return None
По большей части функция работает именно так, как я ее хочу. Я беру строку и возвращает числа в виде строки.
Например:
>>> alphapinDecode('bomelela')
3464140
Но когда я делаю это один:
>>>> alphapinDecode('bomeluco')
возвращает 346448 вместо 3464408, как предполагается сделать (по моему заданию). Теперь я знаю, что функция дает мне правильный ответ на основе кода, но что мне не хватает, чтобы он включал 0 перед 8?
EDIT:
Функция должна принимать строку, вы передаете (тон) и разбить его на 2-буквенных куски (гласный/согласный пара). С этой парой предполагается использовать пару и индексировать их с гласными/согласными и возвращать число. >>> alphapinDecode («привет») возвращает 27, потому что согласные [ч] дает IDX = 5, а гласные [я] дает idx2 = 2
Это поможет, если вы объяснили, что именно ваша функция должна делать и как. – DyZ
Извините, я думал, что сделал ... но он должен взять строку, которую вы проходите (тон), и разбить ее на 2 куска буквы (гласная/согласная пара). С этой парой предполагается использовать пару и индексировать их с гласными/согласными и возвращать число. >>> alphapinDecode ('hi') возвращает 27, потому что согласные [h] дают idx = 5, тогда как гласные [i] дают idx2 = 2 – user2951723
Пожалуйста, обновите свои вопросы, чтобы другие пользователи знали, что ответить. – DyZ