第二模块:函数编程 第3章·作业讲解

  • 01ATM作业讲解-做作业的步骤
  • 02ATM作业讲解-需求分析
  • 03ATM作业讲解-画流程图
  • 04ATM作业讲解-搭项目架构
  • 05ATM作业讲解-用户认证代码讲解
  • 06ATM作业讲解-用户认证代码和日志代码
  • 07ATM作业讲解-功能分发器代码讲解
  • 08ATM作业讲解-查看账户信息代码讲解
  • 09ATM作业讲解-取现功能代码讲解
  • 10ATM作业讲解-交易中心代码讲解
  • 11ATM作业讲解-后续功能思路讲解
  • 12员工信息表作业讲解-作业思路解析
  • 13员工信息表作业讲解-设计员工表在内存里的数据结构
  • 14员工信息表作业讲解-编写解析where语句的方法
  • 15员工信息表作业讲解-编写解析where语句条件过滤方法
  • 16员工信息表作业讲解-编写解析find语句的方法
  • 17员工信息表作业讲解-使打印数据变得好看
  • 18员工信息表作业讲解-开发update修改功能
  • 19员工信息表作业讲解-开发update修改功能2
  • 20员工信息表作业讲解-支持不加where的语句
  • 21员工信息表作业讲解-作业总结

01ATM作业讲解-做作业的步骤

1、作业步骤分析;

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# __Author__:Administrator
# Version:python3.6.5
# Date:2018/6/3 0003 23:15
#01ATM作业讲解-做作业的步骤
""
#作业需求如下:
"""
额度 15000或自定义
实现购物商城,买东西加入 购物车,调用信用卡接口结账
可以提现,手续费5%
支持多账户登录
支持账户间转账
记录每月日常消费流水
提供还款接口
ATM记录操作日志
提供管理接口,包括添加账户、用户额度,冻结账户等。。。
用户认证用装饰器
"""
#解题思路:
"""
1、分析功能、需求;
2、真的不着急下手编码,先画出流程图;
3、搭建项目的框架,写软件相当于盖楼,先‘建造’主体框架,再填充具体内容;
"""

02ATM作业讲解-需求分析

1、项目需求分析;

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# __Author__:Administrator
# Version:python3.6.5
# Date:2018/6/3 0003 23:21
#需求分析过程
"模拟实现一个ATM+购物商城程序"
"""
1、额度 15000或自定义;
2、实现购物商城,买东西加入购物车,调用信用卡接口结账;
3、可以提现,手续费为5%
4、实现多账户登录;
5、支持账户间转账;
6、记录每月日常消费流水;
7、提供还款接口;
8、ATM记录操作日志;
9、提供管理接口,包括添加账户、用户额度、冻结账户等;
10、用户认证用装饰器;

1)账户数据的增删改查; 加钱或减钱
2)日志操作;
3)模块间的相互调用;
4)功能的重用(使用函数)
"""

03ATM作业讲解-画流程图

1、使用Processon在线作图软件;

https://www.processon.com/diagraming/5b140964e4b02e4b26f270c0

04ATM作业讲解-搭项目架构

1、开始搭建项目架构;

05ATM作业讲解-用户认证代码讲解

06ATM作业讲解-用户认证代码和日志代码

07ATM作业讲解-功能分发器代码讲解

08ATM作业讲解-查看账户信息代码讲解

09ATM作业讲解-取现功能代码讲解

10ATM作业讲解-交易中心代码讲解

11ATM作业讲解-后续功能思路讲解

12员工信息表作业讲解-作业思路解析

 

1、不断去让你做你认为做不到的事情,才会成长!

 

2、作业的本质——对文件中的内容进行“增删改查”。

 

 

 

 

 

13员工信息表作业讲解-设计员工表在内存里的数据结构

