Python 标准库参考指南 3.10.15 --- 颜色选择对话框 . . . . . . . . . . . . . . . . . . . . . . . . . 1332 25.3 tkinter.font --- Tkinter 字体封装 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1333 25.4 Tkinter 对话框 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1563 27.8 tracemalloc --- 跟踪内存分配 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1564 27.8.1 例子 . . . . . . . . 的逆函数。 实参的合法范围是 0 到 1,114,111(16 进制表示是 0x10FFFF)。如果 i 超过这个范围,会触 发ValueError 异常。 @classmethod 把一个方法封装成类方法。 类方法隐含的第一个参数就是类,就像实例方法接收实例作为参数一样。要声明一个类方法,按惯 例请使用以下方案: class C: @classmethod def f(cls, arg10 码力 | 2072 页 | 10.39 MB | 9 月前3
Python 标准库参考指南 3.10.15 颜色选择对话框 . . . . . . . . . . . . . . . . . . . . . . . . . . . 1425 25.3 tkinter.font --- Tkinter 字体封装 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1425 25.4 Tkinter 对话框 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1669 27.8 tracemalloc --- 跟踪内存分配 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1670 27.8.1 例子 . . . . . . 的逆函数。 实参的合法范围是 0 到 1,114,111(16 进制表示是 0x10FFFF)。如果 i 超过这个范围,会触发ValueError 异常。 @classmethod 把一个方法封装成类方法。 类方法隐含的第一个参数就是类,就像实例方法接收实例作为参数一样。要声明一个类方法,按惯例 请使用以下方案: class C: @classmethod def f(cls, arg10 码力 | 2207 页 | 10.45 MB | 9 月前3
Hello 算法 1.0.0b2 Python版3. 两种实现对比 支持操作 两种实现都支持栈定义中的各项操作,数组实现额外支持随机访问,但这已经超出栈的定义范畴,一般不会用 到。 时间效率 在数组(列表)实现中,入栈与出栈操作都是在预先分配好的连续内存中操作,具有很好的缓存本地性,效率 很好。然而,如果入栈时超出数组容量,则会触发扩容机制,那么该次入栈操作的时间复杂度为 ?(?) 。 在链表实现中,链表的扩容非常灵活,不存在上述数 double )时,则结论如下: ‧ 数组实现的栈在触发扩容时会变慢,但由于扩容是低频操作,因此 总体效率更高; ‧ 链表实现的栈可以提供 更加稳定的效率表现; 空间效率 在初始化列表时,系统会给列表分配“初始容量”,该容量可能超过我们的需求。并且扩容机制一般是按照特 定倍率(比如 2 倍)进行扩容,扩容后的容量也可能超出我们的需求。因此,数组实现栈会造成一定的空间浪 费。 当然,由于结点需要额外存储指针,因此 Addressing」。 6.2.1. 哈希表扩容 哈希函数的最后一步往往是对桶数量 ? 取余,以将哈希值映射到桶的索引范围,从而将 key 放入对应的桶中。 当哈希表容量越大(即 ? 越大)时,多个 key 被分配到同一个桶中的概率就越低,冲突就越少。 因此,在哈希表内的冲突整体比较严重时,编程语言一般通过扩容哈希表来缓解。与数组扩容类似,哈希表扩 容需要将所有键值对从原哈希表移动至新哈希表,开销很大。0 码力 | 186 页 | 15.69 MB | 1 年前3
Hello 算法 1.2.0 简体中文 Python 版我们可以将数据结构与算法类比为拼装积木,积木代表数据,积木的形状和连接方式等代表数据结构, 拼装积木的步骤则对应算法。 1. Q & A Q:作为一名程序员,我在日常工作中从未用算法解决过问题,常用算法都被编程语言封装好了,直接用就 可以了;这是否意味着我们工作中的问题还没有到达需要算法的程度? 如果把具体的工作技能比作是武功的“招式”的话,那么基础科目应该更像是“内功”。 我认为学算法(以及其他基础科目) ‧ 递归:将问题分解为子问题 ?(?) = ?+?(?−1) ,不断(递归地)分解下去,直至基本情况 ?(1) = 1 时终止。 1. 调用栈 递归函数每次调用自身时,系统都会为新开启的函数分配内存,以存储局部变量、调用地址和其他信息等。 这将导致两方面的结果。 ‧ 函数的上下文数据都存储在称为“栈帧空间”的内存区域中,直至函数返回后才会被释放。因此,递归 通常比迭代更加耗费内存空间。 着最初被调用的函数实际上是最后完成其求和操作的,这种工作机制与栈的“先入后出”原则异曲同工。 事实上,“调用栈”和“栈帧空间”这类递归术语已经暗示了递归与栈之间的密切关系。 1. 递:当函数被调用时,系统会在“调用栈”上为该函数分配新的栈帧,用于存储函数的局部变量、参数、 返回地址等数据。 2. 归:当函数完成执行并返回时,对应的栈帧会被从“调用栈”上移除,恢复之前函数的执行环境。 因此,我们可以使用一个显式的栈来模拟调用栈的行为,从而将递归转化为迭代形式:0 码力 | 364 页 | 18.43 MB | 10 月前3
Python 标准库参考指南 3.7.13 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 880 19.3 ssl --- 套接字对象的 TLS/SSL 封装 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 901 19.4 select --- Waiting for . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1544 28.7 tracemalloc --- 跟踪内存分配 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1547 29 软件打包和分发 1557 29.1 distutils 的逆函数。 实参的合法范围是 0 到 1,114,111(16 进制表示是 0x10FFFF)。如果 i 超过这个范围,会触发ValueError 异常。 @classmethod 把一个方法封装成类方法。 一个类方法把类自己作为第一个实参,就像一个实例方法把实例自己作为第一个实参。请用以下习惯 来声明类方法: class C: @classmethod def f(cls, arg10 码力 | 1961 页 | 9.14 MB | 9 月前3
Python 标准库参考指南 3.7.13 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 829 19.3 ssl --- 套接字对象的 TLS/SSL 封装 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 849 19.4 select --- Waiting for I/O . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1455 28.7 tracemalloc --- 跟踪内存分配 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1458 29 软件打包和分发 1467 29.1 distutils 的逆函数。 实参的合法范围是 0 到 1,114,111(16 进制表示是 0x10FFFF)。如果 i 超过这个范围,会触 发ValueError 异常。 @classmethod 把一个方法封装成类方法。 一个类方法把类自己作为第一个实参,就像一个实例方法把实例自己作为第一个实参。请用以下习 惯来声明类方法: class C: @classmethod def f(cls, arg10 码力 | 1846 页 | 9.09 MB | 9 月前3
Hello 算法 1.1.0 Python版‧ 递归:将问题分解为子问题 ?(?) = ?+?(?−1) ,不断(递归地)分解下去,直至基本情况 ?(1) = 1 时终止。 1. 调用栈 递归函数每次调用自身时,系统都会为新开启的函数分配内存,以存储局部变量、调用地址和其他信息等。 这将导致两方面的结果。 ‧ 函数的上下文数据都存储在称为“栈帧空间”的内存区域中,直至函数返回后才会被释放。因此,递归 通常比迭代更加耗费内存空间。 着最初被调用的函数实际上是最后完成其求和操作的,这种工作机制与栈的“先入后出”原则异曲同工。 事实上,“调用栈”和“栈帧空间”这类递归术语已经暗示了递归与栈之间的密切关系。 1. 递:当函数被调用时,系统会在“调用栈”上为该函数分配新的栈帧,用于存储函数的局部变量、参数、 返回地址等数据。 2. 归:当函数完成执行并返回时,对应的栈帧会被从“调用栈”上移除,恢复之前函数的执行环境。 因此,我们可以使用一个显式的栈来模拟调用栈的行为,从而将递归转化为迭代形式: 表格,其中每个单元格都可以存储一定大 小的数据。 第 3 章 数据结构 hello‑algo.com 51 系统通过内存地址来访问目标位置的数据。如图 3‑2 所示,计算机根据特定规则为表格中的每个单元格分配 编号,确保每个内存空间都有唯一的内存地址。有了这些地址,程序便可以访问内存中的数据。 图 3‑2 内存条、内存空间、内存地址 Tip 值得说明的是,将内存比作 Excel 表格是一个简化的0 码力 | 364 页 | 18.42 MB | 1 年前3
Hello 算法 1.0.0 Python版‧ 递归:将问题分解为子问题 ?(?) = ?+?(?−1) ,不断(递归地)分解下去,直至基本情况 ?(1) = 1 时终止。 1. 调用栈 递归函数每次调用自身时,系统都会为新开启的函数分配内存,以存储局部变量、调用地址和其他信息等。 这将导致两方面的结果。 ‧ 函数的上下文数据都存储在称为“栈帧空间”的内存区域中,直至函数返回后才会被释放。因此,递归 通常比迭代更加耗费内存空间。 着最初被调用的函数实际上是最后完成其求和操作的,这种工作机制与栈的“先入后出”原则异曲同工。 事实上,“调用栈”和“栈帧空间”这类递归术语已经暗示了递归与栈之间的密切关系。 1. 递:当函数被调用时,系统会在“调用栈”上为该函数分配新的栈帧,用于存储函数的局部变量、参数、 返回地址等数据。 2. 归:当函数完成执行并返回时,对应的栈帧会被从“调用栈”上移除,恢复之前函数的执行环境。 因此,我们可以使用一个显式的栈来模拟调用栈的行为,从而将递归转化为迭代形式: 表格,其中每个单元格都可以存储一定大 小的数据。 第 3 章 数据结构 hello‑algo.com 51 系统通过内存地址来访问目标位置的数据。如图 3‑2 所示,计算机根据特定规则为表格中的每个单元格分配 编号,确保每个内存空间都有唯一的内存地址。有了这些地址,程序便可以访问内存中的数据。 图 3‑2 内存条、内存空间、内存地址 � 值得说明的是,将内存比作 Excel 表格是一个简化的类比,实际内存的工作机制比较复杂,涉0 码力 | 362 页 | 17.54 MB | 1 年前3
Python 标准库参考指南 3.8.20 语句的执行 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1518 27.8 tracemalloc --- 跟踪内存分配 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1521 28 软件打包和分发 1531 28.1 distutils 的逆函数。 实参的合法范围是 0 到 1,114,111(16 进制表示是 0x10FFFF)。如果 i 超过这个范围,会触 发ValueError 异常。 @classmethod 把一个方法封装成类方法。 一个类方法把类自己作为第一个实参,就像一个实例方法把实例自己作为第一个实参。请用以下习 惯来声明类方法: class C: @classmethod def f(cls, arg1 rror。请参阅 tut-files 获取此 函数的更多用法示例。 file 是一个path-like object,表示将要打开的文件的路径(绝对路径或者当前工作目录的相对路径), 也可以是要被封装的整数类型文件描述符。(如果是文件描述符,它会随着返回的 I/O 对象关闭而 关闭,除非 closefd 被设为 False 。) mode 是一个可选字符串,用于指定打开文件的模式。默认值是 'r'0 码力 | 1927 页 | 9.69 MB | 9 月前3
Python 标准库参考指南 3.8.20 语句的执行 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1518 27.8 tracemalloc --- 跟踪内存分配 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1521 28 软件打包和分发 1531 28.1 distutils 的逆函数。 实参的合法范围是 0 到 1,114,111(16 进制表示是 0x10FFFF)。如果 i 超过这个范围,会触 发ValueError 异常。 @classmethod 把一个方法封装成类方法。 一个类方法把类自己作为第一个实参,就像一个实例方法把实例自己作为第一个实参。请用以下习 惯来声明类方法: class C: @classmethod def f(cls, arg1 rror。请参阅 tut-files 获取此 函数的更多用法示例。 file 是一个path-like object,表示将要打开的文件的路径(绝对路径或者当前工作目录的相对路径), 也可以是要被封装的整数类型文件描述符。(如果是文件描述符,它会随着返回的 I/O 对象关闭而 关闭,除非 closefd 被设为 False 。) mode 是一个可选字符串,用于指定打开文件的模式。默认值是 'r'0 码力 | 1927 页 | 9.69 MB | 9 月前3
共 128 条
- 1
- 2
- 3
- 4
- 5
- 6
- 13













