Python实现获取用户输入、将1-100分5段并判断输入所属分段
需求目标
编写Python代码实现以下逻辑:
- 接收用户输入的数值
- 将1-100的数字范围平均划分为5个等长区间
- 判断输入数值所属的区间编号并输出
参考示例:输入23时,正确输出的区间编号为2
当前提供的错误实现代码:
input = input("please give a number from 1 to 100: ") for i in range(0, 100, 20): if i == input[0]: print("1") if i == input[1]: print("2") print(input)
原代码错误点
- 直接将字符串类型的用户输入和整数做比较,还错误使用字符串索引取值,逻辑完全不匹配需求
- 区间判断逻辑只写了前两个区间的判断分支,没有覆盖全部5个区间
- 变量名使用了Python内置的
input函数名,会覆盖内置方法引发异常 - 没有做输入合法性校验,用户输入非数字、超出1-100范围的值时会直接报错
正确实现代码
# 获取并转换用户输入为整数 user_input = int(input("请输入1到100之间的数字: ")) # 校验输入范围 if not 1 <= user_input <= 100: print("输入不合法,请输入1-100范围内的整数") else: # 单区间长度为20,通过数学计算直接得到区间编号,适配边界值 section_num = (user_input - 1) // 20 + 1 print(section_num)
计算逻辑说明
5个等长区间分别为1-20、21-40、41-60、61-80、81-100,用(数值-1) // 20 + 1的公式可以直接算出对应区间号,不需要循环或多分支判断:
- 输入23时,(23-1)//20 +1 = 22//20 +1 = 1 +1 = 2,完全匹配示例要求
- 边界值20计算结果为1,21计算结果为2,100计算结果为5,没有边界判断误差
内容的提问来源于stack exchange,提问作者kiacoder
相关产品推荐
相关产品推荐

