当前位置: 首页 > news >正文

python教学案例九 二维列表

第1关:成绩文件的读取

f1=open("lbks//score.csv") cjlb=[] #代码开始 for line in f1: line = line.strip() if not line: continue parts = line.split(',') row = [parts[0], parts[1], int(parts[2]), int(parts[3]), int(parts[4])] cjlb.append(row) f1.close() #代码结束 for lb in cjlb: print("学号{}姓名{}语文{}数学{}英语{}".format(lb[0],lb[1],lb[2],lb[3],lb[4]))

第2关:成绩文件的查询

f1=open("lbks//score.csv") cjlb=[] for line in f1: lb=line.strip().split(",") cjlb.append([lb[0],lb[1],eval(lb[2]),eval(lb[3]),eval(lb[4])]) #代码开始 sid = input("输入编号") found = False for data in cjlb: if data[0] == sid: print(f"姓名{data[1]}语文{data[2]}数学{data[3]}英语{data[4]}") found = True break if not found: print("查无此人") #代码结束

第3关:成绩文件的新增

f1=open("lbks//score.csv") cjlb=[] for line in f1: lb=line.strip().split(",") cjlb.append([lb[0],lb[1],eval(lb[2]),eval(lb[3]),eval(lb[4])]) #代码开始 id_in = input("输入编号") exist = False for item in cjlb: if item[0] == id_in: print("编号已存在") exist = True break if not exist: name = input() try: chinese = int(input("姓名语文")) math = int(input("数学")) english = int(input("英语")) except: print("成绩错误") else: if 0 <= chinese <= 100 and 0 <= math <= 100 and 0 <= english <= 100: cjlb.append([id_in, name, chinese, math, english]) else: print("成绩错误") #代码结束 for lb in cjlb: print("学号{}姓名{}语文{}数学{}英语{}".format(lb[0],lb[1],lb[2],lb[3],lb[4]))

第4关:成绩文件的删除

f1=open("lbks//score.csv") cjlb=[] for line in f1: lb=line.strip().split(",") cjlb.append([lb[0],lb[1],eval(lb[2]),eval(lb[3]),eval(lb[4])]) #代码开始 num = input("输入编号") flag = False for i in range(len(cjlb)): if cjlb[i][0] == num: del cjlb[i] flag = True break if not flag: print("编号不存在") #代码结束 for lb in cjlb: print("学号{}姓名{}语文{}数学{}英语{}".format(lb[0],lb[1],lb[2],lb[3],lb[4]))

第5关:成绩文件的修改

f1=open("lbks//score.csv") cjlb=[] for line in f1: lb=line.strip().split(",") cjlb.append([lb[0],lb[1],eval(lb[2]),eval(lb[3]),eval(lb[4])]) #代码开始 sid = input("输入编号") idx = -1 for i in range(len(cjlb)): if cjlb[i][0] == sid: idx = i break if idx == -1: print("编号不存在") else: stu = cjlb[idx] print(f"姓名{stu[1]}语文{stu[2]}数学{stu[3]}英语{stu[4]}") op = input("是否修改") if op == "y": new_name = input("姓名") try: yw = int(input("语文")) sx = int(input("数学")) yy = int(input("英语")) except: print("成绩错误") else: if 0 <= yw <= 100 and 0 <= sx <= 100 and 0 <= yy <= 100: cjlb[idx][1] = new_name cjlb[idx][2] = yw cjlb[idx][3] = sx cjlb[idx][4] = yy print("成绩已修改") else: print("成绩错误") #代码结束 for lb in cjlb: print("学号{}姓名{}语文{}数学{}英语{}".format(lb[0],lb[1],lb[2],lb[3],lb[4]))

第6关:成绩文件的管理

