python学习第三天练习

作业:

1、写函数,,用户传入修改的文件名,与要修改的内容,执行函数,完成批了修改操作


2、写函数,计算传入字符串中【数字】、【字母】、【空格] 以及 【其他】的个数

def count_str(x):
#计算字符串中字符种类个数的函数
sum1=0
sum2=0
sum3=0
sum4=0
for i in x:
if i.isdigit():
sum1+=1
elif i.isalpha():
sum2+=1
elif i.isspace():
sum3+=1
else:
sum4+=1
s={'数字':sum1,'字母':sum2,'空格':sum3,'其他':sum4}
print(s)
count_str('asd asd1234!@$SAd weq')

3、写函数,判断用户传入的对象(字符串、列表、元组)长度是否大于5。

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

def c_list(x):
print(len(x))
if len(x)>2:
return x[0:2]
res=c_list([1,2,3,4,5])
print(res)

5、写函数,检查获取传入列表或元组对象的所有奇数位索引对应的元素,并将其作为新列表返回给调用者。

def c_count(x):
print(len(x))
j=0
s=[]
while j<len(x):
if j%2!=0:
s.append(x[j])
j+=1
print(s)
return s
c_count((1,2,3,4,5,6,7))

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

def c_new(x):
for item in x:
print(item,len(x[item]))

if len(x[item])>2:
x[item]=x[item][0:2]
print(x)
return x
c_new({"k1": "v1v1", "k2": [11,22,33,44]})

二、有以下员工信息表

 

当然此表你在文件存储时可以这样表示

1,Alex Li,22,13651054608,IT,2013-04-01

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

 注意:以上需求,要充分使用函数,请尽你的最大限度来减少重复代码!

这个真是太难了!!只写了一个查询

sql = input('please input sql>>:').strip().split()
h=sql[1].split(',')
l=[]

with open('db.txt', 'r+', encoding='utf-8')as f1:
a = f1.readline().strip('\n').split(',')
if h[0] != '*':
print(h)
for line in f1:
b = line.strip('\n').split(',')
# print(b)
c = 0
dic = {}
while c < len(a):
dic.update({a[c]: b[c]})
c += 1
# dic={a[0]:b[0],a[1]:b[1],a[2]:b[2],a[3]:b[3],a[4]:b[4],a[5]:b[5]}
# print(a)
# print(dic)
d = 0
if sql[6] is '>':
if dic[sql[5]] > sql[7]:
while d < len(h):
l.append(dic[h[d]])
# print(dic[h[d]],end='')
d += 1
print(l)
l.clear()

elif sql[6] is '=':
if dic[sql[5]] == sql[7]:
while d < len(h):
l.append(dic[h[d]])
# print(dic[h[d]], end='')
d += 1
print(l)
l.clear()

elif sql[6] == 'like':
e=sql[7].strip('"').strip("'")
# print(e)
if e in dic[sql[5]] :
while d < len(h):
l.append(dic[h[d]])
# print(dic[h[d]], end='')
d += 1
print(l)
l.clear()
# print(l)
elif h[0] == '*':
print(a)
for line in f1:
b = line.strip('\n').split(',')
# print(b)
c = 0
dic = {}
while c < len(a):
dic.update({a[c]: b[c]})
c += 1
# dic={a[0]:b[0],a[1]:b[1],a[2]:b[2],a[3]:b[3],a[4]:b[4],a[5]:b[5]}
# print(a)
# print(dic)
d = 0
if sql[6] is '>':
if dic[sql[5]] > sql[7]:
while d < len(dic):
l.append(b[d])
# print(b[d],end='')
d += 1
print(l)
l.clear()


elif sql[6] is '=':
if dic[sql[5]] == sql[7]:
while d < len(dic):
l.append(b[d])
# print(b[d], end='')
d += 1
print(l)
l.clear()

elif sql[6] == 'like':
e = sql[7].strip('"').strip("'")
# print(e)
if e in dic[sql[5]] :
while d < len(dic):
l.append(b[d])
# print(b[d], end='')
d += 1
print(l)
l.clear()

猜你喜欢

转载自www.cnblogs.com/super-xfj/p/10074230.html