python速成
python标准库
https://docs.python.org/3/library/
必学模块
https://www.pythoncheatsheet.org/modules/itertools-module
https://www.pythoncheatsheet.org/modules/copy-module
数据类型
NoneType int float complex bool str list tuple range set frozenset dict bytes bytearray memoryview type object ellipsis callable
数据结构
`list` `tuple` `str` `range` `set` `frozenset` `dict` `deque` `defaultdict` `heapq``Counter`
`bytes` `bytearray` `memoryview` `OrderedDict` `ChainMap` `namedtuple` `array`
-
math
math
库是Python标准库的一部分,提供了许多用于数学运算的函数。以下是math
库中一些常用函数的分类和介绍:1. 基本数学运算
math.sqrt(x)
:返回x
的平方根。例如,math.sqrt(9)
返回3.0
。math.pow(x, y)
:返回x
的y
次幂。等价于x ** y
,但返回浮点数。math.exp(x)
:返回e
的x
次幂,即e**x
。
2. 对数函数
math.log(x, base)
:返回x
在指定base
下的对数。如果不指定base
,则默认计算自然对数(以e
为底)。- 例如,
math.log(8, 2)
返回3.0
,math.log(math.e)
返回1.0
。
- 例如,
math.log10(x)
:返回以10为底的x
的对数。math.log2(x)
:返回以2为底的x
的对数。
3. 三角函数
math.sin(x)
:返回x
的正弦值,x
以弧度表示。math.cos(x)
:返回x
的余弦值,x
以弧度表示。math.tan(x)
:返回x
的正切值,x
以弧度表示。math.asin(x)
:返回x
的反正弦值,以弧度表示。math.acos(x)
:返回x
的反余弦值,以弧度表示。math.atan(x)
:返回x
的反正切值,以弧度表示。math.atan2(y, x)
:返回y/x
的反正切值,以弧度表示。考虑到象限问题。
4. 双曲函数
math.sinh(x)
:返回x
的双曲正弦值。math.cosh(x)
:返回x
的双曲余弦值。math.tanh(x)
:返回x
的双曲正切值。math.asinh(x)
:返回x
的反双曲正弦值。math.acosh(x)
:返回x
的反双曲余弦值。math.atanh(x)
:返回x
的反双曲正切值。
5. 特殊函数
math.factorial(x)
:返回x
的阶乘。x
必须为非负整数。math.gcd(x, y)
:返回x
和y
的最大公约数。math.lcm(x, y)
:返回x
和y
的最小公倍数(Python 3.9及以上版本)。math.comb(n, k)
:返回从n
个元素中选取k
个元素的组合数(Python 3.8及以上版本)。math.perm(n, k)
:返回从n
个元素中选取k
个元素的排列数(Python 3.8及以上版本)。
6. 舍入相关函数
math.ceil(x)
:返回不小于x
的最小整数值。math.floor(x)
:返回不大于x
的最大整数值。math.trunc(x)
:返回x
的整数部分,截断小数部分。
7. 常数
math.pi
:圆周率π
,约为3.14159
。math.e
:自然常数e
,约为2.71828
。math.tau
:圆周常数τ
,2π
,约为6.28318
。math.inf
:表示正无穷大。math.nan
:表示“不是数字”(Not a Number)。
8. 其他
math.degrees(x)
:将弧度转换为角度。math.radians(x)
:将角度转换为弧度。math.isclose(a, b, *, rel_tol=1e-09, abs_tol=0.0)
:判断a
和b
是否接近。math.isfinite(x)
:判断x
是否为有限数。math.isinf(x)
:判断x
是否为无穷大。math.isnan(x)
:判断x
是否为NaN。
这些函数涵盖了数学计算中的常见需求,熟练使用
math
库能够极大地提高数值计算的效率和准确性。 -
Builtin-function
在Python的内置函数中,有许多函数在日常编程中非常常用。以下是一些常用的内置函数,并根据它们的用途进行分类:
1. 数学运算和数值处理相关
abs()
:返回数的绝对值。round()
:对浮点数进行四舍五入。pow()
:计算幂值。sum()
:计算可迭代对象中所有元素的和。min()
:返回可迭代对象中的最小值。max()
:返回可迭代对象中的最大值。divmod()
:同时返回商和余数。complex()
:创建复数。float()
:将对象转换为浮点数。int()
:将对象转换为整数。bin()
:将整数转换为二进制字符串。hex()
:将整数转换为十六进制字符串。oct()
:将整数转换为八进制字符串。
2. 类型转换和类型检查
type()
:返回对象的类型。isinstance()
:判断对象是否为指定类型。issubclass()
:判断一个类是否是另一个类的子类。bool()
:将对象转换为布尔值。str()
:将对象转换为字符串。list()
:将对象转换为列表。tuple()
:将对象转换为元组。set()
:将对象转换为集合。dict()
:将对象转换为字典。bytes()
:将对象转换为字节对象。bytearray()
:创建一个字节数组。frozenset()
:创建一个不可变的集合。chr()
:将整数转换为对应的Unicode字符。ord()
:返回字符的Unicode码点。
3. 序列操作
len()
:返回对象的长度(元素个数)。sorted()
:返回排序后的列表。reversed()
:返回反转后的迭代器。enumerate()
:返回可枚举对象,常用于for循环中获取索引和值。zip()
:将多个可迭代对象打包成元组迭代器。
4. 输入输出
print()
:输出信息到控制台。input()
:从控制台获取用户输入。open()
:打开文件。
5. 反射和动态代码执行
dir()
:列出对象的所有属性和方法。getattr()
:获取对象的属性值。setattr()
:设置对象的属性值。hasattr()
:判断对象是否有某个属性。delattr()
:删除对象的属性。globals()
:返回当前模块的全局变量字典。locals()
:返回当前局部变量字典。eval()
:执行字符串形式的表达式,并返回结果。exec()
:执行字符串形式的Python代码。
6. 函数与类相关
callable()
:判断对象是否可调用。staticmethod()
:将方法转换为静态方法。classmethod()
:将方法转换为类方法。super()
:用于调用父类的一个方法。property()
:用于创建属性。
7. 其他
help()
:调用内置帮助系统。id()
:返回对象的内存地址。hash()
:返回对象的哈希值。filter()
:根据函数过滤可迭代对象。map()
:将函数应用于可迭代对象的每个元素。
这些函数是日常编程中使用频率较高的,它们涵盖了从基本数据操作到动态执行代码的广泛功能。掌握这些函数将大大提高编写Python代码的效率。
-
immutable/mutable
int float complex bool str tuple frozenset bytes
list bytearray array.arry
-
Counter有哪些方法
elements()
most_common([n])
subtract([iterable-or-mapping])
update([iterable-or-mapping])
clear()
copy()
-
collections / itertools / functools / operator /
collections
deque
append/pop appendleft/popleft extend extendleft remove clear rotate reversedefaultdict
namedtuple
OrderedDict
Counter
itertools
count
,cycle
,repeat
accumulate
chain
combinations
,permutations
product
functools
reduce
lru_cache
partial
cmp_to_key
-
sequence, collection, iterable分别定义了哪些接口?
-
collections
- deque
- defaultdic defaultdict(type)/defaultdict(val)
数据结构如何定义
-
dict/defaultdict
merge dict_c = {**dict_a, **dict_b}
- delete
wife.clear()
- clear
-
List
- append extend insert remove pop clear index count sort reverse copy
注意下pop的含义 - 双遍历
n = [(a, b) for a in range(1, 3) for b in range(1, 3)]
- https://www.pythoncheatsheet.org/cheatsheet/lists-and-tuples
- del/REMOVE有什么区别
- append extend insert remove pop clear index count sort reverse copy
-
heapq
heapq 最小堆
heapq.heappush(heap, item): 将 item 推入 heap 堆中,保持堆的性质。
heapq.heappop(heap): 弹出并返回 heap 堆中最小的元素,保持堆的性质。
heapq.heapify(x): 将列表 x 转化为堆,原地操作。heapq.heapreplace(heap, item): 弹出并返回 heap 堆中最小的元素,然后将 item 推入堆中,保持堆的性质。
heapq.nlargest(n, iterable, key=None): 返回 iterable 中 n 个最大的元素。
heapq.nsmallest(n, iterable, key=None): 返回 iterable 中 n 个最小的元素。 -
链表
-
heapq
-
sorted
基础类型
int
if math.isinf(x):
forloop
* enumerate `for i, el in enumerate(<coll>, start=0):`
* for list如何只保留奇数
* forloop如何写
zip, pairwise, enumerate
if/else
* new_list = [num*2 if num % 2 == 0 else num for num in nums]
排序,二分
* 排序如何写
* Python Lambda
try-catch-finally
- def divide(dividend , divisor):
- try:
- print(dividend / divisor)
- except ZeroDivisionError:
- print('You can not divide by 0')
- finally:
- print('Execution finished')
- Try and Except Statement
- 如何捕获具体的except
print()有哪些参数
- print('09', '12', '2016', sep='-')
- Python sep parameter in print()
string
- String
- endswith
- count
- sort(key=xxx,)
- string.find(value, start, end)
- method归纳一下
- Template Strings
oop
-
oop private/protected ABC
-
datacalss
-
必须在 dataclass 中定义数据类型。但是,如果您不想指定数据类型,请使用 .typing.Any
-
from dataclasses import dataclass
-
from typing import Any
-
@dataclass
-
class WithoutExplicitTypes:
-
name: Any
-
value: Any = 42
bisect.bisect_left
functool
cache/lru_cache
sorted/
- key, lambda
lambda 怎么写?
type/isinstance
interator看起来不常用
todo
稍微背诵下就可以写题了,复习下函数还有八股
chaining comparison operators
https://www.pythoncheatsheet.org/cheatsheet/debugging
https://www.pythoncheatsheet.org/cheatsheet/args-and-kwargs
https://www.pythoncheatsheet.org/cheatsheet/decorators
https://www.pythoncheatsheet.org/cheatsheet/oop-basics
https://www.pythoncheatsheet.org/cheatsheet/built-in-functions
注意list的insert是向前插入?
前缀和 dfs bfs怎么写?
排序如何写?
以下是 Python 中常见的不可变(immutable)对象的类型列表:
sys
builtins — Built-in objects
dataclasses — Data Classes
sum
sort
sorted_intervals = sorted(intervals, key=lambda x: (-x[1], x[0]))
typing
引用/浅拷贝/深拷贝
graph = [[] * numCourses]
graph = [[] for _ in range(numCourses)]
给题目归类下 相似的题目做一个就行
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!