# 作业1
'''
1、文件内容如下,标题为:姓名,性别,年纪,薪资
egon male 18 3000
alex male 38 30000
wupeiqi female 28 20000
yuanhao female 28 10000
'''
with open ('db.txt',mode='rt',encoding='utf-8') as f1:
info_dic={}
info_list=[]
for line in f1:
user_info=line.strip().split(' ')
user_info=user_info.__iter__()
user_name=user_info.__next__()
user_sex=user_info.__next__()
user_age=int(user_info.__next__())
user_salary=int(user_info.__next__())
info_dic={'name':user_name,'sex':user_sex,'age':user_age,'salary':user_salary}
info_list.append(info_dic)
# print(info_list)
# 2,根据1得到的列表,取出所有人的薪资之和
sum=0
for dic in info_list:
salary=dic['salary']
sum+=salary
# print(sum)
# 3 根据1得到的列表,取出所有的男人的名字
man_list=[]
for dic in info_list:
if dic['sex']=='male':
man=dic['name']
man_list.append(man)
# print(man_list)
# 4 根据1得到的列表,将每个人的信息中的名字映射成首字母大写的形式
name_list=[]
for dic in info_list:
cap_name=dic['name'].capitalize()
name_list.append(cap_name)
# print(name_list)
# 5 根据1得到的列表,过滤掉名字以a开头的人的信息
non_startwitha=[]
for dic in info_list:
if not dic['name'].startswith('a'):
non_startwitha.append(dic)
else:
pass
# print(non_startwitha)
# 6 使用递归打印斐波那契数列(前两个数的和得到第三个数,如:0 1 1 2 3 5 8...)
def fib(n):
if n==20:
return
n+=n
n+=1
sum=fib(n-1)
return sum
print(fib(4))
# 7 一个嵌套很多层的列表,如l=[1,2,[3,[4,5,6,[7,8,[9,10,[11,12,13,[14,15]]]]]]],用递归取出所有的值
def f1(list1):
for x in list1:
if type(x) is list:
f1(x)
else:
print(x)
f1(l)
python 18 作业
猜你喜欢
转载自www.cnblogs.com/Franciszw/p/12571851.html
今日推荐
周排行