#!/usr/bin/env python
# -*- coding:utf-8 -*- # 1.简述编写类和执行类中方法的流程。
"""
编写:
class Person:
def __init__(self, send):
self.name = name
def name(self):
pass
def age(self):
pass 执行:
a = Person()
a.name()
a.age()
""" # 2.简述面向对象三大特性?
'''
封装 / 继承 / 多态
''' # 3.将以下函数改成类的方式并调用 :
'''
def func(a1):
print(a1)
''' '''
class Fun:
def func(self,a1):
print(a1) a = Fun()
a.func(1)
''' # 4.面向对象中的self指的是什么?
'''
指调用该函数的对象
''' # 5.以下代码体现面向对象的什么特点?
"""
class Person:
def __init__(self, name, age, gender):
self.name = name
self.age = age
self.gender = gender obj = Person('武沛齐', 18, '男')
# 封装
""" # 6.以下代码体现面向对象的什么特点?
'''
class Message:
def email(self):
"""
发送邮件
:return:
"""
pass def msg(self):
"""
发送短信
:return:
"""
pass def wechat(self):
"""
发送微信
:return:
"""
pass # 封装
''' # 7.看代码写结果
'''
class Foo:
def func(self):
print('foo.func') obj = Foo()
result = obj.func()
print(result)
# foo.func None
''' # 8.定义个类,其中有计算周长和面积的方法(圆的半径通过参数传递到初始化方法)。
'''
class Func:
def __init__(self, r):
self.r = r def zhouchang(self):
return 2*3.14*self.r def mianji(self):
return 3.14*self.r**2 a = Func(1)
print(a.zhouchang(), a.mianji())
''' # 9.面向对象中为什么要有继承?
'''
把相同的属性和方法归到基类中,不需要再次编写相同的代码.
''' # 10.Python继承时,查找成员的顺序遵循什么规则?
'''
从左到右查找.
''' # 11.看代码写结果
'''
class Base1:
def f1(self):
print('base1.f1') def f2(self):
print('base1.f2') def f3(self):
print('base1.f3')
self.f1() class Base2:
def f1(self):
print('base2.f1') class Foo(Base1, Base2):
def f0(self):
print('foo.f0')
self.f3() obj = Foo()
obj.f0()
# foo.f0 base1.f3 base1.f1
''' # 12.看代码写结果:
'''
class Base:
def f1(self):
print('base.f1') def f3(self):
self.f1()
print('base.f3') class Foo(Base):
def f1(self):
print('foo.f1') def f2(self):
print('foo.f2')
self.f3() obj = Foo()
obj.f2()
# foo.f2 foo.f1 base.f3
''' # 13.补充代码实现
"""
需求
1. while循环提示用户输入:用户名、密码、邮箱(判断是否有@)
2. 为每个用户创建 个对象,并添加到列表中。
3. 当列表中的添加 3个对象后,跳出循环并以此循环打印所有用户的姓名和邮箱
""" """
class Func:
def __init__(self, user, pwd, email):
self.user = user
self.pwd = pwd
self.email = email
s = '用户:%s,邮箱:%s' % (self.user, self.email) user_list = []
while True:
user = input("请输入用户名:")
pwd = input("请输入密码:")
email = input("请输入邮箱:")
if '@' not in email:
print('请输入正确的邮箱!')
continue
a = Func(user, pwd, email)
user_list.append(a)
if len(user_list) == 3:
break for i in user_list:
print(i.user, i.email)
""" # 14.补充代码:实现用户注册和登录。 class User:
def __init__(self, name, pwd):
self.name = name
self.pwd = pwd class Account:
def __init__(self):
# 用户列表,数据格式:[user对象,user对象,user对象]
self.user_list = [] def login(self):
"""
用户登录,输入用户名和密码然后去self.user_list中校验用户合法性
:return:
"""
while 1:
print('***登陆***')
username = input('请输入帐号:')
password = input('请输入密码:')
status = False
for i in range(len(self.user_list)):
if username == self.user_list[i].name and password == self.user_list[i].pwd:
status = True
break
if status:
print('登陆成功!')
return
print('用户名或密码错误!请重新输入!') def register(self):
"""
用户注册,没注册一个用户就创建一个user对象,然后添加到self.user_list中,表示注册成功。
:return:
"""
print('***注册***')
username = input('请输入账号:')
pwd = input('请输入密码:')
user = User(username, pwd)
self.user_list.append(user)
print('注册成功!') def run(self):
"""
主程序
:return:
"""
while 1:
dic = {'1': self.register, '2': self.login}
print('''
1.注册
2.登陆''')
a = input('请选择(N/n退出):')
if a.upper() == 'N':
return
if dic.get(a) == None:
print('输入有误!请重新输入!')
continue
dic.get(a)() if __name__ == '__main__':
obj = Account()
obj.run()

