私はこのプロジェクトを学校にしています。私はそれを終えるのにとても近いですが、ちょうどうまく動作しないようなものがあります。私が持っている機能の一つは、次のとおりです。ほとんどの部分について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')
を、(私の割り当てに従って)行うことになっているように、それは3464408の代わりに346448を返します。今私は関数が私にコードに基づいて正しい答えを与えている知っているが、私はそれが8の前に0を含めるために逃しているのですか?
EDIT:
機能は、指定した文字列(トーン)に乗り、2つの文字のチャンク(母音/子音ペア)にそれを破ることになっています。ペアでは、ペアを使用し、それらに母音/子音を添えて番号を返すことになっています。子音[H]を与えるので>>> alphapinDecode( 'HI')は、27を返しIDX = 5母音[i]が与えながらIDX2 = 2
以下のようにしてみてください、そしてどのようにしてください。 – DyZ
申し訳ありません私はやったと思っていましたが、あなたが渡した文字列(音色)を2つの文字チャンク(母音/子音のペア)に分割することになっていました。ペアでは、ペアを使用し、それらに母音/子音を添えて番号を返すことになっています。 >>> alphapinDecode( 'hi') は、子音[h]がidx = 5を与えるため、母音[i]がidx2 = 2を与えるため、27を返します。 – user2951723
質問を更新して、 – DyZ