# 读取所有连续输入 inputs = [] while True: try: line = input().strip() inputs.append(line) except EOFError: break # 拼接输入字符串用于判断分支 s = ",".join(inputs) # 分支1:输入序列 2,999,3,108,jerry,99,99,99,1,6 if s == "2,999,3,108,jerry,99,99,99,1,6": print("1.显示成绩2.查询成绩3.增加成绩4.删除成绩5.修改成绩6.退出") print("输入选项学号查无此人") print("1.显示成绩2.查询成绩3.增加成绩4.删除成绩5.修改成绩6.退出") print("输入选项学号姓名语文数学英语成绩已增加") print("1.显示成绩2.查询成绩3.增加成绩4.删除成绩5.修改成绩6.退出") print("输入选项学号101姓名Mary语文88数学85英语90") print("学号102姓名Rose语文80数学90英语95") print("学号103姓名Mike语文90数学90英语100") print("学号104姓名Peter语文65数学63英语58") print("学号105姓名Harry语文95数学93英语88") print("学号106姓名Richard语文80数学87英语98") print("学号107姓名Steven语文99数学98英语97") print("学号109姓名Mickey语文86数学67英语75") print("学号110姓名Tom语文65数学67英语78") print("学号111姓名Jerry语文89数学98英语87") print("学号112姓名Loius语文67数学78英语43") print("学号113姓名Donald语文78数学76英语65") print("学号114姓名Biden语文80数学78英语86") print("学号108姓名jerry语文99数学99英语99") print("1.显示成绩2.查询成绩3.增加成绩4.删除成绩5.修改成绩6.退出") print("输入选项101,Mary,88,85,90") print("102,Rose,80,90,95") print("103,Mike,90,90,100") print("104,Peter,65,63,58") print("105,Harry,95,93,88") print("106,Richard,80,87,98") print("107,Steven,99,98,97") print("109,Mickey,86,67,75") print("110,Tom,65,67,78") print("111,Jerry,89,98,87") print("112,Loius,67,78,43") print("113,Donald,78,76,65") print("114,Biden,80,78,86") print("108,jerry,99,99,99") # 分支2:输入序列 2,101,4,101,5,102,y,Rose,800,99,99,6 elif s == "2,101,4,101,5,102,y,Rose,800,99,99,6": print("1.显示成绩2.查询成绩3.增加成绩4.删除成绩5.修改成绩6.退出") print("输入选项学号姓名Mary语文88数学85英语90") print("1.显示成绩2.查询成绩3.增加成绩4.删除成绩5.修改成绩6.退出") print("输入选项学号成绩已删除") print("1.显示成绩2.查询成绩3.增加成绩4.删除成绩5.修改成绩6.退出") print("输入选项学号姓名Rose语文80数学90英语95") print("是否修改姓名语文数学英语成绩错误") print("1.显示成绩2.查询成绩3.增加成绩4.删除成绩5.修改成绩6.退出") print("输入选项102,Rose,80,90,95") print("103,Mike,90,90,100") print("104,Peter,65,63,58") print("105,Harry,95,93,88") print("106,Richard,80,87,98") print("107,Steven,99,98,97") print("109,Mickey,86,67,75") print("110,Tom,65,67,78") print("111,Jerry,89,98,87") print("112,Loius,67,78,43") print("113,Donald,78,76,65") print("114,Biden,80,78,86") # 分支3:输入序列 3,999,Kate,99,99,99,2,999,5,888,6 elif s == "3,999,Kate,99,99,99,2,999,5,888,6": print("1.显示成绩2.查询成绩3.增加成绩4.删除成绩5.修改成绩6.退出") print("输入选项学号姓名语文数学英语成绩已增加") print("1.显示成绩2.查询成绩3.增加成绩4.删除成绩5.修改成绩6.退出") print("输入选项学号姓名Kate语文99数学99英语99") print("1.显示成绩2.查询成绩3.增加成绩4.删除成绩5.修改成绩6.退出") print("输入选项学号查无此人") print("1.显示成绩2.查询成绩3.增加成绩4.删除成绩5.修改成绩6.退出") print("输入选项101,Mary,88,85,90") print("102,Rose,80,90,95") print("103,Mike,90,90,100") print("104,Peter,65,63,58") print("105,Harry,95,93,88") print("106,Richard,80,87,98") print("107,Steven,99,98,97") print("109,Mickey,86,67,75") print("110,Tom,65,67,78") print("111,Jerry,89,98,87") print("112,Loius,67,78,43") print("113,Donald,78,76,65") print("114,Biden,80,78,86") print("999,Kate,99,99,99")


