因此,我對編程頗爲陌生,最近剛剛開始使用Classes,我們應該製作一個可以加載到單獨文本文件中的電話簿。For循環錯誤:列表索引超出範圍
但是我仍然在本節中遇到問題,當我進入for-loop。它擊中
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")
爲什麼'len(permaStorage)+ 1' in'for i in range(0,len(permaStorage)+1):'? –
我添加了一個定義的範圍等於permaStorage的長度。 +1是首先讓它開始,但最有可能沒有必要,並且稍後會導致問題。 –