class Phone_book: #Please note that this line of code has no indentation, all other lines has at least one indentation.
def __init__(self):
self.phoneDic = {}
commandsDic = { "add" : self.add , "lookup" : self.lookup , "alias" : self.alias,
"change" : self.change , "save" : self.save,
"load" : self.load , "quit" : self.i_quit }
while True:
a = input("Phone book")
b = a.split() #Splits a line of text into list items
try:
commandsDic[b[0]](*b[1:]) #Allocates
except TypeError:
print("This function does not work")
except KeyError:
print("You have written an incorrect amount of arguments")
except SystemExit:
print("Exiting...")
break
def add(self, allonym, digit):
print("Name:", allonym, "\nNumber", digit, "\nSaved in phone book!")
self.phoneDic[digit] = [allonym]
def encounter(self, allonym):
found = 0
phno = 0
for digit, allonyms in self.phoneDic.items():
if allonym in allonyms:
phno = digit
found += 1
if found == 0:
return 0
elif found == 1:
return phno
else:
return -1
def alias(self, allonym, newallonym):
if newallonym:
phno = self.encounter(allonym)
if phno > 0:
self.phoneDic[phno].append(newallonym)
print("Alias stated")
函数alias
的目的是为同位异名本身创建一个昵称,并与同位异名一起保存在内存中。当我得到TypeError时,我无法使函数工作。如何减轻错误并使别名保存并与allonym配对
执行
Input: Phone bookadd Bromley.Jones 12345 Output: Name: Bromley.Jones Number 12345 Saved in phone book! Input: Phone bookalias Bromley.Jones BJ Output: This function does not work.
异名和名字有着相同的语言定义。 异名和名字有着相同的语言定义
有两个问题。首先,在
encounter
中:它将始终返回0
,除非您正在搜索的项目是第一个,因为if
块位于for
内。找到后,您只需返回:然而,这里的一个问题与第二个问题有关:字典中的键是字符串,但您将其视为int。如果找不到,我会将上述函数更改为返回
None
。然后在alias
函数中:相关问题 更多 >
编程相关推荐