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 ...
随机推荐
- 动态样式语言—LESS基础知识
CSS是一门非程序式语言,缺少逻辑性,不便于维护 LESS在CSS现有语法的基础上,为CSS加入程序式语言的特性 引入了变量.混入.运算.函数等功能,大大简化CSS的编写,降低了CSS的维护成本 LE ...
- TODO 动态执行appium代码,便于修改和调试
https://testerhome.com/topics/9040 还没尝试过. 不过不是很懂怎么实现的,java不是编译后再运行的语言吗?怎么一边编译一边运行呢???
- testng学习-before&after,parameters,并行,factory,beanshell,监听器,依赖注入
一系列的before after的操作测试 [TestNG] Running: C:\Users\user\AppData\Local\Temp\testng-eclipse-1538841744\t ...
- Unity 光照着色器
光照着色器需要考虑光照的分类,一般分为漫反射和镜面反射. 漫反射计算基本光照: float brightness=dot(normal,lightDir) 将法线和光的入射方向进行点积运算,求出 ...
- Vue(基础五)_vue中用ref和给dom添加事件的特殊情况
一.前言 这篇文章涉及的主要内容有: 1.ref绑定在标签上是获取DOM对象 2.ref绑定在子组件上获取的是子组件对象 3.案列:自动获取input焦点 二.主要内容 1.基础内容: ref 被用来 ...
- jsp中${pageContext.request.contextPath}的意思
${pageContext.request.contextPath}是JSP取得绝对路径的方法,等价于<%=request.getContextPath()%> . 也就是取出部署的应用程 ...
- CSS设置边框、符号、背景样式、链接属性
一.CSS边框空白 padding-top:10px; /*上边框留空白*/ padding-right:10px; /*右边框留空白*/ padding-bottom:10px; /*下边框留空白* ...
- MySQL数据库优化_limit_2
limit豫union一起使用时的优化 cp_order_exit数据行数:142951 cp_order_exit_led数据行数:20876 查询:这条 查询将会把 cp_order_exit中的 ...
- Hadoop生态圈-使用FreeIPA安装Kerberos和LDAP
Hadoop生态圈-使用FreeIPA安装Kerberos和LDAP 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 有些大数据平台只是简单地通过防火墙来解决他们的网络安全问题.十分 ...
- JAVA-8大基本类型与包装类的例子(基础必备)
package com.net.xinfang.reflect; /*** * 8种基本类型(byte,int,short,long,float,double,char,boolean) * 布尔型只 ...