• 用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写的,不知道为什么不能写中文注释,有哪位知道原因能不能给说明下,先谢谢了。

  • 相关阅读:
    Idea快捷键
    Java学习之路--书籍推荐
    泵式等待基元
    uni-app,wex5,APPcan,ApiCloud几款国内webapp开发框架的选型对比
    前端框架2019 云开发
    select2 javascript控件 如何设置指定的值
    Github 索引
    linux
    WPF 中的 Uri 地址的不同写法
    WPF GridSplitter 使用技巧
  • 原文地址:https://www.cnblogs.com/liushaobo/p/3017511.html
Copyright © 2020-2023  润新知