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

Python for循环遍历input数字输入时多位数被拆为单字符如何解决

问题根源

直接调用input()得到的返回值是整行输入对应的完整字符串,对字符串直接执行for遍历时,迭代的最小单位是单个字符,因此12这类多位数会被拆成'1'、'2'两个独立字符输出,和预期逻辑不符。

修正方案

拿到输入字符串后,先调用split()方法按空白符做分割,得到由每个独立数字组成的列表,再遍历这个列表即可避免多位数被拆分的问题。

最基础的修正代码如下:

# 读取整行输入,按空白符分割为独立数字字符串组成的列表
x = input().split()
for i in x:
    print(i)

执行效果说明:

  • 输入样例12 21 15 19 8时,split()处理后得到的列表为['12', '21', '15', '19', '8'],遍历输出时每个元素都是完整的数字字符串,不会拆分单个数位
  • 要匹配题目给出的样例输出12 8,直接取列表的首尾元素打印即可,对应代码为print(x[0], x[-1])

如果后续需要对输入的数字做数值计算、大小比较这类操作,只需要在使用时把字符串格式的数字转为整数类型即可,示例代码:

x = input().split()
# 将所有字符串元素转为整数,得到数值列表
num_list = list(map(int, x))
# 此时可直接执行算术运算、最值判断等数值操作
print(f"最大值:{max(num_list)},最小值:{min(num_list)}")

注意事项

  • 不传参数调用split()时,会自动识别任意长度的空白分隔符,多个连续空格、输入首尾的多余空格、制表符都不会影响分割结果,不需要额外做字符串清洗。
  • 一定不要直接遍历input()的原始返回值,未做分割处理的字符串,迭代的最小单位永远是单个字符。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 18:15:51