python 类的学习 实例--编写学生类,录入成绩,入库

编写student类要求:
1.录入:学号、姓名、语文成绩、英语成绩、数学成绩

⒉.构造函数:计算平均成绩、总分、分数等级(90—100、60-90、0-60)

3.构造函数:学生信息分别存入数据库、.txt

import pymysql

class Student():
    def __init__(self, idnum, name,chiness_score, english_score, maths_score):
        """
        初始化函数,传入学生学号 姓名 各科目成绩
        然后算平均分和总分 (如果不在这里算要在函数里算,需要再次传入这些参数,比较麻烦)
        all变量是存储在txt中的语句
        :param idnum:
        :param name:
        :param chiness_score:
        :param english_score:
        :param maths_score:
        """
        self.idnum = idnum
        self.name = name
        self.chiness_score = chiness_score
        self.english_socre = english_score
        self.maths_score = maths_score
        self.ave_score = (chiness_score + english_score + maths_score) /3
        self.total_score = chiness_score + english_score + maths_score
        self.all = '姓名: ' + self.name +' 学号' + str(self.idnum) +'英语成绩: '+ str(self.english_socre)+\
            '语文成绩: '+str(chiness_score)+ ' 数学成绩'+ str(maths_score) + '总成绩'+ str(self.total_score) +'平均分:'+str(self.ave_score)

    def print_ave_score(self):
        """平均成绩"""
        print('%s:ave_score : %s ' % (self.name,self.ave_score))

    def print_total_score(self):
        """总成绩"""
        print('%s total_score: %s ' % (self.name,self.total_score))

    def get_rank(self):
        """得到等级"""
        if self.ave_score >= 90:
            return 'A'
        elif self.ave_score >= 60:
            return 'B'
        else:
            return 'C'

    def savetxt(self):
        """存储到txt文件中"""
        file = open('student.txt','a') #a是在文件末尾追加
        file.write(self.all+"\n")  #加一个换行符号
        # file.writelines(self.all+"\n")  # 需要加一个换行符号
        file.close()
        print('%s save success' % self.name)

    def savemysql(self):
        """存储到mysql数据库"""
        db = pymysql.connect(host='填入数据库地址 (本地localhost',user='填入用户名',password='填入密码',database='数据库名',port=3306,charset='utf8')
        cursor = db.cursor()
        cursor.execute('insert into score(idnum, name, chinese_score, english_score, maths_score, ave_score, total_score) values(%s,%s,%s,%s,%s,%s,%s)',[self.idnum, self.name, self.chiness_score, self.english_socre, self.maths_score, self.ave_score, self.total_score])
        db.commit() #需要加这个提交才可以
        cursor.close()
        db.close()
        print('%s 插入mysql成功' % self.name)
def main():
    idnum = int(input('请输入学号: '))
    name = str(input('请输入姓名:'))
    chinese_score = int(input('请输入语文成绩'))
    english_score = int(input('请输入英语成绩'))
    maths_score = int(input('请输入数学成绩'))

    student = Student(idnum,name,chinese_score,english_score,maths_score)
    student.print_ave_score()
    student.print_total_score()
    print('%s的分数等级: %s' % (student.name,student.get_rank()))
    student.savetxt()
    student.savemysql()


if __name__ == '__main__':
    main()

数据库表的设计:

猜你喜欢

转载自blog.csdn.net/qq_43200143/article/details/113832547