Zybooks 5.19实验:高尔夫分数Python代码测试不通过求助
高尔夫分数代码修正方案
你的问题出在par和strokes的差值判断逻辑搞反了,比如输入par=4、strokes=3时,正确差值是3-4=-1(strokes比par少1),对应Birdie,但你的代码可能错误地计算成了4-3=1,导致误判为Par。
以下是用基础if-elif语法写的修正代码,完全符合你没学过复杂语法的要求:
# 获取输入的par和strokes par = int(input()) strokes = int(input()) # 先验证par是否在合法范围(3、4、5) if par not in [3, 4, 5]: print("Error") else: # 计算击球数与标准杆的差值 score_diff = strokes - par # 根据差值判断成绩 if score_diff == -2: print("Eagle") elif score_diff == -1: print("Birdie") elif score_diff == 0: print("Par") elif score_diff == 1: print("Bogey") # 差值不在-2到1之间时输出Error else: print("Error")
测试验证
- 输入
4和3:差值为-1 → 输出Birdie(符合预期) - 输入
5和3:差值为-2 → 输出Eagle(符合预期) - 输入
3和3:差值为0 → 输出Par - 输入
4和5:差值为1 → 输出Bogey - 输入
6和4:par不合法 → 输出Error - 输入
3和6:差值为3 → 输出Error
内容的提问来源于stack exchange,提问作者Ballz Diggity
相关产品推荐
相关产品推荐

