没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
这是Python 3.13.1版本常见问题解答文档,涵盖Python多方面内容: 一般信息:Python是解释型、面向对象编程语言,由Python软件基金会管理,使用无版权限制,但需保留版权信息,其版本编号有特定规则,可从官网获取源码和文档,新手可在标准文档和新手指南找教程,也有相关新闻组和邮件列表。 编程问题:有pdb等调试器和Pylint等静态分析工具,可借助freeze等工具将脚本转为二进制程序,应遵循PEP 8编码风格。同时,对语言核心、数字字符串、性能、序列、对象、模块等方面常见问题进行解答,如变量作用域、数据类型转换、代码优化、类和对象的使用、模块导入等。 设计历史:阐述Python设计决策原因,如使用缩进分组语句、字符串不可变等,还介绍内存管理、线程实现等底层机制。 代码库与插件:介绍查找模块、测试程序、使用线程、文件操作、网络编程、数据库操作、生成随机数等方法,以及扩展和嵌入Python的相关知识。 其他:解答 Windows 系统和 GUI 编程中常见问题,说明电脑安装 Python 的可能原因及能否删除的判断方法,还包含术语对照表、文档贡献者、历史和许可证等
资源推荐
资源详情
资源评论


























Python Frequently Asked Questions
发行版本 3.13.1
Guido van Rossum and the Python development team
一月 31, 2025
Python Software Foundation
Email: docs@python.org


Contents
1 Python 常见问题 1
1.1 一般信息 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1.1 什么是 Python? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1.2 什么是 Python 软件基金会? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1.3 使用 Python 是否存在版权限制? . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1.4 创造 Python 的最初理由是什么? . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1.5 Python 适合做什么? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1.6 Python 版本的编号形式是怎样的? . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1.7 我应如何获取一份 Python 源代码的副本? . . . . . . . . . . . . . . . . . . . . . . . 3
1.1.8 我应如何获取 Python 的文档? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1.9 我之前从未接触过编程。哪里有 Python 的教程? . . . . . . . . . . . . . . . . . . . 3
1.1.10 是否有专门针对 Python 的新闻组或邮件列表? . . . . . . . . . . . . . . . . . . . . 3
1.1.11 我应如何获取 Python 的公开测试版本? . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1.12 我应如何为 Python 提交错误报告和补丁? . . . . . . . . . . . . . . . . . . . . . . . 3
1.1.13 是否有任何公开发表的 Python 相关文章可以供我参考引用? . . . . . . . . . . . . 3
1.1.14 是否有任何 Python 相关的书籍? . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.1.15 www.python.org 具体位于世界上的哪个地点? . . . . . . . . . . . . . . . . . . . . . 4
1.1.16 为何命名为 Python? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.1.17 我必须喜欢”Monty Python 的飞行马戏团” 吗? . . . . . . . . . . . . . . . . . . . . . 4
1.2 现实世界中的 Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2.1 Python 有多稳定? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2.2 有多少人在使用 Python? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2.3 有哪些重要的项目是用 Python 开发的? . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2.4 在未来可以期待 Python 将有什么新进展? . . . . . . . . . . . . . . . . . . . . . . . 4
1.2.5 提议对 Python 加入不兼容的更改是否合理? . . . . . . . . . . . . . . . . . . . . . . 5
1.2.6 Python 是一种对编程初学者友好的语言吗? . . . . . . . . . . . . . . . . . . . . . . 5
2 编程常见问题 7
2.1 一般问题 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.1.1 Python 有没有提供带有断点、单步调试等功能的源码级调试器? . . . . . . . . . . 7
2.1.2 是否有能帮助寻找漏洞或执行静态分析的工具? . . . . . . . . . . . . . . . . . . . 7
2.1.3 如何由 Python 脚本创建能独立运行的二进制程序? . . . . . . . . . . . . . . . . . . 8
2.1.4 是否有 Python 编码标准或风格指南? . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.2 语言核心内容 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.2.1 变量明明有值,为什么还会出现 UnboundLocalError? . . . . . . . . . . . . . . . . 8
2.2.2 Python 的局部变量和全局变量有哪些规则? . . . . . . . . . . . . . . . . . . . . . . 9
2.2.3 为什么在循环中定义的参数各异的 lambda 都返回相同的结果? . . . . . . . . . . . 9
2.2.4 如何跨模块共享全局变量? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.2.5 导入模块的“最佳实践”是什么? . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.2.6 为什么对象之间会共享默认值? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.2.7 如何将可选参数或关键字参数从一个函数传递到另一个函数? . . . . . . . . . . . 12
i

