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. 显示功能变化了。

 

posted @ 2016-05-10 11:11  缁衣  阅读(189)  评论(0编辑  收藏  举报