python 学习(一)
实践证明,久坐伤妖。周末最难受的时候,穿袜子手都够不着。卧床养妖时,看了一遍《Python简明教程》。想起曾回答过同事的一个问题,“计算机方面的知识早荒废多年”。可是这方面的兴趣还有没有磨灭完。
以前学过一段时间C/C++,略通皮毛,也没写过多少代码;最长的也不足千行,最终还是半成品。遥想当年,那还是在乡下做老师时的故事。翻看Python,是由于工作的原因,想了解一些数据分析方面的知识(不提数学,提起来都是伤心事)。
对照相关语法写的一段代码:
"""通讯录管理 """ class Address: p = {} personNum = 0 #初始化通讯录 def __init__(self): self.personNum = 0 print('现有%d位联系人.'%self.personNum) #查找指定姓名的联系人 def search(self,name): if(name in self.p): return 1 else: return 0 #添加联系人 def addPerson(self): print('输入姓名:'), name = input() print('输入电话号码:'), tele = input() self.p[name]= tele self.personNum += 1 print('添加联系人成功!'), #print('共有联系人%d。'%self.personNum) #删除指定联系人 def delPerson(self,name): del(self.p[name]) #显示通讯录 def disp(self,name=''): if name == '': for n,t in self.p.items(): print('%s\t%s'%(n,t)) else: print('%s\t%s'%(name,self.p[name])) #保存到文件 def save(self): of = open('addrs.txt','a') for name in self.p: of.write(name+'\t'+self.p[name]+'\r') of.close() #从文本文件导入 def import_from_file(self): try: file = open('addrs.txt', 'r') except: raise ValueError('File open failers.') while True: aline = file.readline() if aline: aline = aline.rstrip() t = aline.rfind('\t') self.p[aline[0:t]] = aline[t+1:] else: break file.close() def menu(): print('1. 打开通讯录') print('2. 新建通讯录') print('3. 添加联系人') print('4. 查询联系人') print('5. 删除联系人') print('6. 保存') print('7. 退出') print('请选择(1-7)') # def main(): while 1: menu() cmd = input() if cmd > '7' or cmd < '1': print('\nERROR:请输入前菜单对应序号!\n') if cmd == '6': myadd.save() if cmd == '1': myadd = Address() myadd.import_from_file() if cmd == '2': myadd = Address() print('已经新建通讯录\n') myadd.disp() if cmd == '3': myadd.addPerson() myadd.disp() if cmd == '4': name = input('输入你要查询的姓名:') if (myadd.search(name) == 1): myadd.disp(name) else: print("未查到!\n") if cmd == '5': name = input('输入你要查询的姓名:') if (myadd.search(name) == 1): myadd.delPerson(name) else: print('请输入正确的联系人!\n') myadd.disp() if cmd == '7': exit() if __name__ == "__main__": main()
几点感受(对比c/c++):
1. 不用担心数据类型,无需注明数据类型直接用。
2. 不用担心";"号了。
3. 没有了熟悉的数组char[]、指针等;没有了“||”、“&&”等运算符。
4. 循环结构语法简单,写代码的效率提升了。
5. 显示功能变化了。