用python写的命令行电话薄程序

python

最近读完了《A Byte of Python》,按照书上提示写了一个命令行电话薄程序(与书上要求相比略有缩减)。

程序比较糙,希望看到的大神能够不吝赐教……

以下是源代码

 1 #Filename: AddressBook.py

2

3 import pickle

4

5 class AddressBook:

6

7 filename = ''

8

9 def __init__(self, name, phone): #initialize class

10 self.name = name

11 self.phone = phone

12 self.personlist = {name : phone}

13 def add(self): #add item

14 name = input('Enter a name: ')

15 if name in self.personlist.keys():

16 print('The name is already existing!')

17 else:

18 phone = input('Enter a phone number: ')

19 self.personlist[name] = phone

20 print('Saved!')

21 def modify(self): #modify item

22 name = input('Enter a name: ')

23 if name not in self.personlist.keys():

24 print('Failure! The name not here: ')

25 else:

26 phone = input('Enter a new phone: ')

27 self.personlist[name] = phone

28 print('Modify successfully!')

29 def delete(self): #delete item

30 name = input('Enter a name: ')

31 if name not in self.personlist.keys():

32 print('The name is not here.')

33 else:

34 self.personlist.__delitem__(name)

35 print('Delete successfully!')

36 def search(self): #search item

37 name = input('Enter a name: ')

38 if name not in self.personlist.keys():

39 print('The name is not here.')

40 else:

41 print('Name: {0}, Phone: {1}' .format(name, self.personlist[name]))

42 def show(self): #show items

43 for name in self.personlist.keys():

44 print('Name: {0} Phone: {1}' .format(name, self.personlist[name]))

45 def dump(self): #dump data to disc

46 filename = self.name + '.data'

47 f = open(filename, 'wb')

48 pickle.dump(self.personlist, f)

49 f.close()

50 def load(self): #load data from disc

51 filename = self.name + '.data'

52 f = open(filename, 'rb')

53 self.personlist = pickle.load(f)

54 f.close()

55 if __name__ == '__main__':

56

57 command = ['add','modify','search','delete','quit' ,'show']

58 person = AddressBook('hahaha', 123456789)

59

60 ans = input("Do you want to load existing data from disc?(Y/N)")

61 if ans == 'Y':

62 person.load()

63

64 while True:

65 str = input('What are you going to do(add/modify/search/delete/show/quit)?')

66

67 if str in command:

68 if str == 'add':

69 person.add()

70 elif str == 'modify':

71 person.modify()

72 elif str == 'search':

73 person.search()

74 elif str == 'delete':

75 person.delete()

76 elif str == 'show':

77 person.show()

78 else:

79 answer = input("Your contacts list hasn't been saved,save it now?(Y/N)")

80 if answer == 'Y':

81 person.dump()

82 print('Dump successfully!')

83 else:

84 print ('Exit the System')

85 break

86 else:

87 print ('Please input the command!')

88

这个程序使用Wing IDE写的,不知道为什么不能写中文注释,有哪位知道原因能不能给说明下,先谢谢了。

以上是 用python写的命令行电话薄程序 的全部内容, 来源链接: utcz.com/z/388342.html

回到顶部