06_输入输出
输入输出
基础输入
# 单个整数
n = int(input())
# 多个整数(空格分隔)
a, b = map(int, input().split())
# 一行整数转列表
arr = list(map(int, input().split()))
# 去除换行符
s = input().strip() # 去除首尾空白(含 \n)
# 读取 n 行到列表
arr = [int(input()) for _ in range(n)]
# 读取到文件结尾(EOF):直接遍历 sys.stdin
for line in sys.stdin:
line = line.strip()
if not line:
break
a, b = map(int, line.split())
print(a + b)# ⚠️ input() 会保留换行符,需要 strip()
s = input().strip() # 去除 '\n'
# ⚠️ int() 会自动去除空白和符号
int(" 123 ") # 123
int("-123") # -123
int("+123") # +123readline() / readlines() / read() 的区别
import sys
# 输入:
# Hello
# World
# !
# 使用 readline():每次读一行,保留 '\n',EOF 时返回 ""
line1 = sys.stdin.readline() # "Hello\n"
line2 = sys.stdin.readline() # "World\n"
line3 = sys.stdin.readline() # "!\n"
line4 = sys.stdin.readline() # ""
# 使用 readlines():一次读完,按行分成列表
lines = sys.stdin.readlines() # ["Hello\n", "World\n", "!\n"]
# 使用 read():一次读完,整个内容作为一个字符串
content = sys.stdin.read() # "Hello\nWorld\n!\n"strip() 与 split()
s = " hello \n\t"
print(repr(s.rstrip())) # 移除右侧空白字符 → "' hello'"
print(repr(s.lstrip())) # 移除左侧空白字符 → "'hello \n\t'"
print(repr(s.strip())) # 移除两侧空白字符 → "'hello'"str.split(sep=None, maxsplit=-1)- sep:分隔符,默认为任何空白字符
- maxsplit:最大分割次数,默认为 -1(不限制)
输出
print(x) # 单个值
print(a, b, c) # 多个值(默认空格分隔)
# 空格分隔的列表
print(*ans) # 解包输出
print(" ".join(map(str, ans))) # join 输出
# 不换行输出
print(x, end='') # 末尾不换行
print(x, end=' ') # 末尾加空格
# 交互题:必须加 flush!强制刷新缓冲区
print(f"? {mid}")
sys.stdout.flush()常用配置
# 加速输入
import sys
input = sys.stdin.readline
# 设置递归深度(DFS 必备)
sys.setrecursionlimit(10**6)
# 常用导入
import math
import itertools
import bisect
from collections import deque, Counter, defaultdict
# 常用常量
INF = 10**18 # 无穷大(整数,推荐)
MOD = 10**9 + 7 # 取模
# ⚠️ 禁止用浮点数作为 INF,会导致 TLE
# INF = 1e9 # 错误!浮点数运算慢
# INF = float('inf') # 错误!浮点数运算慢常见陷阱
# 列表 * n 可能是浅拷贝
a = [[0] * 3] * 3 # 错误!三个引用同一列表
a = [[0] * 3 for _ in range(3)] # 正确
# 浮点数比较
abs(a - b) < 1e-9 # 判断浮点数相等空字典 vs 空集合
a = {} # 空字典(dict)
b = set() # 空集合(set)
print(type(a)) # <class 'dict'>
print(type(b)) # <class 'set'>如何创建空集合
# ❌ 错误:这是字典,不是集合
a = {}
# ✅ 正确:创建空集合
b = set()
# ✅ 正确:创建带初始值的集合
c = {1, 2, 3}记忆方法
| 写法 | 类型 | 说明 |
|---|---|---|
{} |
dict | 大括号里有键值对或为空时是字典 |
{1} |
set | 大括号里只有值时是集合 |
set() |
set | 明确表示集合 |
典型应用:差分数组
diff = {}
# 对区间 [l, r) 加 v
diff[l] = diff.get(l, 0) + v # 起点加 v
diff[r] = diff.get(r, 0) - v # 终点减 v06_输入输出
https://mingsm17518.github.io/2026/09/19/算法学习/01_数据结构/06_输入输出/