weixin_52544265
2021-06-21 19:12
采纳率: 100%
浏览 66

求助几个Python问题

1、利用Python编写程序实现⼀个简单的成绩管理系统。⾸先让⽤户不断输⼊姓名和成绩,直到输⼊为空时为⽌。接着让⽤户输⼊姓名后,查找并打印出成绩,对于不存在的姓名,给出提示,直到输⼊为空为⽌。(利⽤字典存储 姓名和成绩) 2、用户从键盘上输入10位学生的姓名和分数,请采用字典,程序最终输出平均分。(用Python解决)

3、用户从键盘上输入10位学生的学号、姓名和分数,这里采用字典。程序最终输出相同姓名的平均分。如果字典中不存在相同姓名的情况,则程序给出相应提示。(用Python解决)

4、实现函数offset,参数是一个列表。函数调整原列表中各元素的位置,规则如下:将第一个元素放到列表最后,将其余元素依次向前移动一位,如,列表['a','b','c','d']经调整位置后变为['b','c','d','a']。编写程序定义offset函数,然后初始化一个列表ls,调用函数offset(ls)10次,最终打印ls经过调整位置后的列表。(用Python解决) 5、采用合适的组合数据结构完成课程A的考勤记录统计。班上有多名同学,并且学号和姓名存储在name.txt文件中。本班的课程A总共有10次考勤记录,分别存储在10个文件中:r1.csv、r2.csv、… r10.csv。每一个csv文件的格式都相同,其中第一列和第二列分别表示在第一次考勤中(r1.csv)学生学号和姓名,第三列的1表示该生第1次考勤出勤,0则表示该生第1次考勤缺勤。请编写程序输出10次全勤同学的名字。(用Python解决)

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • CSDN专家-HGJ 2021-06-21 19:39
    已采纳
    #1
    
    print('******成绩管理系统******')
    print("输入学生姓名及成绩,输入为空结束:")
    dic={}
    while True:
        a=input()
        if a == '':
            break
        name,score=a.split()
        dic[name]=score
    while True:
        stu=input('输入查找的学生名:')
        if stu=='':break
        if stu in dic:
            print(f'{stu}成绩为{dic[stu]}')
        else:
            print('没有此学生')

    其他参照此写就行了。

    如有帮助请点击一下采纳按钮给予采纳。

    已采纳该答案
    评论
    解决 1 无用
    打赏 举报
  • CSDN专家-sinjack 2021-06-21 19:31

    如有帮助,请采纳。

     

    # -*- coding: UTF-8 -*-

    import os
    import re
    import numpy as np

    class Student: #定义一个学生类
     def __init__(self):
     self.name = ''
     self.ID =''
     self.score1 = 0
     self.score2 = 0
     self.score1 = 0
     self.sum = 0


    def searchByID(stulist, ID): #按学号查找看是否学号已经存在
     for item in stulist:
     if item.ID == ID:
     return True

    def Add(stulist,stu): #添加一个学生信息
     if searchByID(stulist, stu.ID) == True:
     print"学号已经存在!"
     return False
     stulist.append(stu)
     print stu.name,stu.ID, stu.score1, stu.score2, stu.score3, stu.sum;
     print "是否要保存学生信息?"
     nChoose = raw_input("Choose Y/N")
     if nChoose == 'Y' or nChoose == 'y':
     file_object = open("students.txt", "a")
     file_object.write(stu.ID)
     file_object.write(" ")
     file_object.write(stu.name)
     file_object.write(" ")
     file_object.write(str(stu.score1))
     file_object.write(" ")
     file_object.write(str(stu.score2))
     file_object.write(" ")
     file_object.write(str(stu.score3))
     file_object.write(" ")
     file_object.write(str(stu.sum))
     file_object.write("\n")
     file_object.close()
     print u"保存成功!"

    def Search(stulist, ID): #搜索一个学生信息
     print u"学号 姓名 语文 数学 英语 总分"
     count = 0
     for item in stulist:
     if item.ID == ID:
     print item.ID, '\t' ,item.name,'\t', item.score1,'\t',item.score2, '\t', item.score3, '\t',item.sum
     break
     count = 0
     if count == len(stulist):
     print "没有该学生学号!"

    def Del(stulist, ID): #删除一个学生信息
     count = 0
     for item in stulist:
     if item.ID == ID:
     stulist.remove(item)
     print "删除成功!"
     break
     count +=1
     # if count == len(stulist):
     # print "没有该学生学号!"
     file_object = open("students.txt", "w")
     for stu in stulist:
     print stu.ID, stu.name, stu.score1,stu.score2, stu.score3, stu.sum
     file_object.write(stu.ID)
     file_object.write(" ")
     file_object.write(stu.name)
     file_object.write(" ")
     file_object.write(str(stu.score1))
     file_object.write(" ")
     file_object.write(str(stu.score2))
     file_object.write(" ")
     file_object.write(str(stu.score3))
     file_object.write(" ")
     file_object.write(str(stu.sum))
     file_object.write("\n")
     file_object.close()
     # print "保存成功!"
     file_object.close()
    def Change(stulist, ID):
     count = 0
     for item in stulist:
     if item.ID == ID:
     stulist.remove(item)
     file_object = open("students.txt", "w")
     for stu in stulist:
     #print li.ID, li.name, li.score
     file_object.write(stu.ID)
     file_object.write(" ")
     file_object.write(stu.name)
     file_object.write(" ")
     file_object.write(str(stu.score1))
     file_object.write(" ")
     file_object.write(str(stu.score2))
     file_object.write(" ")
     file_object.write(str(stu.score3))
     file_object.write(" ")
     file_object.write(str(stu.sum))
     file_object.write("\n")
     # print "保存成功!"
     file_object.close()
     stu = Student()
     stu.name = raw_input("请输入学生的姓名")
     while True:
     stu.ID = raw_input("请输入学生的ID")
     p = re.compile('^[0-9]{3}$')
     if p.match(stu.ID):
     break
     else:
     print "输入的有错误!"
     while True:
     stu.score1 = int(raw_input("请输入学生语文成绩"))
     if stu.score1 <= 100 and stu.score1 > 0 :
     break
     else:
     print "输入的学生成绩有错误!"
     while True:
     stu.score2 = int(raw_input("请输入学生数学成绩"))
     if stu.score2 <= 100 and stu.score2 > 0 :
     break
     else:
     print "输入的学生成绩有错误!"
     while True:
     stu.score3 = int(raw_input("请输入学生英语成绩"))
     if stu.score3 <= 100 and stu.score3 > 0 :
     break
     else:
     print "输入的学生成绩有错误!"
     stu.sum = stu.score1 + stu.score2 + stu.score3
     Add(stulist,stu)
    def display(stulist): #显示所有学生信息
     print u"学号 姓名 语文 数学 英语 总分"
     for item in stulist:
     print item.ID, '\t' ,item.name,'\t', item.score1,'\t',item.score2, '\t', item.score3, '\t',item.sum

    def Sort(stulist): #按学生成绩排序
     Stu = []
     sum_count = []
     for li in stulist:
     temp = []
     temp.append(li.ID)
     temp.append(li.name)
     temp.append(int(li.score1))
     temp.append(int(li.score2))
     temp.append(int(li.score3))
     temp.append(int(li.sum))
     sum_count.append(int(li.sum))
     Stu.append(temp)

     #print sum_count
     #print Stu;
     #print stulist
     insertSort(sum_count, stulist)
     #print stulist;
     display(stulist)

    def insertSort(a, stulist): 
     for i in range(len(a)-1): 
     #print a,i 
     for j in range(i+1,len(a)): 
     if a[i]<a[j]: 
     temp = stulist[i] 
     stulist[i] = stulist[j] 
     stulist[j] = temp 
     #return a 

    def Init(stulist): #初始化函数
     print "初始化......"
     file_object = open('students.txt', 'r')
     for line in file_object:
     stu = Student()
     line = line.strip("\n")
     s = line.split(" ")
     stu.ID = s[0]
     stu.name = s[1]
     stu.score1 = s[2]
     stu.score2 = s[3]
     stu.score3 = s[4]
     stu.sum = s[5]
     stulist.append(stu)
     file_object.close()
     print "初始化成功!"
     main()

    def main(): #主函数 该程序的入口函数
     while True:
     print "*********************"
     print u"--------菜单---------"
     print u"增加学生信息--------1"
     print u"查找学生信息--------2"
     print u"删除学生信息--------3"
     print u"修改学生信息--------4"
     print u"所有学生信息--------5"
     print u"按照分数排序--------6"
     print u"退出程序------------0"
     print "*********************"

     nChoose = raw_input("请输入你的选择:")
     if nChoose == "1":
     stu = Student()
     stu.name = raw_input("请输入学生的姓名")
     while True:
     stu.ID = raw_input("请输入学生的ID")
     p = re.compile('^[0-9]{3}$')
     if p.match(stu.ID):
     break
     else:
     print "输入的有错误!"
     while True:
     stu.score1 = int(raw_input("请输入学生语文成绩"))
     if stu.score1 <= 100 and stu.score1 > 0 :
     break
     else:
     print "输入的学生成绩有错误!"
     while True:
     stu.score2 = int(raw_input("请输入学生数学成绩"))
     if stu.score2 <= 100 and stu.score2 > 0 :
     break
     else:
     print "输入的学生成绩有错误!"
     while True:
     stu.score3 = int(raw_input("请输入学生英语成绩"))
     if stu.score3 <= 100 and stu.score3 > 0 :
     break
     else:
     print "输入的学生成绩有错误!"
     stu.sum = stu.score1 + stu.score2 + stu.score3
     Add(stulist,stu)

     if nChoose == '2':
     ID = raw_input("请输入学生的ID")
     Search(stulist, ID)

     if nChoose == '3':
     ID = raw_input("请输入学生的ID")
     Del(stulist, ID)
     if nChoose == '4':
     ID = raw_input("请输入学生的ID")
     Change(stulist, ID)

     if nChoose == '5':
     display(stulist)

     if nChoose == '6':
     Sort(stulist)


     if nChoose == '0':
     break

    if __name__ == '__main__':
     stulist =[]
    Init(stulist)

    评论
    解决 1 无用
    打赏 举报
  • weixin_58022450 2021-06-22 15:53

    请问第二题和第四题会了吗

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题