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

如何在Python 3中单行输入n个数字?实现类似C++的范围输入

嘿,我来帮你搞定这两个Python单行输入的问题,都是日常写代码经常碰到的场景:

1. 如何在Python中从单行输入获取n个数字?

分两种常见情况来处理:

  • 已经明确要获取的数字个数n:
    咱们可以先读取整行输入,把它按空格拆成字符串列表,再转成数字类型就行。比如要拿3个整数:
n = 3
nums = list(map(int, input().split()[:n]))

要是你能保证输入刚好是n个数字,那直接去掉[:n]也完全没问题。需要浮点数的话,把int换成float就好。

  • 不确定数字个数,要把单行里所有数字都拿过来:
    这更简单,直接一行搞定:
nums = list(map(int, input().split()))

不管你输入多少个数字,它都会自动转成整数列表,空格分隔就行,多个连续空格也不影响。

2. 如何在Python 3中实现类似C++的范围输入功能,单行完成?

先明确下:C++里的范围输入一般是指批量读取多个值(比如给多个变量赋值,或者读入数组),而且咱们要限定在单行完成,不用多行输入。对应两种场景:

  • 给多个变量直接赋值(类似C++的cin >> a >> b >> c)
    直接拆分输入的内容,赋值给变量就行,比如:
a, b, c = map(int, input().split())

注意输入的数字个数要和变量数匹配,不然会报错。要是想接收多余的输入,可以用*来兜底:

a, b, *remaining_nums = map(int, input().split())

这样a和b取前两个数字,剩下的都会放到remaining_nums列表里,灵活性拉满。

  • 读取指定范围的数字到列表(类似C++循环读入数组)
    比如要读5个数字到列表,单行输入的话,和第一个问题里已知n的情况类似,比如:
# 只取前5个数字,不管输入多少
target_nums = list(map(int, input().split()))[:5]
# 要是确定输入刚好5个,直接转成列表就行
target_nums = list(map(int, input().split()))

之后你就可以像C++遍历数组那样,用循环处理这个列表里的元素啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 09:01:19