Python 笔试输入模板总结

Python 笔试输入模板总结

1. 普通单行输入

适合输入一个整数:

复制代码
n = int(input())

适合输入一行多个整数:

复制代码
a, b = map(int, input().split())

适合输入一个数组:

复制代码
arr = list(map(int, input().split()))

2. 推荐笔试模板:sys.stdin.readline

适合大多数有明确行结构的题。

复制代码
import sys

input = sys.stdin.readline

读一个整数:

复制代码
n = int(input())

读一行多个整数:

复制代码
a, b = map(int, input().split())

读数组:

复制代码
arr = list(map(int, input().split()))

n 行数据:

复制代码
n = int(input())

for _ in range(n):
    a, b = map(int, input().split())

读多组测试数据:

复制代码
T = int(input())

for _ in range(T):
    n = int(input())
    arr = list(map(int, input().split()))

3. EOF 输入:每行一组数据

适合题目没有给 T,一直读到输入结束。

输入示例:

复制代码
1 2
3 4
10 20

模板:

复制代码
import sys

for line in sys.stdin:
    if not line.strip():
        continue

    a, b = map(int, line.split())
    print(a + b)

4. EOF 输入:所有数字连续处理

适合不关心换行,只按数字顺序处理。

输入示例:

复制代码
1 2
3 4
10 20

模板:

复制代码
import sys

data = list(map(int, sys.stdin.read().split()))

for i in range(0, len(data), 2):
    a = data[i]
    b = data[i + 1]
    print(a + b)

5. 没有固定行数,每组第一个数表示长度

输入示例:

复制代码
3 1 2 3
2 4 5
4 6 7 8 9

表示:

复制代码
长度3:1 2 3
长度2:4 5
长度4:6 7 8 9

模板:

复制代码
import sys

data = list(map(int, sys.stdin.read().split()))
idx = 0

while idx < len(data):
    n = data[idx]
    idx += 1

    arr = data[idx:idx + n]
    idx += n

    print(arr)

6. 数组可能分多行输入

如果题目说输入 n 个整数,但不保证在同一行。

输入示例:

复制代码
5
1 2
3 4
5

模板:

复制代码
import sys

data = list(map(int, sys.stdin.read().split()))

n = data[0]
arr = data[1:1 + n]

print(arr)

如果后面还有其他数据,用指针写法:

复制代码
import sys

data = list(map(int, sys.stdin.read().split()))
idx = 0

n = data[idx]
idx += 1

arr = data[idx:idx + n]
idx += n

7. 操作类题目

输入示例:

复制代码
5
1 8
1 9
7
1 6
8

模板:

复制代码
import sys

input = sys.stdin.readline

q = int(input())

for _ in range(q):
    op = list(map(int, input().split()))

    if op[0] == 1:
        pass
    elif op[0] == 2:
        pass

8. 输出优化

如果输出很多行,建议先存起来,最后一次性输出。

复制代码
ans = []

ans.append(str(123))
ans.append(str(456))

print("\n".join(ans))

例如:

复制代码
import sys

input = sys.stdin.readline

q = int(input())
ans = []

for _ in range(q):
    x = int(input())
    ans.append(str(x * 2))

print("\n".join(ans))

记忆口诀

复制代码
小数据:input()
大多数笔试:sys.stdin.readline()
读到 EOF:for line in sys.stdin
不管换行:sys.stdin.read().split()
输出很多:先存 ans,最后 join
相关推荐
2601_962299248 小时前
Azure python操作系统列表
python·操作系统·azure·虚拟机·存储配置文件
学术 学术 Fun9 小时前
如何用 API 与 Webhook 批量把图表图片转换成 VSDX
python·自动化·api·visio
淡海水9 小时前
07-04-并发-ConcurrentBag-T-工作窃取WorkStealing算法
开发语言·算法·c#·bag·concurrent·workstealing
leobertlan9 小时前
好玩系列:训练一个神经网络模型指导小孩玩游戏2-大局观教练
算法
2601_962100549 小时前
python包和模块的内容整理
python·模块·导入·虚拟环境·
二进制漫游记10 小时前
FastAPI项目集成 Qdrant向量数据库+阿里云Embedding完整实战(工具封装+业务调用)
数据库·python·阿里云·embedding
Tisfy10 小时前
LeetCode 3876.构造奇偶一致的数组 II:三种情况分类讨论(其实还是脑筋急转弯)
算法·leetcode·题解·脑筋急转弯
-今昭-10 小时前
《V2V 迁移实战:将 VMware 虚拟机转为 OpenStack 可用 Glance qcow2 镜像》
开发语言·python
乐迪信息11 小时前
智慧港口船舶AI算法实现在线状态监测
大数据·人工智能·深度学习·算法·计算机视觉
2601_9623815811 小时前
【转】Python渗透测试工具:sqlmap
python·渗透测试·sql注入·sqlmap·数据库安全