1

私は Python プログラミングの初心者で、いくつかのビデオと Web サイトのチュートリアルに従っています。いくつかのプログラミング練習問題に取り組んでいますが、デバッグに問題があります。これが私の最初の練習用プログラミングです。この関数は文字列を受け取り、それを数値のリストに変換します。したがって、「a」は 0 になり、「b」は 1 になります。これは非常に簡単に見えますが、「IndexError: リスト インデックスが範囲外です」というエラーが発生します。いくつか試してみましたが、何が問題なのかわかりません。誰かが私のコードを見て、明らかな間違いを犯していないかどうかを確認できますか? すべてのヘルプは大歓迎です!

    import sys
    import string
    import math

    def string2nlist(m):
    characters =    ['a''b''c''d''e''f''g''h''i''j''k''l''m''n''o''p''q''r''s''t''u''v''w''x''y''z']
    numbers = ['0''1''2''3''4''5''6''7''8''9''10''11''12''13''14''15''16''17''18''19''20''21''22''23''24''25']
    newList = []
    msgLen = len(m)         # var msgLen will be an integer of the length

    print 'Message before conversion: ' + m

    index = 0               # iterate through message length in while loop
    while index < msgLen:
        letter = m[index]   # iterate through message m
        i = 0
        while i < 26:
            if letter == characters[i]:
                newList[index] = numbers[i]
            i = i + 1
        index = index + 1
    print newList
    return newList


    message = 'hello'
    newMessage = string2nlist(message)

    print 'Message after conversion: ', newMessage
4

2 に答える 2

0

これ:

characters = ['a''b''c''d''e''f''g''h''i''j''k''l''m''n''o''p''q''r''s''t''u''v''w''x''y''z']
numbers = ['0''1''2''3''4''5''6''7''8''9''10''11''12''13''14''15''16''17''18''19''20''21''22''23''24''25']

Python は隣接する文字列リテラルを単一の文字列にコンパイルします。これは多くの場合に役立ちますが、残念ながら、リストが次のようになったことを意味します。

characters = ['abcdefghijklmnopqrstuvwxyz']
numbers = ['012345678910111213141516171819202122232425']

前述のように、文字の間にコンマを追加します。

于 2013-03-29T16:59:13.080 に答える
0

リストの形式が正しくないようです。試す:

characters =    ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z']
numbers = ['0','1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25']
于 2013-03-29T16:56:25.817 に答える