のうちリストインデックスだから私はプログラミングにかなり新しいですし、ちょうど最近クラスで開始し、私たちは別々のテキストファイルにロードできる電話帳を作ることになっています。forループエラー:範囲
私は、しかし、私は、forループに入ることをこのセクションの問題に実行し続けます。それは
if storage[2] == permaStorage[i].number:
にレンガの壁に当たったと私に語っ「はIndexError:範囲外のリストインデックス」。私はそれがpermaStorageが空になっていることによるとはほとんど確信していますが、電話帳の一時的なインスタンスでそれを記入しようとしても、それは範囲外です。それが存在する主な理由は、permaStorage内に電話番号がすでに存在するかどうかを確認することです。
誰もがこの問題を解決するか、それを回避する方法についての良いヒントを得ましたか。
class Phonebook():
def __init__(self):
self.name = ''
self.number = ''
def Add(name1, number1):
y = Phonebook()
y.name = name1
y.number = number1
return y
def Main():
permaStorage = []
while True:
print " add name number\n lookup name\n alias name newname\n change name number\n save filename\n load filename\n quit\n"
choices = raw_input ("What would you like to do?: ")
storage = choices.split(" ")
if storage[0] == "add":
for i in range(0, len(permaStorage)+1):
if storage[2] == permaStorage[i].number:
print "This number already exists. No two people can have the same phonenumber!\n"
break
if i == len(permaStorage):
print "hej"
try:
tempbox = Add(storage[1], storage[2])
permaStorage.append(tempbox)
except:
raw_input ("Remember to write name and phonenumber! Press any key to continue \n")
はなぜ'範囲(0、LEN(permaStorage)+1)で '私のために(permaStorage)で+ 1 'lenは? –
私はpermaStorageの長さに等しい定義された範囲を持つようにそれを加えました。 +1はそれを最初から始めることでしたが、必要性はほとんどなく、後で問題を引き起こします。 –