学号分组小程序

写一个分组程序,按照学号,
学号除以5余数是1的,分到一组;
学号除以5余数是2的,分到二组;
学号除以5余数是3的,分到三组;
学号除以5余数是4的,分到四组;
学号除以5余数是0的,分到五组;
最后输出5个文件,分别是group1.txt, group2.txt, group3.txt, group4.txt, group5.txt,里面分别存放相应组的学生姓名和学号。

注意:请考虑使用reduce函数完成分组功能,reduce输出可以是字典结构的数据,比如:{‘五组’:[‘刘熊畅 04171185’,], ‘四组’:[‘赵颖 04171189’, ’段钰莹 07172669’, ‘关敬一05171524’], ‘四组’:[]}

from functools import  reduce

f = open("names.txt",'r',encoding = "utf-8")

def fenzu(zi,str_2):
    lis_2 = str_2.split()
    num = list(lis_2[1])
    kk = eval(num[-1]) % 5
    
    if kk == 1:
       zi['一组'].append(str_2)
    elif kk == 2:
       zi['二组'].append(str_2)        
    elif kk == 3:
       zi['三组'].append(str_2)            
    elif kk == 4:
       zi['四组'].append(str_2)            
    else:
       zi['五组'].append(str_2)    
    return zi        
            
ss = f.readlines()
    
f.close()

res = reduce(fenzu,ss,dict(zip(('五组','四组','三组','二组','一组'),([],[],[],[],[]))))

f1 = open('group1.txt','w')
f2 = open('group2.txt','w')
f3 = open('group3.txt','w')
f4 = open('group4.txt','w')
f5 = open('group5.txt','w')

f1.write(''.join(res['一组']))
f1.close()
f2.write(''.join(res['二组']))
f2.close()
f3.write(''.join(res['三组']))
f3.close()
f4.write(''.join(res['四组']))
f4.close()
f5.write(''.join(res['五组']))
f5.close()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值