ACM 算法题中Python 读取输入的核心痛点是速度必须用sys.stdin和格式解析拆分、类型转换、多行读取。下面按最常用场景整理直接复制就能用一、必备前置提速导入必写所有 ACM 输入都建议用这个比input()快 10 倍以上避免超时importsys# 一次性读取所有输入最推荐速度最快inputsys.stdin.read().split()二、最常用全局指针读取法万能通用这是Python 做 ACM 最稳、最通用的方法一次性读入所有数据用指针挨个取不用管换行、空格完美适配所有题目格式。模板代码直接背importsysdefmain():# 读取所有输入切成纯数据列表自动忽略空格/换行datalist(map(int,sys.stdin.read().split()))idx0# 指针记录当前读到哪了# 开始读取数据ndata[idx]idx1mdata[idx]idx1# 读取数组arrdata[idx:idxn]idxnprint(n,m)print(arr)if__name____main__:main()三、分场景常用操作1. 读取单个数字# 方法1快nint(sys.stdin.readline())# 方法2万能指针法datalist(map(int,sys.stdin.read().split()))ndata[0]2. 读取一行多个数字最常用输入示例3 5 7# 直接转成整数列表numslist(map(int,sys.stdin.readline().split()))# 解包赋值知道数量时a,b,cmap(int,sys.stdin.readline().split())3. 读取多行数据输入示例2 1 2 3 4# 先读行数nint(sys.stdin.readline())for_inrange(n):x,ymap(int,sys.stdin.readline().split())4. 读取字符串含空格/不含空格# 读取一行字符串不含换行ssys.stdin.readline().strip()# 读取一行多个字符串strssys.stdin.readline().split()四、高频完整模板直接套用模板1多组测试用例T组输入importsysdefmain():datalist(map(int,sys.stdin.read().split()))idx0Tdata[idx]# 测试用例数idx1for_inrange(T):ndata[idx]idx1arrdata[idx:idxn]idxn# 处理逻辑print(sum(arr))if__name____main__:main()模板2读取矩阵n行m列importsysdefmain():n,mmap(int,sys.stdin.readline().split())matrix[]for_inrange(n):rowlist(map(int,sys.stdin.readline().split()))matrix.append(row)print(matrix)if__name____main__:main()五、关键注意事项绝对不要用input()数据量大时必超时全程用sys.stdinstrip()作用去除字符串首尾的空格、换行符避免脏数据split()作用按任意空白空格、换行、Tab拆分完美适配ACM输入格式类型转换ACM 几乎都是整数统一用map(int, ...)转换EOF 读取不知道输入行数时用sys.stdin.read()一次性读取最安全总结万能方案sys.stdin.read().split() 指针索引适配所有题目简单方案sys.stdin.readline()读取单行map(int, ...)转整数核心提速抛弃内置input()只用sys.stdin读取输入