day03_final

分为两部分:

一:练习题:

二:员工信息表作业:

练习题如下:

# Author: ray.zhang
#1、写函数,用户传入修改的文件名,与要修改的内容,执行函数,完成批量修改操作
import  os

def info(file,content,modify):
    with open(file,'r',encoding='utf-8') as read_f ,\
        open('_tmp.txt','w',encoding='utf-8') as write_f:

        res=read_f.read()
        re=res.replace(content,modify)
        write_f.write(re)

    os.remove(file)
    os.rename('_tmp.txt',file)


info('info.txt','hello','year')
#2、写函数,计算传入字符串中【数字】、【字母】、【空格] 以及 【其他】的个数
def acle(info):
    dict = {                         #方便做统计
        'number' : 0,
        'string' : 0,
        'blank' : 0,
        'other' : 0
    }

    for i in info:
        if i.isdigit():                 #引用了字符串方法做判断:
            dict['number'] += 1         #累计 += 1
        elif i.isalpha():
            dict['string'] += 1
        elif i.isspace():               #判断空格方法:
            dict['blank'] += 1
        else:
            dict['other'] +=1
    return dict                          #函数返回值

aa = acle('hello,my name is: \'ray\',my ageis0027')     #实参引入字符串传值给形参。
print(aa)
#3、写函数,判断用户传入的对象(字符串、列表、元组)长度是否大于5。
def inf(value):
#    pass
    if len(value) > 5:
        return 
    else:
        return 1

result = inf((1,2,3,4,5,6))
result1 = inf({'a':1,'b':2})
result2 = inf('sasdasdasdas')
print(result)
print(result1)
print(result2)

#4、写函数,检查传入列表的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。

def length(msg):
#    pass
    if len(msg) > 2:
        msg = msg[:2]           #列表的切片
        return msg

print(length(['a','b','c',1,2,3,4]))
#5、写函数,检查获取传入列表或元组对象的所有奇数位索引对应的元素,并将其作为新列表返回给调用者。
def sr(sg):
#    pass
    aa = len(sg)
    return sg[0:aa:2]

print(sr(['a','b','c',1,2,3,4]))
print(sr((0,1,2,3,4,5,6,7,8,)))
#6、写函数,检查字典的每一个value的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。
#dic = {"k1": "v1v1", "k2": [11,22,33,44]}
#PS:字典中的value只能是字符串或列表
dic = {"k1": "v1v1", "k2": [11,22,33,44]}

def check(value):
#    pass
    for k,v in value.items():
        # print(k,v)    #遍历key,value
        if len(v) > 2:
            value[k]=v[:2]
    print(value)
check(dic)

二:员工信息表作业如下:

需求 :

1,ray zhang,22,13651054608,IT,2013-04-01
2,jack,23,13333333333,HR,2017-06-10
3,bike Li,10,13651054608,Sale,2014-05-20
4,erav,47,13444444444,IT,2012-01-12
5,egon,33,13567890123,HR,2016-11-22

当然此表你在文件存储时可以这样表示
现需要对这个员工信息文件,实现增删改查操作

可进行模糊查询,语法至少支持下面3种:
  select name,age from staff_table where age > 22
  select * from staff_table where dept = "IT"
select * from staff_table where enroll_date like "2013"
查到的信息,打印后,最后面还要显示查到的条数
可创建新员工纪录,以phone做唯一键,staff_id需自增
可删除指定员工信息纪录,输入员工id,即可删除
可修改员工信息,语法如下:
  UPDATE staff_table SET dept="Market" WHERE where dept = "IT"
'''

流程图:

def mysql_input(inf):
    #print(inf)
    info_action=inf.split(' ')[0]
#    print(info_action)

    act_moth = {
        'select':mysql_select,
        'insert':mysql_insert,
        'delete':mysql_delete,
        'update':mysql_update
    }
    if info_action in act_moth:
        action = act_moth[info_action](inf.split(' '))
        #print(act_moth)
    else:
        print("input act_moth error!!plz input try!!!")
    pass


def mysql_select(action):
    print(action)
    d = {}
    with open('info', 'r', encoding='utf-8') as f:
        for line in f:
            print(line.strip().split(',')[0])
            #if
            '''  
    select name,age from staff_table where age > 22
  select  * from staff_table where dept = "IT"
    select  * from staff_table where enroll_date like "2013" 
    '''

    pass
def mysql_insert(action):
    print(action)
    pass
def mysql_delete(action):
    print(action)
    pass
def mysql_update(action):
    print(action)
    pass

def mysql_action(moth):
    pass

while True:
    info = input("Plz input sql >>:").strip()
    if info.__len__() == 0:
        continue
    elif info == 'exit' or info == 'quit':
        break
    else:
        sql_input = mysql_input(info)
        mysql_action(info)

  

posted @ 2017-07-21 09:18  zhangray  阅读(173)  评论(0编辑  收藏  举报