如何编写程序限制input函数仅接受0-100范围值并处理4门考试成绩
实现限制输入范围的考试成绩收集程序
核心逻辑
针对每门考试成绩,我们需要完成两类输入校验:
- 若用户输入
INC(不区分大小写),直接标记为未参加考试 - 若输入数值,必须确保在0-100的有效范围内,否则重新提示用户输入
完整代码实现
def get_valid_score(subject): while True: user_input = input(f"请输入{subject}的成绩(未参加请输入INC):").strip().upper() # 处理未参加考试的情况 if user_input == "INC": return "INC" # 校验数值输入的有效性 try: score = float(user_input) if 0 <= score <= 100: return score else: print("错误:成绩必须在0-100之间,请重新输入") except ValueError: print("错误:请输入有效的数值或INC,请重新输入") # 收集4门考试成绩 subjects = ["语文", "数学", "英语", "综合"] scores = [] for subj in subjects: valid_score = get_valid_score(subj) scores.append(valid_score) # 输出最终结果 print("\n你的4门考试成绩如下:") for subj, score in zip(subjects, scores): print(f"{subj}: {score}")
代码细节解释
get_valid_score函数:封装了输入校验的核心逻辑,通过循环持续获取输入,直到用户提供有效内容- 将输入转为大写并去除首尾空格,确保
inc、Inc等输入都能被识别为未参加标记 - 使用
try-except捕获非数值输入的异常,避免程序因无效输入崩溃 - 对数值输入做区间校验,不符合0-100范围时给出明确错误提示
- 将输入转为大写并去除首尾空格,确保
- 主程序流程:定义科目列表,循环调用校验函数收集每门成绩,最后格式化输出所有结果
内容的提问来源于stack exchange,提问作者Robert Cuzo
相关产品推荐
相关产品推荐