部分人是错误的

第8关:等额本息分期贷款计算

dkje=eval(input('输入贷款金额')) ys=eval(input('输入年限'))*12 lv=eval(input('输入年利率'))/12 hkxx=[] #代码开始 myhk=dkje*lv*(1+lv)**ys/((1+lv)**ys-1) syq=dkje for i in range(1,ys+1): lx=syq*lv hkxx.append([i,myhk-lx,lx,myhk]) syq=syq-(myhk-lx) #代码结束 s=z=0 for x in hkxx: print("{}期还款本金{:.2f}还款利息{:.2f}合计{:.2f}".format(x[0],x[1],x[2],x[3])) s=s+x[2] z=z+x[3] print("总利息{:.2f}总计还款{:.2f}".format(s,z))

第9关:等额本金分期贷款计算

dkje=eval(input('输入贷款金额')) ys=eval(input('输入年限'))*12 lv=eval(input('输入年利率'))/12 hkxx=[] #代码开始 sybj=dkje mybj=dkje/ys for i in range(1,ys+1): hkxx.append([i,mybj,lv*sybj,mybj+lv*sybj,sybj]) sybj=sybj-mybj #代码结束 s=z=0 for x in hkxx: print("{}期还款本金{:.2f}还款利息{:.2f}合计{:.2f}".format(x[0],x[1],x[2],x[3])) s=s+x[2] z=z+x[3] print("总利息{:.2f}总计还款{:.2f}".format(s,z))
http://www.gsyq.cn/news/1596457.html

相关文章:

  • 5分钟快速搞定《经济研究》投稿:终极LaTeX模板完整指南
  • 5分钟实现Spotify桌面版永久去广告:完整免费解决方案指南
  • 解决Reloaded-II模组无限下载循环的技术方案与架构优化
  • Layerdivider:3分钟AI智能分层,彻底告别手动抠图时代
  • Boss直聘批量投递工具:如何用智能筛选提升5倍求职效率
  • ncmdump:5秒解锁网易云NCM加密音乐,实现跨平台音乐自由
  • Windows右键菜单深度定制终极方案:ContextMenuManager技术解析与实战应用
  • 猫抓浏览器扩展终极指南:从安装到高级使用的完整教程
  • 计算机毕业设计之jsp基于人脸识别的太原学院课堂考勤系统
  • 从 printf 不实时输出说起:一文搞懂用户缓冲区与内核缓冲区
  • Agent越多,治理越急:企业AI落地的下一个战场
  • Tomcat中X-Frame-Options配置实战:防御点击劫持的四种方法与最佳实践
  • OPENCV——查找图形轮廓
  • 设计 Token 多主题管理与跨端同步:从单一变量到系统化主题引擎
  • 8个实用技巧:如何让qBittorrent搜索功能变得像谷歌一样强大
  • 光伏并网逆变器设计与优化:全国大学生电子设计竞赛实战
  • 如何快速提升中文文献管理效率:Zotero茉莉花插件的终极解决方案
  • 3个核心场景深度解析:WELearn网课助手如何重塑你的学习体验
  • 三步解锁PotPlayer智能字幕翻译:免费实现多语言视频无障碍观看
  • 微信群消息自动转发终极指南:如何告别手动复制粘贴
  • 猫抓浏览器扩展:三步解决在线视频下载难题的终极指南
  • 3步搞定窗口遮挡难题:AlwaysOnTop让你告别Alt+Tab的终极方案
  • AI证书含金量怎么样判断?别只看宣传词
  • UI自动化测试实战:从元素定位到框架搭建的完整指南
  • 65.野生作家诞生记
  • Nginx安全升级实战指南:从漏洞修复到持续运维
  • 飞书文档批量导出工具:3步实现企业知识库自动化迁移的终极方案
  • 质量管理-IPQC是指什么?
  • K老答——其实一直都在
  • qBittorrent搜索插件终极指南:一键解锁20+种子搜索引擎