Python代码修正:实现支持十进制小数输入的列表除法运算
解决Python输入十进制小数的问题
你的代码核心问题是用了int类型来转换输入值,导致无法处理小数。只需要把int转换改成float,再调整一下列表长度判断的逻辑,就能完美支持小数输入场景了。
修正后的代码
a = input() b = input() # 将int替换为float,实现小数输入的转换 list1 = list(map(float, a.split())) list2 = list(map(float, b.split())) # 先判断两个输入的数字数量是否一致,避免循环时出现索引越界 if len(list1) != len(list2): print("两个输入的数字数量必须相同哦") else: output = [] # 用zip同时遍历两个列表的元素,比索引遍历更简洁安全 for num1, num2 in zip(list1, list2): # 计算除法后保留1位小数 res = round(num1 / num2, 1) output.append(str(res)) # 用空格连接结果输出,避免末尾多一个空格的小问题 print(" ".join(output))
关键修改说明
- 类型转换替换:把
map(int, ...)改成map(float, ...),这样输入的1.23、4.1这类小数就能被正确转换成浮点数,而不会报错。 - 提前判断长度:将列表长度的检查移到循环外面,要是两个输入的数字数量不一样,会直接提示错误,避免循环到一半出现索引越界的问题。
- 优化循环逻辑:用
zip同时遍历两个列表的元素,写法更简洁,也不用手动处理索引,减少出错概率。 - 输出优化:先把结果存到列表里再用
join输出,解决了原代码最后会多一个空格的小瑕疵。
测试验证
整数输入场景
输入:
1 2 3 4 2 3 4 5
输出:
0.5 0.7 0.8 0.8
小数输入场景
输入:
1.23 4.1 51.3 44 2 4.1 4 5
输出:
0.6 1.0 12.8 8.8
内容的提问来源于stack exchange,提问作者pythonbg
相关产品推荐
相关产品推荐