1、将数据处理后,放置于字典中;

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# __Author__:Administrator
# Version:python3.6.5
# Date:2018/6/9 0009 8:15
""
"""
现要求你写一个简单的员工信息增删改查程序,需求如下:
1,Alex Li,22,13651054608,IT,2013‐04‐01
2,Jack Wang,28,13451024608,HR,2015‐01‐07
3,Rain Wang,21,13451054608,IT,2017‐04‐01
4,Mack Qiao,44,15653354208,Sales,2016‐02‐01
5,Rachel Chen,23,13351024606,IT,2013‐03‐16
6,Eric Liu,19,18531054602,Marketing,2012‐12‐01
7,Chao Zhang,21,13235324334,Administration,2011‐08‐08
8,Kevin Chen,22,13151054603,Sales,2013‐04‐01
9,Shit Wen,20,13351024602,IT,2017‐07‐03
10,Shanshan Du,26,13698424612,Operation,2017‐07‐02

1.可进行模糊查询,语法至少支持下面3种查询语法:
2.可创建新员工纪录,以phone做唯一键(即不允许表里有手机号重复的情况),staff_id需自增
3.可删除指定员工信息纪录,输入员工id,即可删除
4.可修改员工信息,语法如下:
find name,age from staff_table where age > 22
find * from staff_table where dept = "IT"
find * from staff_table where enroll_date like "2013"
语法: add staff_table Alex Li,25,134435344,IT,2015‐10‐29
语法: del from staff where id=3
UPDATE staff_table SET dept="Market" WHERE dept = "IT" 把所有dept=IT的纪录的dept改成Market
UPDATE staff_table SET age=25 WHERE name = "Alex Li" 把name=Alex Li的纪录的年龄改成25
5.以上每条语名执行完毕后,要显示这条语句影响了多少条纪录。 比如查询语句 就显示 查询出了多少条、
修改语句就显示修改了多少条等。
* 注意:以上需求,要充分使用函数,请尽你的最大限度来减少重复代码!*
"""
db_file= 'staff.db'#定义数据库文件变量;
columns = ['id','name','age','phone','dept','enrolled_date']
def load_db(db_file):
    """
    加载员工信息表,并转成指定格式;
    :param db_file:
    :return:
    """
    data = {}#定义一个空字典;
    for i in columns:
        data[i] =[]
        if columns[-1] in data.keys():
            print(data)#{'id': [], 'name': [], 'age': [], 'phone': [], 'dept': [], 'enrolled_date': []}
    f = open(file=db_file,mode='r',encoding='utf-8')
    for line in f:
        staff_id,name,age,phone,dept,enrolled_date = line.split(',')
        data['id'].append(staff_id)
        data['name'].append(name)
        data['age'].append(age)
        data['phone'].append(phone)
        data['dept'].append(dept)
        data['enrolled_date'].append(enrolled_date)
    print(data)
load_db(db_file)#通过函数名调用函数的功能;
def syntax_parser(cmd):
    """
    解析语句,并执行;
    :param cmd:
    :return:
    """
def main():
    """
    让用户输入语句并执行;
    :return:
    """
    while True:
        cmd = input("[staff_db]:".strip())
        if not cmd:continue
        syntax_parser(cmd)
1,Alex Li,22,13651054608,IT,2013‐04‐01
2,Jack Wang,28,13451024608,HR,2015‐01‐07
3,Rain Wang,21,13451054608,IT,2017‐04‐01
4,Mack Qiao,44,15653354208,Sales,2016‐02‐01
5,Rachel Chen,23,13351024606,IT,2013‐03‐16
6,Eric Liu,19,18531054602,Marketing,2012‐12‐01
7,Chao Zhang,21,13235324334,Administration,2011‐08‐08
8,Kevin Chen,22,13151054603,Sales,2013‐04‐01
9,Shit Wen,20,13351024602,IT,2017‐07‐03
10,Shanshan Du,26,13698424612,Operation,2017‐07‐02
staff_db

14员工信息表作业讲解-编写解析where语句的方法

1\

15员工信息表作业讲解-编写解析where语句条件过滤方法

16员工信息表作业讲解-编写解析find语句的方法

17员工信息表作业讲解-使打印数据变得好看

18员工信息表作业讲解-开发update修改功能

19员工信息表作业讲解-开发update修改功能2

20员工信息表作业讲解-支持不加where的语句

21员工信息表作业讲解-作业总结

posted @ 2018-08-22 07:41  天晴天朗  阅读(176)  评论(0编辑  收藏  举报