对Python系统程序广泛应用说明

开发 后端
最初设计Python系统程序的人也许并没有想到今天Python语言会在工业和科研上获得如此广泛的使用,这也让许多用户非常满意。

Python系统程序是一种简单易学,功能强大的解释型编程语言,它有简洁明了的语法,高效率的高层数据结构,同时,他还想实现在 ABC 中闪现过但未曾实现的东西。

因为要做电子海图显示方面的东西,在相关的论坛上面看到有些大牛说GDAL和PIL结合可以比较方便的绘制矢量图形。顾名思义,PIL(Python Imaging Library)是建立在Python的基础上的,所以从前天开始下载Python系统程序,看了Python简明手册。

在这个手册的***,作者建议初学者做这样一个程序,即实现:创建你自己的命令行 地址簿 程序。在这个程序中。你可以添加、修改、删除和搜索你的联系人(朋友、家人和同事等等)以及它们的信息(诸如电子邮件地址和/或电话号码)。这些详细信息应该被保存下来以便以后提取。

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

  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.                 以及退出!" 

【编辑推荐】

  1. 有关Python系统文件进行介绍指导
  2. 如何正确的使用Python函数
  3. Python 构建工具进行详细介绍分析
  4. PythonAndroid浅析Python优势所在
  5. 如何使用Python模块解析配置文件?
责任编辑:chenqingxiang 来源: CSDN
相关推荐

2010-03-09 16:16:55

Python字符串

2010-03-15 16:06:52

2010-04-27 13:26:56

虚拟化

2023-06-26 17:37:54

人工智能AI

2023-09-11 16:36:50

谷歌机器学习

2020-08-03 10:11:04

物联网人工智能技术

2012-05-14 09:20:18

移动CRM

2022-07-07 00:03:05

NFT区块链网络安全

2013-11-26 15:46:36

Openstack

2010-08-26 10:55:45

DB2管理企业

2010-02-22 14:54:47

Python应用程序

2011-05-10 09:20:30

2018-10-08 13:23:52

区块链金融加密数字货币

2012-05-21 09:56:58

虚拟化容灾备份

2024-03-05 16:07:00

2010-08-27 10:42:08

DB2金融应用

2017-12-29 08:45:41

超融合基础设施

2014-12-16 12:47:20

非持续性VDI

2023-10-06 20:12:28

MUX VLAN网络

2019-09-02 17:03:23

混合云云计算企业
点赞
收藏

51CTO技术栈公众号