【转】我的第一个Python小程序

原文网址:http://blog.csdn.net/randyqiu/article/details/4484089

人的每个第一次都有点特别的意义,所以下面这个小程序我把他记录下来做个纪念。

因为要做电子海图显示方面的东西,在相关的论坛上面看到有些大牛说GDAL和PIL结合可以比较方便的绘制矢量图形。顾名思义,PIL(Python Imaging Library)是建立在Python的基础上的,所以从前天开始下载了Python2.6,看了Python简明手册,在这个手册的最后,作者建议初学者做这样一个程序,即实现:创建你自己的命令行 地址簿程序。在这个程序中,你可以添加、修改、删除和搜索你的联系人(朋友、家人和同事等等)以及它们的信息(诸如电子邮件地址和/或电话号码)。这些详细信息应该被保存下来以便以后提取。

 

经过几小时的折腾,程序代码如下:(顺便说下,Python真的比较好上手,比起当初学VC/MFC可是轻松多了,当然也或许有部分原因是已经经历过了c++)

 

[python] view plaincopy
 
  1. #MyFirstIntegratedPythonProgram  
  2. import cPickle as P  
  3.   
  4. class notebook:  
  5.     dictnote={}  
  6.     def __init__(self):  
  7.         notebook.dictnote={'Randy':'12347865',  
  8.                            'Jackson':'67549087',  
  9.                            'Mary':'56432876'}  
  10.         f=file('storeFile.txt','a')  
  11.         P.dump(notebook.dictnote,f)  
  12.         f.close()  
  13.     def __del__(self):  
  14.         f=file('storeFile.txt','a')  
  15.         P.dump(notebook.dictnote,f)  
  16.         f.close()  
  17.         notebook.dictnote={}  
  18.           
  19.     def delInfo(self,name):  
  20.         while notebook.dictnote.__contains__(name)==False:  
  21.             print "数据库中没有该联系人的信息,请检查输入是否有误!"  
  22.             break  
  23.         else:  
  24.             del notebook.dictnote[name]    
  25.             #dictnote.__delitem__(name)  
  26.             f=file('storeFile.txt','w')      
  27.             P.dump(notebook.dictnote,f)      
  28.             f.close()                        
  29.     def addInfo(self,name,phone_number):     
  30.         while notebook.dictnote.__contains__(name)==True:  
  31.             print "数据库中已经有该联系人的信息,请确认输入无误!"  
  32.             break  
  33.         else:  
  34.             notebook.dictnote.__setitem__(name,phone_number)  
  35.     def inquiryInfo(self,name):  
  36.         while notebook.dictnote.__contains__(name)==False:  
  37.             print "数据库中没有该联系人的信息,请检查输入是否有误!"  
  38.             break  
  39.         else:  
  40.             print "你查询的联系人姓名是:'%s',电话号码是:'%s'" %/  
  41.               (name,notebook.dictnote.__getitem__(name))  
  42.     def inquiryAll(self):  
  43.         print "所有联系人的信息如下所示:/n%s"%notebook.dictnote  
  44.     def amendInfo(self,name):  
  45.         addr=raw_input("请确定修改后的地址是:")  
  46.         notebook.dictnote[name]=addr      
  47.         print "现在该联系人的信息为:",name,notebook.dictnote[name]  
  48.               
  49.   
  50.   
  51. flag=True  
  52. MyNoteBook=notebook()  
  53. while flag==True:      
  54.     answer=raw_input('请确认你想"浏览联系人(L)"、"查询联系人(C)"、"添加联系人(T)"、/  
  55. "修改联系人(X)"、"删除联系人(S)"、"退出本程序(E)"?')  
  56.       
  57.     if answer=='C':  
  58.         key=raw_input('请输入想查询的联系人姓名:')  
  59.         MyNoteBook.inquiryInfo(key)  
  60.           
  61.     elif answer=='T':  
  62.         key_name=raw_input('请输入想添加的联系人姓名:')  
  63.         key_phone=raw_input('请输入该联系人的电话号码:')  
  64.         MyNoteBook.addInfo(key_name,key_phone)  
  65.           
  66.     elif answer=='S':  
  67.         key=raw_input('请输入想删除的联系人姓名:')  
  68.         MyNoteBook.delInfo(key)  
  69.           
  70.     elif answer=='X':  
  71.         key=raw_input('请输入想修改的联系人姓名:')  
  72.         MyNoteBook.amendInfo(key)  
  73.   
  74.     elif answer=='L':  
  75.         MyNoteBook.inquiryAll()  
  76.           
  77.     elif answer=='E':  
  78.         flag=False  
  79.     else:  
  80.         print "请确认你输入的是字母'C','T','S','E',即希望进行操作:查询、添加、删除/  
  81.                 以及退出!"  

 

posted on 2015-01-21 10:34  wi100sh  阅读(365)  评论(0编辑  收藏  举报

导航