2.2.8 形参和实参之间有什么区别? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.2.9 为什么修改列表’y’ 也会更改列表’x’? . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.2.10 如何编写带有输出参数的函数(按照引用调用)? . . . . . . . . . . . . . . . . . . . 13
2.2.11 如何在 Python 中创建高阶函数? . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.2.12 如何复制 Python 对象? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.2.13 如何找到对象的方法或属性? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.2.14 如何用代码获取对象的名称? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.2.15 逗号运算符的优先级是什么? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.2.16 是否提供等价于 C 语言”?:” 三目运算符的东西? . . . . . . . . . . . . . . . . . . . 16
2.2.17 是否可以用 Python 编写让人眼晕的单行程序? . . . . . . . . . . . . . . . . . . . . . 16
2.2.18 函数形参列表中的斜杠(/)是什么意思? . . . . . . . . . . . . . . . . . . . . . . . 17
2.3 数字和字符串 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.3.1 如何给出十六进制和八进制整数? . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.3.2 为什么 -22 // 10 会返回 -3 ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.3.3 我如何获得 int 字面属性而不是 SyntaxError ? . . . . . . . . . . . . . . . . . . . . . 18
2.3.4 如何将字符串转换为数字? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.3.5 如何将数字转换为字符串? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.3.6
如何修改字符串?
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.3.7 如何使用字符串调用函数/方法? . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.3.8 是否有与 Perl 的 chomp() 等效的方法,用于从字符串中删除尾随换行符? . . . . . 19
2.3.9 是否有 scanf() 或 sscanf() 的等价函数? . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.3.10 ’UnicodeDecodeError’ 或’UnicodeEncodeError’ 错误是什么意思? . . . . . . . . . . . 20
2.3.11 我能以奇数个反斜杠来结束一个原始字符串吗? . . . . . . . . . . . . . . . . . . . 20
2.4 性能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.4.1 我的程序太慢了。该如何加快速度? . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.4.2 将多个字符串连接在一起的最有效方法是什么? . . . . . . . . . . . . . . . . . . . 21
2.5 序列(元组/列表) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.5.1 如何在元组和列表之间进行转换? . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.5.2 什么是负数索引? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.5.3 序列如何以逆序遍历? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.5.4 如何从列表中删除重复项? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.5.5 如何从列表中删除多个项? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.5.6 如何在 Python 中创建数组? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.5.7 如何创建多维列表? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.5.8 我如何将一个方法或函数应用于由对象组成的序列? . . . . . . . . . . . . . . . . . 23
2.5.9 为什么 a_tuple[i] += [’item’] 会引发异常? . . . . . . . . . . . . . . . . . . . . . . . . 24
2.5.10 我想做一个复杂的排序:能用 Python 进行施瓦茨变换吗? . . . . . . . . . . . . . . 25
2.5.11 如何根据另一个列表的值对某列表进行排序? . . . . . . . . . . . . . . . . . . . . . 25
2.6 对象 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.6.1 什么是类? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.6.2 什么是方法? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.6.3 什么是 self ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.6.4 如何检查对象是否为给定类或其子类的一个实例? . . . . . . . . . . . . . . . . . . 26
2.6.5 什么是委托? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.6.6 如何在扩展基类的派生类中调用基类中定义的方法? . . . . . . . . . . . . . . . . . 27
2.6.7 如何让代码更容易对基类进行修改? . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.6.8 如何创建静态类数据和静态类方法? . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.6.9 在 Python 中如何重载构造函数(或方法)? . . . . . . . . . . . . . . . . . . . . . . 28
2.6.10 在用 __spam 的时候得到一个类似 _SomeClassName__spam 的错误信息。 . . . . . . 29
2.6.11 类定义了 __del__ 方法,但是删除对象时没有调用它。 . . . . . . . . . . . . . . . . 29
2.6.12 如何获取给定类的所有实例的列表? . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.6.13 为什么 id() 的结果看起来不是唯一的? . . . . . . . . . . . . . . . . . . . . . . . . 30
2.6.14 什么情况下可以依靠 is 运算符进行对象的身份相等性测试? . . . . . . . . . . . . . 30
2.6.15 一个子类如何控制哪些数据被存储在一个不可变的实例中? . . . . . . . . . . . . . 31
2.6.16 我该如何缓存方法调用? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.7 模块 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
2.7.1 如何创建.pyc 文件? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
2.7.2 如何找到当前模块名称? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
ii

