zoukankan      html  css  js  c++  java
  • python3基础教程[第一版] 中

    date:2018.2.5

    第五章  面向对象编程

    1.python的面向对象

      pythpn的类:概念与c++差不多,不再赘述

      python的对象

    • 类对象
    • 实例对象
    • 细微注意点不再赘述

    2.定义和使用类

      class  类名:

        赋值语句...

        赋值语句...

      使用类

    3.对象的属性和方法

        对象的属性

          共享属性

          实例对象的私有属性

          对象的属性是动态的

          对象的方法

          类的伪私有属性和方法

          构造函数和析构函数:__init__和__del__

      4.类的继承

        简单继承

        定义子类的属性和方法

        调用超类的构造函数

        多重继承:按从左到右

      5.运算符重载

        加法运算符重载:__add__

        索引和分片重载:__getitem__、__setitem__、__delitem__

    自定义迭代器对象

    迭代器对象只能使用一次

    有多个迭代器的对象

    定制对象的字符串形式

    1. 只重载__str__方法
    2. 只重载__repr__方法
    3. 同时重载

    6.模块中的类

      用import或from导入类

    date:2018.2.6

    7.编程实战:用户注册信息管理系统

     

      1 from pickle import dump,load
      2 
      3 ##定义user 类,实例对象的uname属性存储用户名,pwd属性存储登陆密码
      4 class user:
      5     #构造函数__init__()创建实例对象时初始化用户名和登陆密码,默认值为None
      6     def __init__(self,uname=None,pwd=None):
      7         self.uname=uname
      8         self.pwd=pwd
      9 
     10     #修改用户名和密码
     11     def update(self,uname,pwd):
     12         self.uname=uname
     13         self.pwd=pwd
     14 
     15     #__repr__()方法定义对象打印格式
     16     def __repr__(self):
     17         return'username=%-16s password=%s'%(self.uname,self.pwd)
     18 ##user类代码结束
     19 
     20 ##函数showall()显示当前已注册用户信息
     21 def showall():
     22     global userlist
     23     if len(userlist)==0:
     24         print('	当前无注册用户...')
     25     else:
     26         print('	当前已注册用户如下:')
     27         n=0
     28         for x in userlist:
     29             n+=1
     30             print('	%d.'%n,x)
     31     input('	按enter键继续...')
     32     print()
     33 
     34 #查找已注册用户
     35 def find(namekey):
     36     global userlist
     37     n = -1
     38     for x in userlist:
     39         n += 1
     40         if x.uname == namekey:
     41             break
     42     else:
     43         n = -1
     44     return n
     45 #函数结束
     46 
     47 #修改或删除操作
     48 def check_updata():
     49     global userlist
     50     uname=input('	请输入要查找的用户名:')
     51     index=find(uname)
     52     if index==-1:
     53         print('	该用户不存在')
     54     else:
     55         print('	%s 已经注册! ' %uname)
     56         print('	  1.修改用户')
     57         print('	  2.删除用户')
     58         op=input('	输入序号:')
     59         if op == '2':
     60             del userlist[index]
     61             print('
    	已成功删除')
     62         else:
     63             uname=input('	请输入新用户名:')
     64             if uname=='':
     65                 print ('	输入无效')
     66             else:
     67                 pwd=input('	请输入登陆密码:')
     68                 if pwd=='':
     69                     print('	登陆密码无效')
     70                 else:
     71                     userlist[index].update(uname,pwd)
     72                     print('	已成功修改用户')
     73     input('	按enter键继续...')
     74     print()
     75 #函数结束
     76 
     77 #添加新用户
     78 def adduser():
     79     global userlist
     80     uname=input('	输入新的用户名:')
     81     if uname == '':
     82         print('	输入无效')
     83     else:
     84         if find(uname)>-1:
     85             print('	该用户名存在')
     86         else:
     87             pwd = input('	请输入登陆密码:')
     88             if pwd == '':
     89                 print('	登陆密码无效')
     90             else:
     91                 userlist.append(user(uname,pwd))   #关键
     92                 print('	已成功添加用户')
     93     input('	按enter键继续...')
     94     print()
     95 #函数结束
     96 
     97 #将用户信息保存进文件
     98 def save():
     99     global userlist
    100     myfile=open(r'userdate.bin','wb')
    101     global userlist
    102     dump(userlist,myfile)
    103     myfile.close()
    104     print('	已成功保存')
    105     print('	按enter键继续...')
    106     print()
    107 #函数结束
    108 
    109 #清空数据
    110 def clear():
    111     global userlist
    112     userlist.clear()
    113     print('	已成功清除所有数据')
    114     print('	按enter键继续...')
    115     print()
    116 #函数结束
    117 
    118 #程序启动#########
    119 myfile=open(r'userdate.bin','rb')
    120 x=myfile.read(1)
    121 if x==b'':
    122     userlist=list()
    123 else:
    124     myfile.seek(0)
    125     userlist=load(myfile)
    126 myfile.close()
    127 
    128 while True:
    129     print('	用户注册信息管理系统')
    130     print('	1.显示全部已注册用户')
    131     print('	2.查找修改删除用户信息')
    132     print('	3.添加新用户')
    133     print('	4.保存用户数据')
    134     print('	5.清空数据')
    135     print('	6.退出系统')
    136     print()
    137     no=input('请输入序号选择对应菜单:')
    138     if   no=='1':
    139         showall()
    140     elif no=='2':
    141         check_updata()
    142     elif no=='3':
    143         adduser()
    144     elif no=='4':
    145         save()
    146     elif no=='5':
    147         clear()
    148     elif no=='6':
    149         print('系统已退出')
    150         break
    151     else:
    152         print('请重新输入')
    153 
    154 #程序结束

     

    PS:有兴趣可自行测试,部分测试样例如下:

    用户注册信息管理系统
        1.显示全部已注册用户
        2.查找修改删除用户信息
        3.添加新用户
        4.保存用户数据
        5.清空数据
        6.退出系统
    
    请输入序号选择对应菜单:1
        当前无注册用户...
        按enter键继续...
    
        用户注册信息管理系统
        1.显示全部已注册用户
        2.查找修改删除用户信息
        3.添加新用户
        4.保存用户数据
        5.清空数据
        6.退出系统
    
    请输入序号选择对应菜单:3
        输入新的用户名:ten
        请输入登陆密码:23345
        已成功添加用户
        按enter键继续...
    
        用户注册信息管理系统
        1.显示全部已注册用户
        2.查找修改删除用户信息
        3.添加新用户
        4.保存用户数据
        5.清空数据
        6.退出系统
    
    请输入序号选择对应菜单:3
        输入新的用户名:jia
        请输入登陆密码:456754
        已成功添加用户
        按enter键继续...
    
        用户注册信息管理系统
        1.显示全部已注册用户
        2.查找修改删除用户信息
        3.添加新用户
        4.保存用户数据
        5.清空数据
        6.退出系统
    
    请输入序号选择对应菜单:3
        输入新的用户名:lu
        请输入登陆密码:111
        已成功添加用户
        按enter键继续...
    
        用户注册信息管理系统
        1.显示全部已注册用户
        2.查找修改删除用户信息
        3.添加新用户
        4.保存用户数据
        5.清空数据
        6.退出系统
    
    请输入序号选择对应菜单:1
        当前已注册用户如下:
        1. username=ten             password=23345
        2. username=jia              password=456754
        3. username=lu               password=111
        按enter键继续...
    
        用户注册信息管理系统
        1.显示全部已注册用户
        2.查找修改删除用户信息
        3.添加新用户
        4.保存用户数据
        5.清空数据
        6.退出系统
    
    请输入序号选择对应菜单:4
        已成功保存
        按enter键继续...
    
        用户注册信息管理系统
        1.显示全部已注册用户
        2.查找修改删除用户信息
        3.添加新用户
        4.保存用户数据
        5.清空数据
        6.退出系统
    
    请输入序号选择对应菜单:5
        已成功清除所有数据
        按enter键继续...
    
        用户注册信息管理系统
        1.显示全部已注册用户
        2.查找修改删除用户信息
        3.添加新用户
        4.保存用户数据
        5.清空数据
        6.退出系统
    
    请输入序号选择对应菜单:6
    系统已退出
    
    Process finished with exit code 0

     

     笔记第三篇见链接http://www.cnblogs.com/tenjl-exv/p/8422165.html

     

      

      

  • 相关阅读:
    Linux修改主机名称方法
    高精度模板(含加减乘除四则运算)
    背包问题(0-1背包,完全背包,多重背包知识概念详解)
    [Swust OJ 385]--自动写诗
    [Swust OJ 403]--集合删数
    [Swust OJ 409]--小鼠迷宫问题(BFS+记忆化搜索)
    [Swust OJ 360]--加分二叉树(区间dp)
    [Swust OJ 402]--皇宫看守(树形dp)
    [Swust OJ 581]--彩色的石子(状压dp)
    [Swust OJ 589]--吃西瓜(三维矩阵压缩)
  • 原文地址:https://www.cnblogs.com/tenjl-exv/p/8414646.html
Copyright © 2011-2022 走看看