Python实现考试得分加调分后最高不超过100分的代码问题咨询
Python调分上限逻辑实现方案
你要实现的加分后最高不超过100的逻辑有两种实现方式:
方案1:直接补全当前卡住的elif分支逻辑
把你写的print("This is where I am stuck.")替换为以下代码即可:
newTotalPoint = 100 print("Total points = ", newTotalPoint, "/", outOf)
方案2:简化判断逻辑(更推荐)
不需要拆分两个分支做判断,直接用Python内置的min()函数就能自动处理上限逻辑,代码更简洁,也不容易出逻辑漏洞。
修改后的完整中文版本代码如下:
# 程序说明输出 print("本程序会读取考试/作业分数并计算你的课程总绩点。") print() # 期中1模块标题 print("期中1:") # 读取输入并计算总得分的函数 def totalPoint(): # 询问用户该项成绩的占比 weight = int(input("占比(0-100)? ")) # 询问用户原始得分,满分100 scoreEarned = int(input("获得分数? ")) # 固定该项满分为100 outOf = 100 # 询问用户是否需要调分 yesOrNo = int(input("是否需要调分(1=是, 2=否)? ")) # 调分逻辑 if yesOrNo == 1: # 读取调分额度 scoreShift = int(input("调分额度? ")) # 计算最终得分,最高不超过100 newTotalPoint = min(scoreEarned + scoreShift, 100) print("总分数 = ", newTotalPoint, "/", outOf) else: # 无需调分直接输出原始得分 print("总分数 = ", scoreEarned, "/", outOf) totalPoint()
逻辑说明
min()函数会返回传入参数中的最小值,当scoreEarned + scoreShift大于100时,会自动取100作为最终结果,完全匹配“加分后超过100也仅返回100”的需求,不需要额外写多个条件判断。
内容的提问来源于stack exchange,提问作者Michael Trujillo
相关产品推荐
相关产品推荐

