Python3 GPA计算器:字母转分数的if语句无法执行问题求助
解决你的GPA计算器if语句不执行问题
嘿,我一眼就发现了几个导致代码异常的问题,这就是你的第一个if语句没法触发的原因:
1. 变量类型用错了
你把yourGrade定义成了字典{},但字典根本没有append()方法!你需要用来存储分数的是列表,所以得把初始化语句改成:
yourGrade = []
2. 大小写匹配逻辑出错
你用score.lower()把输入的等级转成了小写,但后续判断的却是大写的'A'、'A+',这两者永远不会相等!得把判断条件里的等级改成小写形式,让转小写后的输入能匹配上。
3. (可选)简化条件判断
多个or拼接的条件可以用in来简化,让代码更简洁易读。
另外你的原代码缩进也有点混乱,我帮你整理并修正了完整代码:
yourGrade = [] while True: score = input("Enter your letter grades: ") # input本身就是字符串,不用再转str lower_score = score.lower() if lower_score in ['a', 'a+', 'a-']: yourGrade.append(4) print(yourGrade) if lower_score == 'done': break print(yourGrade)
这样修改后,输入A/A+/A-都会正确把4添加到列表中,输入done就会退出循环。如果后续要添加其他等级(比如B、C系列),只需要扩展in后面的列表,并对应修改append的分数值就可以啦~
内容的提问来源于stack exchange,提问作者Noah E
相关产品推荐
相关产品推荐

