如何在Python中实现0-100的输入范围校验功能?
实现0-100分数输入限制的Python解决方案
要解决输入分数必须在0-100之间的问题,我们可以封装一个带验证逻辑的输入函数,既避免重复代码,也能确保输入合法。同时修正原代码里的变量名错误(MarksList应为小写开头的marksList),还可以加入非整数输入的异常处理,让程序更健壮。
修改后的完整代码
def get_valid_mark(mark_number): while True: try: mark = int(input(f"enter mark {mark_number}: ")) if 0 <= mark <= 100: return mark else: print("错误:分数必须在0到100之间,请重新输入!") except ValueError: print("错误:请输入有效的整数分数!") print("please enter your 5 marks below") # 读取5个经过验证的分数 marksList = [get_valid_mark(i+1) for i in range(5)] # 打印分数列表 print(marksList) # 计算总和与平均值 sumOfMarks = sum(marksList) averageOfMarks = sumOfMarks / 5 # 展示结果 print(f"The sum of your marks is: {sumOfMarks}") print(f"The average of your marks is: {averageOfMarks}")
关键说明
- 输入验证函数:
get_valid_mark函数负责处理单个分数的输入,通过while True循环持续请求输入,直到用户提供合法的0-100之间的整数。 - 异常处理:捕获
ValueError,处理用户输入非整数的情况,给出明确错误提示。 - 列表推导式:用列表推导式简化5个分数的输入过程,替代原代码中重复的变量定义,让代码更简洁。
- 变量名修正:原代码中
sum(MarksList)的变量名大小写错误,改为sum(marksList)避免报错。 - 格式化输出:使用f-string替代字符串拼接,让结果打印代码更易读。
内容的提问来源于stack exchange,提问作者Bidja001
相关产品推荐
相关产品推荐

