You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从input输入获取整数列表用于计算并解决reduce调用类型错误

问题解决方法

你遇到的报错根源有两个:

  1. input() 返回的是完整字符串,直接用list(listOfNums)会把字符串拆为单个字符组成的列表,所有元素都是字符串类型
  2. Python3中reduce需要先从functools模块导入才能使用

完整修改方案

1. 基础可用版本

from functools import reduce

# 接收输入并处理为数字列表
listOfNums = input("Type Numbers ")
# 按空格拆分后转浮点型,兼容整数、小数输入,若只需整数可把float改为int
num_list = [float(num) for num in listOfNums.split()]

def calcR(num1, num2):
    return 1 / ((1 / num1) + (1 / num2))

result = round(reduce(calcR, num_list), 5)
print(result)

2. 效果验证

如果在输入框键入2 4 4,程序会自动转换为[2.0,4.0,4.0]传入计算,最终输出结果为1.0,符合并联电阻计算逻辑。

可选:增强输入健壮性

如果需要避免用户输入非数字内容导致崩溃,可以增加输入校验逻辑:

from functools import reduce

listOfNums = input("Type Numbers ")
num_list = []
for num_str in listOfNums.split():
    try:
        num_list.append(float(num_str))
    except ValueError:
        print(f"忽略非法输入:{num_str}")

def calcR(num1, num2):
    return 1 / ((1 / num1) + (1 / num2))

# 校验列表长度至少为2才能调用reduce计算
if len(num_list) >=2:
    result = round(reduce(calcR, num_list), 5)
    print(result)
else:
    print("请至少输入2个有效数字")

内容的提问来源于stack exchange,提问作者Sayed Reda

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 08:36:05