Python成绩统计程序gradeLetter函数实现问题求助
问题排查
gradeLetter函数逻辑运算符使用错误:条件判断中你用了逻辑或or,以第一个判断为例,grade > 90 or grade <= 100只要满足其中一个条件就会触发返回,所有≤100的合法成绩都会直接返回A,不会执行后续判断- 边界值缺失:刚好等于90、80、70、60的成绩没有被现有条件覆盖,会出现判断异常
- 主函数未调用等级转换逻辑:现有代码仅输出平均分值,没有调用
gradeLetter获取对应的字母等级
修正后完整代码
def main(): grade1 = int(input("Please enter your first grade: ")) grade2 = int(input("Please enter your second grade: ")) grade3 = int(input("Please enter your third grade: ")) grade4 = int(input("Please enter your fourth grade: ")) grade5 = int(input("Please enter your fifth grade: ")) avg = calcAverage(grade1, grade2, grade3, grade4, grade5) print("平均成绩为:", avg) print("对应字母等级为:", gradeLetter(avg)) def gradeLetter(grade): if 90 <= grade <= 100: return 'A' elif 80 <= grade < 90: return 'B' elif 70 <= grade < 80: return 'C' elif 60 <= grade < 70: return 'D' else: return 'F' def calcAverage(grade1, grade2, grade3, grade4, grade5): avg = (grade1 + grade2 + grade3 + grade4 + grade5) / 5 return avg main()
内容的提问来源于stack exchange,提问作者MajesticCat
相关产品推荐
相关产品推荐

