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):返回xy次幂。等价于x ** y,但返回浮点数。
    • math.exp(x):返回ex次幂,即e**x

    2. 对数函数

    • math.log(x, base):返回x在指定base下的对数。如果不指定base,则默认计算自然对数(以e为底)。
      • 例如,math.log(8, 2)返回3.0math.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):返回xy的最大公约数。
    • math.lcm(x, y):返回xy的最小公倍数(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:圆周常数τ,约为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):判断ab是否接近。
    • 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 reverse
      • defaultdict
      • 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

  • 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)]

给题目归类下 相似的题目做一个就行

posted @   calvincalvin  阅读(27)  评论(18编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
点击右上角即可分享
微信分享提示