diff --git a/main.py b/main.py index d402f83..be043cc 100644 --- a/main.py +++ b/main.py @@ -125,17 +125,27 @@ for _ in range(run_count): # 按照提交时间降序排序 sorted_grade = sorted(grade, key=lambda x: x["submission_time"], reverse=True) - # 学分绩点总和 - total_xfjd = sum(float(course["xfjd"]) for course in grade) - # 学分总和 total_credit = sum(float(course["credit"]) for course in grade) - # (学分*绩点)的总和/学分总和 + # 学分绩点总和 + total_xfjd = sum(float(course["xfjd"]) for course in grade) + + # (百分制成绩*学分)的总和 + sum_of_percentage_grades_multiplied_by_credits = sum( + float(course["percentage_grades"]) * float(course["credit"]) for course in grade + ) + + # 百分制GPA计算 (百分制成绩*学分)的总和/学分总和 + percentage_gpa = "{:.2f}".format( + sum_of_percentage_grades_multiplied_by_credits / total_credit + ) + + # GPS计算 (学分*绩点)的总和/学分总和 gpa = "{:.2f}".format(total_xfjd / total_credit) # 整合个人信息 - integrated_info += f"当前GPA:{gpa}\n------" + integrated_info += f"当前GPA:{gpa}(百分制:{percentage_gpa})\n" f"------" # 初始化输出成绩信息字符串 integrated_grade_info = "成绩信息:" diff --git a/test.txt b/test.txt new file mode 100644 index 0000000..7febd12 --- /dev/null +++ b/test.txt @@ -0,0 +1 @@ +[{'course_id': '04050003', 'title': 'ҳƻ', 'teacher': '', 'class_name': '(2023-2024-1)-04050003-1', 'credit': '3.5', 'category': 'רҵѧϰ', 'nature': '޿', 'grade': 92, 'grade_point': '4.2', 'grade_nature': '', 'start_college': 'ϵ', 'mark': '', 'submission_time': '2024-01-29 12:57:32', 'name_of_submitter': '', 'xfjd': '14.70', 'percentage_grades': '92'}, {'course_id': 'FFC9462325AF13ABE055C1C514C140A8', 'title': 'Python', 'teacher': 'ʤ;½', 'class_name': '(2023-2024-1)-04050032-1', 'credit': '4.5', 'category': 'רҵѧϰ', 'nature': '޿', 'grade': 74, 'grade_point': '2.4', 'grade_nature': '', 'start_college': 'ϵ', 'mark': '', 'submission_time': '2024-01-28 18:38:53', 'name_of_submitter': 'ʤ', 'xfjd': '10.80', 'percentage_grades': '74'}, {'course_id': '29', 'title': '1', 'teacher': '캣', 'class_name': '(2023-2024-1)-29-4', 'credit': '3.0', 'category': '', 'nature': '޿', 'grade': 66, 'grade_point': '1.6', 'grade_nature': '', 'start_college': '', 'mark': '', 'submission_time': '2024-01-21 20:11:00', 'name_of_submitter': '캣', 'xfjd': '4.80', 'percentage_grades': '66'}, {'course_id': 'E1EB8ADEBC0166D6E055C1C514C140A8', 'title': '¼', 'teacher': '', 'class_name': '(2023-2024-1)-95010002-60', 'credit': '2.0', 'category': '', 'nature': '޿', 'grade': '', 'grade_point': '1.0', 'grade_nature': '', 'start_college': 'ϵ', 'mark': '', 'submission_time': '2023-11-24 11:45:27', 'name_of_submitter': '', 'xfjd': '2.00', 'percentage_grades': '60'}, {'course_id': 'E1E03C639E504455E055C1C514C140A8', 'title': 'ѧ', 'teacher': '', 'class_name': '(2023-2024-1)-98010001-21', 'credit': '1.0', 'category': '', 'nature': '޿', 'grade': 85, 'grade_point': '3.5', 'grade_nature': '', 'start_college': 'ϵ', 'mark': '', 'submission_time': '2024-01-23 23:11:02', 'name_of_submitter': '', 'xfjd': '3.50', 'percentage_grades': '85'}, {'course_id': 'E75E02A9F963458FE055C1C514C140A8', 'title': 'Ӧѧ', 'teacher': 'Ԫ', 'class_name': '(2023-2024-1)-99010008-5', 'credit': '3.5', 'category': '', 'nature': '޿', 'grade': '', 'grade_point': '3.5', 'grade_nature': '', 'start_college': '', 'mark': '', 'submission_time': '2024-02-01 11:22:23', 'name_of_submitter': 'Ԫ', 'xfjd': '12.25', 'percentage_grades': '85'}, {'course_id': '071AC474870428F3E065C1C514C140A8', 'title': 'й', 'teacher': '޿;', 'class_name': '(2023-2024-1)-99020013-1', 'credit': '2.0', 'category': 'ѧϰ', 'nature': '޿', 'grade': 67, 'grade_point': '1.7', 'grade_nature': '', 'start_college': '', 'mark': '', 'submission_time': '2024-01-23 22:48:10', 'name_of_submitter': '޿', 'xfjd': '3.40', 'percentage_grades': '67'}] \ No newline at end of file diff --git a/zfn_api.py b/zfn_api.py index f3ad092..c4d3eba 100644 --- a/zfn_api.py +++ b/zfn_api.py @@ -6,7 +6,6 @@ import time import traceback import unicodedata from urllib.parse import urljoin - import requests import rsa from pyquery import PyQuery as pq @@ -439,6 +438,7 @@ class Client: "submission_time": i.get("tjsj"), "name_of_submitter": i.get("tjrxm"), "xfjd": i.get("xfjd"), + "percentage_grades": i.get("bfzcj"), } for i in grade_items ],