day19面向对象 , 用户注册和登录的更多相关文章

  1. PHP 用户注册与登录

    网站用户注册与登录是很常用的一个功能,本节教材就以此来演示一下 PHP 中如何开发用户注册与登录模块. 本节需要用到的重点 PHP 基础知识: PHP 中预定义 $_POST 和 $_GET 全局变量 ...

  2. Django学习笔记(9)—— 开发用户注册与登录系统

    一,项目题目: 开发用户注册与登录系统 该项目主要练习使用Django开发一个用户注册与登录的系统,通过这个项目然后巩固自己这段时间所学习的Django知识. 二,项目需求: 开发一个简单的用户登录与 ...

  3. Android基于XMPP Smack Openfire下学习开发IM(一)实现用户注册、登录、修改密码和注销等

    http://blog.csdn.net/h7870181/article/details/8653865 以前学习过用Scoket 建立聊天,简单的建立聊天是没问题的,但如果要实现多人复杂的聊天,后 ...

  4. openfire Android学习(一)----实现用户注册、登录、修改密码和注销等

    以前学习过用Scoket 建立聊天,简单的建立聊天是没问题的,但如果要实现多人复杂的聊天,后台服务器代码就比较复杂,对于我这新手来讲就比较难了.后来在网上看到用openfire做服务器,利用强大的Sm ...

  5. Django学习笔记(16)——扩展Django自带User模型,实现用户注册与登录

    一,项目题目:扩展Django自带User模型,实现用户注册与登录 我们在开发一个网站的时候,无可避免的需要设计实现网站的用户系统.此时我们需要实现包括用户注册,登录,用户认证,注销,修改密码等功能. ...

  6. 吴裕雄 python 人工智能——智能医疗系统后台用户注册、登录和初诊简约版代码展示

    #用户注册.登录模块 #数据库脚本 CREATE TABLE usertable( userid number(8) primary key not null , username varchar(5 ...

  7. PHP用户注册与登录完整代码【4】

    login.html <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http:// ...

  8. PHP用户注册与登录【1】

    需求分析 主要功能分为 用户注册.用户登录.用户退出.用户中心 四个部分. 用户注册 用户注册主要功能有: 注册信息表单填写界面 javascript 脚本初步检测用户输入的注册信息. 注册处理模块检 ...

  9. Flask -- 使用数据库(Sqlite3)、用户注册、登录注销、修改密码

    # 使用sqlite数据库 import sqlite3from contextlib import closing app.config.update( DATABASE = 'my.db', #相 ...

随机推荐

  1. 重庆3Shape CAMbridge都有哪些功能

    三维打印技术创新领导者Objet Geometries公司和牙科领域三维扫描仪.CAD/CAM软件解决方案供应商3Shape A/S公司日前宣布两家公司合作研发的牙科领域三维修复解决方案已付诸实施.此 ...

  2. MyDAL - .QueryListAsync() 使用

    索引: 目录索引 一.API 列表 .QueryListAsync() .QueryListAsync<M>() 如: .QueryListAsync<AgentInventoryR ...

  3. zabbix配置邮件告警

    1.安装邮件服务 yum -y install mailx @qq.com #发邮件测试 2.添加报警媒介 输入接收告警邮件的邮箱 3.配置SMTP服务端 使用本机作为SMTP服务器 4.创建触发器 ...

  4. 导出zabbix监控数据

    linux memory: mysql -u zabbix -p -h 127.0.0.1 zabbix -e "select h.name, 100-AVG(hi.value_avg) f ...

  5. StringUtils工具类常用方法详解

    StringUtils 常用方法 1.isEmpty(String str) 是否为空,空格字符为false2.isNotEmpty(String str) 是否为非空,空格字符为true3.isBl ...

  6. 为什么要花钱学 Python,自学不好吗?

    买了这么多课程,有哪一门是你从头到尾听完,并且能将知识点学以致用的?如果你想成为一名相对优秀的程序员,建议你读完这篇文章,如果愿意可以分享给你的朋友. 2018过去的一年,对大多数互联网人来说,201 ...

  7. 使用try-with-resources优雅的关闭IO流

    Java类库中包括许多必须通过调用close方法来手工关闭的资源.例如InputStream.OutputStream和java.sql.Connection.客户端经常会忽略资源的关闭,造成严重的性 ...

  8. ThinkPad T400 键帽下面的X支架的安装方法

    有一台古老的T400,清理键盘的时候,X支架老化断了,淘宝买了几个支架,研究一下安装方法: 1.注意支架方向:上面是横向的细支架,下面是两个小孔2.用小螺丝刀把下面的两个小孔推进键盘下面的两个金属钩里 ...

  9. JVM进程占用CPU过高问题排查

    上午收到报警,某台机器上的CPU负载过高,通过逐步的排查,解决了问题,下面记录一下整个排查的过程. 首先,登录上对应的机器,通过top命令找到占用CPU过高的进程ID,也就是PID,为29126, 然 ...

  10. 快速实现兼容的js复制方式。有点非正规,通过非正规的排版实现。

    <div style="height:1px; width:1px; overflow:hidden; position:absolute;left:-2px;"> & ...