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

Python单行输入三个整数报错,求修复方案及单行写法

问题修复方案

问题原因

原代码里input()每次读取一整行输入,当你在同一行输入2 5 6时,第一次input()拿到的是完整字符串'2 5 6',直接转整数会触发ValueError——带空格的字符串不是合法的十进制整数。

修复方法

1. 适配单行输入的标准写法

把整行输入按空格分割后转成整数,再分配给变量:

a, b, c = map(int, input().split())
print(min(a+b, b+c, c+a))
  • input().split():将输入的整行文本按空格(含多连续空格、制表符)分割成字符串列表,比如输入2 5 6会得到['2', '5', '6']
  • map(int, ...):把列表里的每个字符串转成整数
  • a, b, c = ...:将三个整数分别赋值给对应变量

2. 兼容单行/多行输入的灵活写法

如果要支持用户既可以一行输三个数,也可以分多行输入,可先收集所有输入的整数再处理:

nums = []
while len(nums) < 3:
    nums.extend(map(int, input().split()))
a, b, c = nums[:3]
print(min(a+b, b+c, c+a))

3. 极简单行写法(技巧性)

追求代码简洁的话,能用生成器表达式直接计算:

print(min(sum(p) for p in zip(*[iter(map(int, input().split()))]*2)))

原理:通过iter和zip把整数列表两两分组,计算每组的和后取最小值。

4. 增加输入合法性校验

要确保用户恰好输入三个整数,可添加判断逻辑:

nums = list(map(int, input().split()))
if len(nums) != 3:
    print("请输入且仅输入三个整数")
else:
    print(min(nums[0]+nums[1], nums[1]+nums[2], nums[0]+nums[2]))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 00:20:01