2.7.3 如何让模块相互导入? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
2.7.4 __import__(’x.y.z’) 返回的是 <module ’x’> ;该如何得到 z 呢? . . . . . . . . . . . . 34
2.7.5 对已导入的模块进行了编辑并重新导入,但变动没有得以体现。这是为什么? . . 35
3 设计和历史常见问题 37
3.1 为什么 Python 使用缩进来分组语句? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.2 为什么简单的算术运算得到奇怪的结果? . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.3 为什么浮点计算不准确? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.4 为什么 Python 字符串是不可变的? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.5 为什么必须在方法定义和调用中显式使用“self”? . . . . . . . . . . . . . . . . . . . . . . . 38
3.6 为什么不能在表达式中赋值? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.7 为什么 Python 对某些功能(例如 list.index())使用方法来实现,而其他功能(例如 len(List))
使用函数实现? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.8 为什么 join() 是一个字符串方法而不是列表或元组方法? . . . . . . . . . . . . . . . . . . . 39
3.9 异常有多快? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
3.10 为什么 Python 中没有 switch 或 case 语句? . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
3.11 难道不能在解释器中模拟线程,而非得依赖特定于操作系统的线程实现吗? . . . . . . . . 40
3.12 为什么 lambda 表达式不能包含语句? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3.13 可以将 Python 编译为机器代码,C 或其他语言吗? . . . . . . . . . . . . . . . . . . . . . . 41
3.14 Python 如何管理内存? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3.15 为什么 CPython 不使用更传统的垃圾回收方案? . . . . . . . . . . . . . . . . . . . . . . . . 41
3.16 CPython 退出时为什么不释放所有内存? . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3.17 为什么有单独的元组和列表数据类型? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3.18 列表是如何在 CPython 中实现的? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3.19 字典是如何在 CPython 中实现的? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3.20 为什么字典 key 必须是不可变的? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3.21 为什么 list.sort() 没有返回排序列表? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
3.22 如何在 Python 中指定和实施接口规范? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
3.23 为什么没有 goto? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
3.24 为什么原始字符串(r-strings)不能以反斜杠结尾? . . . . . . . . . . . . . . . . . . . . . . 44
3.25 为什么 Python 没有属性赋值的“with”语句? . . . . . . . . . . . . . . . . . . . . . . . . . 44
3.26 生成器为什么不支持 with 语句? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3.27 为什么 if/while/def/class 语句需要冒号? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3.28 为什么 Python 在列表和元组的末尾允许使用逗号? . . . . . . . . . . . . . . . . . . . . . . 46
4 代码库和插件 FAQ 47
4.1 通用的代码库问题 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
4.1.1 如何找到可以用来做 X 任务的模块或应用? . . . . . . . . . . . . . . . . . . . . . . 47
4.1.2 math.py(socket.py,regex.py 等)的源文件在哪? . . . . . . . . . . . . . . . . . . . 47
4.1.3 在 Unix 中怎样让 Python 脚本可执行? . . . . . . . . . . . . . . . . . . . . . . . . . 47
4.1.4 Python 中有 curses/termcap 包吗? . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
4.1.5 Python 中存在类似 C 的 onexit() 函数的东西吗? . . . . . . . . . . . . . . . . . . . . 48
4.1.6 为什么我的信号处理函数不能工作? . . . . . . . . . . . . . . . . . . . . . . . . . . 48
4.2 通用任务 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
4.2.1 怎样测试 Python 程序或组件? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
4.2.2 怎样用 docstring 创建文档? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
4.2.3 怎样一次只获取一个按键? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
4.3 线程相关 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
4.3.1 程序中怎样使用线程? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
4.3.2 我的线程都没有运行,为什么? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
4.3.3 如何将任务分配给多个工作线程? . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
4.3.4 怎样修改全局变量是线程安全的? . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
4.3.5 不能删除全局解释器锁吗? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
4.4
输入与输出
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
4.4.1 怎样删除文件?(以及其他文件相关的问题……) . . . . . . . . . . . . . . . . . . . 52
4.4.2 怎样复制文件? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
4.4.3 怎样读取(或写入)二进制数据? . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
4.4.4 似乎 os.popen() 创建的管道不能使用 os.read(),这是为什么? . . . . . . . . . . . . 53
iii
剩余116页未读,继续阅读
资源评论


ftpeak
- 粉丝: 351
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 偏关:用大数据为光伏发电增效.docx
- python,机器学习笔记,machine learning,nlp
- 谈互动教学在中职计算机教学中的运用.docx
- 四层电梯PLC控制系统设计.doc
- 【MATLAB数学实验】2025年上机课基本操作题目复现:MATLAB代码详解与应用实例(含详细代码及解释)
- XueYi-MultiSaas-Typescript资源
- 一个精简高效的 C++ 机器学习工具库
- 物联网网络外部性内生机制研究-以打车软件为例.docx
- 机械工程基于混合驱动框架的主轴-轴承系统热特性分析与建模:结合数据驱动和模型驱动的热源计算及热阻网络构建(含详细代码及解释)
- 【无人海洋车辆控制】基于固定时间积分终端滑模的容错控制算法设计与仿真:解决推进器故障及动态不确定性问题(含详细代码及解释)
- 机械设计制造及其自动化(汽车工程)专业.doc
- 概念整合框架下的句法一语义接口研究分析.doc
- AJ-Captcha-Go资源
- 控制系统倒立摆PID控制设计与实现:数学模型建立、MATLAB仿真及实际系统调试(含详细代码及解释)
- 基于机器学习的课程设计项目研究
- 控制工程2-DOF直升机TRMS系统拉普拉斯域控制系统实现与PID控制器设计:涵盖建模、分析、解耦控制及实时仿真(含详细代码及解释)
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制
