鱼C论坛

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

[已解决]程序运行不了

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

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

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

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

#M=[]
#添加函数
def add():
    m={}
    while True:
        N1=input('请输入学生姓名:')
        if not N1:   # 名字为空 跳出循环
            break
        N2=input('请输入学生性别:')
        N3=input('请输入学生年龄:')
        N4=input('请输入学生语文成绩:')
        N5=input('请输入学生数学成绩:')
        m={'姓名':N1,'性别':N2,'年龄':N3,'语文成绩':N4,'数学成绩':N5}
        M.append(m)

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

#删除函数
def del_():
    d=input('请输入删除的学生名字:')
    for i in M:
        if d == i['姓名']:
            M.remove(i)
            
#查找函数
def find_():
    f=input('请输入要查找的学生姓名:')
    for i in M:
        if f == i['姓名']:
            print('姓名','性别'.center(6),'年龄'.center(4),'语文成绩'.center(4),'数学成绩')
            print(i.get('姓名'),i.get('性别').center(3),i.get('年龄').center(8),i.get('语文成绩').center(10),i.get('数学成绩'))
            
#单科排名函数(高—低)
def score():
    print("按学生%s高-低显示"%X)
    print('姓名','性别'.center(6),'年龄'.center(4),'语文成绩'.center(4),'数学成绩')
    s=sorted(M,key=lambda i:int(i[X]),reverse=True)
    for i in s:
        print(i.get('姓名'),i.get('性别').center(3),i.get('年龄').center(8),i.get('语文成绩').center(10),i.get('数学成绩'))
       
#总分排名函数(高—低)        
def add_score():
    print("按学生总分高-低显示")
    print('姓名','性别'.center(6),'年龄'.center(4),'语文成绩'.center(4),'数学成绩','总分')
    s=sorted(M,key=lambda i:int(i['语文成绩'])+int(i['数学成绩']),reverse=True)
    for i in s:
        print(i.get('姓名'),i.get('性别').center(3),i.get('年龄').center(8),i.get('语文成绩').center(10),i.get('数学成绩'),str(int(i['语文成绩'])+int(i['数学成绩'])).center(10))

#保存文件函数
def save():
    k=open("students.txt",'w')
    for i in M:
        k.write(str(i)+"\n")
    k.close()
#主函数
def main():
    M=[]
    meun()
    x=input('请输入操作数:')
    while True:
        if x == 1:
            add()
        elif x == 2:
            find_()
        elif x == 3:
            del_()
        elif x == 4:
            show()
        elif x == 5:
            score(X='语文成绩')
        elif x == 6:
            score(X='数学成绩')
        elif x == 7:
            add_score()
        elif x == 8:
            save()
main()
最佳答案
2020-3-3 12:14:12
两种解决方案:
1,input获取的结果是字符串,把后面所有if条件里的数字改成'1','2'这个样子
2,x = int(input("请输入操作数:"))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-3-3 12:09:14 | 显示全部楼层
有没有报错信息?是逻辑错误吗?(我懒得运行)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-12 06:52

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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