s9.16作业,员工信息表
转载https://blog.csdn.net/qq_35883464/article/details/83151464
实现员工信息表
文件存储格式如下:
id,name,age,phone,job
1,Alex,22,13651054608,IT
2,Egon,23,13304320533,Tearcher
3,nezha,25,1333235322,IT
现在需要对这个员工信息文件进行增删改查。
不允许一次性将文件中的行都读入内存。
基础必做:
a.可以进行查询,支持三种语法:
select 列名1,列名2,… where 列名条件
支持:大于小于等于,还要支持模糊查找。
示例:
select name, age where age>22
select * where job=IT
select * where phone like 133
进阶选做:
b.可创建新员工记录,id要顺序增加
c.可删除指定员工记录,直接输入员工id即可
d.修改员工信息
语法:set 列名=“新的值” where 条件
#先用where查找对应人的信息,再使用set来修改列名对应的值为“新的值”
注意:要想操作员工信息表,必须先登录,登陆认证需要用装饰器完成
其他需求尽量用函数实现
---------------------
作者:陈宸-研究僧
来源:CSDN
原文:https://blog.csdn.net/qq_35883464/article/details/83151464
版权声明:本文为博主原创文章,转载请附上博文链接!
- # 读取文件——
- def get_line(filename):
- with open(filename,'r',encoding='utf-8') as f:
- for line in f:
- line = line.strip()
- line_lst = line.split(',')
- yield line_lst
- # 员工信息表
- dic = {'name':1,'id':0,'age':2,'phone':3,'job':4}
- def condition_filter(condition):
- '''条件_筛选'''
- condition = condition.strip()
- if '>' in condition:
- col,val = condition.split('>')
- val = val.strip()
- col = col.strip()
- g = get_line('userinfo')
- for line_lst in g:
- if int(line_lst[dic[col]]) > int(val):
- yield line_lst
- if '<' in condition:
- col,val = condition.split('<')
- val = val.strip()
- col = col.strip()
- g = get_line('userinfo')
- for line_lst in g:
- if int(line_lst[dic[col]]) < int(val):
- yield line_lst
- if '=' in condition:
- col,val = condition.split('=')
- val = val.strip()
- col = col.strip()
- g = get_line('userinfo')
- for line_lst in g:
- if int(line_lst[dic[col]]) == int(val):
- yield line_lst
- else:
- print('没有符合条件的员工')
- def views(view_lst,staff_g): # view_list = ['name','age']
- '''展示符合条件的员工信息'''
- if '*' in view_lst:
- view_lst = dic.keys()
- for staff_info in staff_g: # staff_info已经拿到了正确的员工信息,是列表[1,Alex,22,13651054608,IT]
- for i in view_lst:
- print(staff_info[dic[i]],end=' ')
- print(' ')
- #接受用户信息——
- ret = input('输入要搜索的员工信息:')
- # ret = 'select age,name where age > 22'
- view,condition = ret.split('where')
- view = view.replace('select','').strip()
- view_lst = view.split(',')
- # print(view_lst,condition)
- g = condition_filter(condition)
- views(view_lst,g)
- ---------------------
- 作者:陈宸-研究僧
- 来源:CSDN
- 原文:https://blog.csdn.net/qq_35883464/article/details/83151464
- 版权声明:本文为博主原创文章,转载请附上博文链接!
s9.16作业,员工信息表的更多相关文章
- day12 python作业:员工信息表
作业要求: 周末大作业:实现员工信息表文件存储格式如下:id,name,age,phone,job1,Alex,22,13651054608,IT2,Egon,23,13304320533,Tearc ...
- python作业员工信息表程序(第四周)
作业需求: 1. 员工信息表程序,实现增删改查操作: 2. 可进行模糊查询,语法至少支持下面3种: select name,age from staff_table where age > 22 ...
- python基础之员工信息表作业
周末大礼包 文件存储格式如下: id, name, age, phone, job 1, Alex, 22, 13651054608, IT 2, Egon, 23, 13304320533, Tea ...
- 无废话ExtJs 入门教程十五[员工信息表Demo:AddUser]
无废话ExtJs 入门教程十五[员工信息表Demo:AddUser] extjs技术交流,欢迎加群(201926085) 前面我们共介绍过10种表单组件,这些组件是我们在开发过程中最经常用到的,所以一 ...
- python练习题-员工信息表
周末大作业:实现员工信息表文件存储格式如下:id,name,age,phone,job1,Alex,22,13651054608,IT2,Egon,23,13304320533,Tearcher3,n ...
- python-查询员工信息表
python查询员工信息表 基本要求: 用户可以模糊查询员工信息 显示匹配了多少条,匹配字符需要高亮显示 代码: #!/usr/env python #coding:utf-8 import time ...
- python-打印简单公司员工信息表
python-打印简单公司员工信息表 要求,输入name不为空,输入次数最多3次,3次后跳出程序: 知识点: raw_input str转int whil if elif else continue ...
- python3 员工信息表
这是最后一条NLP了......来吧 十二,动机和情绪总不会错,只是行为没有效果而已 动机在潜意识里,总是正面的.潜意识从来不会伤害自己,只会误会的以为某行为可以满足该动机,而又不知道有其他做法的可能 ...
- python's sixteenth day for me 员工信息表
import os user_dic = { 'username':None, 'password':None, 'login':True } flag = False name_list = ['i ...
随机推荐
- bs4抓取糗事百科
抓取糗事百科内容及评论,不包含图片信息.user-agent填入浏览器的即可.user-agent对应的value,360极速浏览器的话,可以在地址栏输入about:version,回车,用户代理后面 ...
- Go数据类型和变量
一:Go数据类型 1.1 Go语言按照分类有以下几种数据类型 布尔型 布尔型的是一个常量true或者false 数字类型 整型int和浮点型 float32, float64 字符串类型 字符串就是一 ...
- Map的嵌套
package cn.lijun.demo2; import java.util.HashMap; import java.util.Iterator; import java.util.Set; p ...
- css3: 基本知识记录
1.transition过渡: 元素从一种样式到另一种样式添加效果: div { transition: width 2s, height 2s, transform 2s; -moz-transit ...
- 剑指Offer_编程题_3
题目描述 输入一个链表,从尾到头打印链表每个节点的值. /** * struct ListNode { * int val; * struct ListNode *next; * ListNode(i ...
- Accord.NET Framework 介绍
阅读目录 1.基本功能与介绍 Accord.NET Framework是在AForge.NET项目的基础上封装和进一步开发而来.因为AForge.NET更注重与一些底层和广度,而Accord.NET ...
- redis注册成window服务 标签: redis
注册服务 redis-server.exe –service-install redis.windows.conf 删除服务 redis-server –service-uninstall 开启服务 ...
- VirtualBox安装Ubuntu14.04
创建虚拟机 点击 新建(N) 设置虚拟机的名称,类型与版本,如下图所示: 分配虚拟机的内存大小,受PC实际内存影响,暂时设置为2G,如下图所示: 分配虚拟机的硬盘大小,默认即可,如下图所示: 分配虚拟 ...
- SSM框架中spring的XML文件配置
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w ...
- 059、安装配置flannel(2019-03-28 周四)
参考https://www.cnblogs.com/CloudMan6/p/7424858.html build flannel flannel 没哟现成的执行文件可用,必须自己build,最 ...