鱼C论坛

 找回密码
 立即注册
查看: 2033|回复: 2

[已解决]程序运行不了

[复制链接]
发表于 2020-3-3 12:07:38 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
  1. def meun():
  2.     print('''====================================
  3. 1)添加学生信息                           
  4. 2)查找学生信息                    
  5. 3)删除学生信息                                                      
  6. 4)显示所有学生的信息            
  7. 5)单科排名(语文)           
  8. 6)单科排名(数学)           
  9. 7)总分排名           
  10. 8)保存学生信息到文件(students.txt)      
  11. 9)从文件中读取数据(students.txt)      
  12. 退出:其他任意按键<回车>
  13. =====================================''')

  14. #M=[]
  15. #添加函数
  16. def add():
  17.     m={}
  18.     while True:
  19.         N1=input('请输入学生姓名:')
  20.         if not N1:   # 名字为空 跳出循环
  21.             break
  22.         N2=input('请输入学生性别:')
  23.         N3=input('请输入学生年龄:')
  24.         N4=input('请输入学生语文成绩:')
  25.         N5=input('请输入学生数学成绩:')
  26.         m={'姓名':N1,'性别':N2,'年龄':N3,'语文成绩':N4,'数学成绩':N5}
  27.         M.append(m)

  28. #显示函数      
  29. def show():
  30.     print('姓名','性别'.center(6),'年龄'.center(4),'语文成绩'.center(4),'数学成绩')
  31.     for i in M:
  32.         print(i.get('姓名'),i.get('性别').center(3),i.get('年龄').center(8),i.get('语文成绩').center(10),i.get('数学成绩'))

  33. #删除函数
  34. def del_():
  35.     d=input('请输入删除的学生名字:')
  36.     for i in M:
  37.         if d == i['姓名']:
  38.             M.remove(i)
  39.             
  40. #查找函数
  41. def find_():
  42.     f=input('请输入要查找的学生姓名:')
  43.     for i in M:
  44.         if f == i['姓名']:
  45.             print('姓名','性别'.center(6),'年龄'.center(4),'语文成绩'.center(4),'数学成绩')
  46.             print(i.get('姓名'),i.get('性别').center(3),i.get('年龄').center(8),i.get('语文成绩').center(10),i.get('数学成绩'))
  47.             
  48. #单科排名函数(高—低)
  49. def score():
  50.     print("按学生%s高-低显示"%X)
  51.     print('姓名','性别'.center(6),'年龄'.center(4),'语文成绩'.center(4),'数学成绩')
  52.     s=sorted(M,key=lambda i:int(i[X]),reverse=True)
  53.     for i in s:
  54.         print(i.get('姓名'),i.get('性别').center(3),i.get('年龄').center(8),i.get('语文成绩').center(10),i.get('数学成绩'))
  55.       
  56. #总分排名函数(高—低)        
  57. def add_score():
  58.     print("按学生总分高-低显示")
  59.     print('姓名','性别'.center(6),'年龄'.center(4),'语文成绩'.center(4),'数学成绩','总分')
  60.     s=sorted(M,key=lambda i:int(i['语文成绩'])+int(i['数学成绩']),reverse=True)
  61.     for i in s:
  62.         print(i.get('姓名'),i.get('性别').center(3),i.get('年龄').center(8),i.get('语文成绩').center(10),i.get('数学成绩'),str(int(i['语文成绩'])+int(i['数学成绩'])).center(10))

  63. #保存文件函数
  64. def save():
  65.     k=open("students.txt",'w')
  66.     for i in M:
  67.         k.write(str(i)+"\n")
  68.     k.close()
  69. #主函数
  70. def main():
  71.     M=[]
  72.     meun()
  73.     x=input('请输入操作数:')
  74.     while True:
  75.         if x == 1:
  76.             add()
  77.         elif x == 2:
  78.             find_()
  79.         elif x == 3:
  80.             del_()
  81.         elif x == 4:
  82.             show()
  83.         elif x == 5:
  84.             score(X='语文成绩')
  85.         elif x == 6:
  86.             score(X='数学成绩')
  87.         elif x == 7:
  88.             add_score()
  89.         elif x == 8:
  90.             save()
  91. main()
复制代码
最佳答案
2020-3-3 12:14:12
两种解决方案:
1,input获取的结果是字符串,把后面所有if条件里的数字改成'1','2'这个样子
2,x = int(input("请输入操作数:"))
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-3-3 12:09:14 | 显示全部楼层
有没有报错信息?是逻辑错误吗?(我懒得运行)
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-3 12:14:12 | 显示全部楼层    本楼为最佳答案   
两种解决方案:
1,input获取的结果是字符串,把后面所有if条件里的数字改成'1','2'这个样子
2,x = int(input("请输入操作数:"))
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-5-1 11:48

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表