以下是一些在蓝桥杯中常用的 Python 标准库模块,它们可以帮助解决各种编程任务,如数学计算、字符串处理、文件操作、数据结构等。
用途:提供常见的数学函数,如三角函数、对数、阶乘、平方根、常数等。
常用函数:
math.factorial(n):计算 n 的阶乘。
math.sqrt(x):计算平方根。
math.gcd(a, b):计算最大公约数。
math.ceil(x):向上取整。
math.floor(x):向下取整。
math.pi:圆周率常数。
math.sin(x)、math.cos(x)、math.tan(x):三角函数。
用途:提供了额外的数据结构,如 deque(双端队列)、Counter(计数器)、OrderedDict(有序字典)等,常用于优化算法。
常用类和函数:
collections.Counter:用于统计元素出现的次数。
collections.deque:双端队列,支持从两端快速插入和删除。
collections.defaultdict:带有默认值的字典。
collections.OrderedDict:保持插入顺序的字典。
用途:用于高效地处理迭代器,提供一些常见的迭代器操作工具,如排列组合等。
常用函数:
itertools.permutations(iterable, r):返回 iterable 的所有排列。
itertools.combinations(iterable, r):返回 iterable 的所有组合。
itertools.product(*iterables):返回笛卡尔积(类似嵌套的 for 循环)。
itertools.chain(*iterables):将多个迭代器连接成一个。
itertools.count(start=0, step=1):返回一个从 start 开始,步长为 step 的无限迭代器。
用途:提供一些高阶函数,常用于函数式编程,如缓存、部分函数应用等。
常用函数:
functools.lru_cache(maxsize=128):为函数添加缓存,避免重复计算,提高效率。
functools.partial(func, *args, **kwargs):部分应用函数,预填充一些参数。
用途:提供堆队列算法,通常用于优先队列(最小堆)。
常用函数:
heapq.heappush(heap, item):将元素推入堆中。
heapq.heappop(heap):弹出堆中的最小元素。
heapq.nlargest(n, iterable):返回 iterable 中前 n 个最大元素。
heapq.nsmallest(n, iterable):返回 iterable 中前 n 个最小元素。
用途:提供常见的字符串操作功能,适用于字符串的处理和匹配。
常用常量和函数:
string.ascii_letters:所有 ASCII 字母(大小写)。
string.digits:所有数字字符('0123456789')。
string.punctuation:所有标点符号。
string.whitespace:所有空白字符。
string.join(iterable):将 iterable 中的元素用指定分隔符连接成一个字符串。
用途:提供正则表达式功能,用于字符串模式匹配和搜索。
常用函数:
re.match(pattern, string):从字符串的起始位置匹配正则表达式。
re.search(pattern, string):搜索整个字符串,返回第一个匹配的结果。
re.findall(pattern, string):返回所有匹配的结果。
re.sub(pattern, repl, string):替换字符串中匹配正则表达式的部分。
用途:提供对 Python 解释器的访问,如处理命令行参数、获取程序运行时的信息等。
常用函数:
sys.argv:获取命令行参数。
sys.exit():退出程序。
sys.stdin、sys.stdout:用于标准输入和输出流。
用途:提供与操作系统交互的功能,如文件和目录操作、环境变量等。
常用函数:
os.path:文件和路径操作(如 os.path.join()、os.path.exists())。
os.remove():删除文件。
os.mkdir():创建目录。
os.listdir():列出指定目录中的文件和目录。
用途:用于处理 JSON 数据的解析和生成。
常用函数:
json.dumps(obj):将 Python 对象转换为 JSON 字符串。
json.loads(s):将 JSON 字符串转换为 Python 对象。
用途:处理日期和时间,常用于计算时间差、时间格式化等。
常用类和函数:
datetime.datetime.now():获取当前时间。
datetime.datetime.strptime(date_string, format):将字符串转换为日期时间对象。
datetime.datetime.strftime(format):将日期时间对象格式化为字符串。
用途:生成随机数,常用于模拟随机事件或随机抽样。
常用函数:
random.randint(a, b):返回 [a, b] 范围内的整数。
random.choice(seq):从序列中随机选择一个元素。
random.sample(population, k):从总体中随机抽取 k 个元素。