Python成绩计算程序问题:调用calc_average函数获取平均分失败求助
Python成绩计算程序修复方案
你的calc_average函数设计为接收5个位置参数(test1到test5),直接传入main函数中获取的5个测试成绩变量即可。另外原代码里还有个小问题:打印成绩表格时,numeric grade列被写死成了50,需要替换成实际输入的分数。
以下是修复后的完整代码:
def determine_grade(score): if score >= 90: return 'A' elif score >= 80: return 'B' elif score >= 70: return 'C' elif score >= 60: return 'D' else: return 'F' def calc_average(test1, test2, test3, test4, test5): avg = sum((test1, test2, test3, test4, test5))/5 return avg def main(): test1 = int(input('Enter score 1: ')) test2 = int(input('Enter score 2: ')) test3 = int(input('Enter score 3: ')) test4 = int(input('Enter score 4: ')) test5 = int(input('Enter score 5: ')) # 调用calc_average函数,传入5个成绩变量 average_score = calc_average(test1, test2, test3, test4, test5) # 计算平均分对应的等级 average_grade = determine_grade(average_score) print('Average of the Test Scores') print() print(f'{"score":>5}{"numeric grade":>20}{"letter grade":>15}') print('----------------------------------------') test1_score = determine_grade(test1) # 替换写死的50为实际输入的test1 print(f'{"score 1:":<5}{test1:>10}{test1_score:>15}') test2_score = determine_grade(test2) print(f'{"score 2:":<5}{test2:>10}{test2_score:>15}') test3_score = determine_grade(test3) print(f'{"score 3:":<5}{test3:>10}{test3_score:>15}') test4_score = determine_grade(test4) print(f'{"score 4:":<5}{test4:>10}{test4_score:>15}') test5_score = determine_grade(test5) print(f'{"score 5:":<5}{test5:>10}{test5_score:>15}') # 新增打印平均分的行 print('----------------------------------------') print(f'{"Average:":<5}{average_score:>10.2f}{average_grade:>15}') main()
关键修改点:
- 在main函数中调用
calc_average(test1, test2, test3, test4, test5),传入你获取的5个测试成绩变量,得到平均分 - 将表格中
numeric grade列的固定值50替换为对应的test1、test2等实际输入分数 - 新增了平均分的打印行,同时计算并显示平均分对应的字母等级
内容的提问来源于stack exchange,提问作者Mohammed_h
相关产品推荐
相关产品推荐

