深入Python3 (Dive Into Python3)笔记1--你的第一个 Python 程序

一切内容都是摘抄,主要是便于回忆和鼓励自己不要间断,更详细内容请见原帖地址:

《深入 python3 》中文版

http://woodpecker.org.cn/diveintopython3/index.html

1.1. Diving In

1.2. 声明函数

1.2.1. 可选的和命名的参数

这个调用会失败,因为你在命名参数后面紧跟了一个非命名(位置的)的参数,这个一定不会工作。从左到右的读取参数列表,一旦你有一个命名的参数,剩下的参数也必须是命名的。

只要你有一个命名参数,它右边的所有参数也都需要是命名参数。

1.3. 编写易读的代码

1.3.1. 文档字符串

1.4. import 的搜索路径

当你试图导入(import)一个模块的时候,Python 会寻找几个地方。具体来说,它会搜寻在 sys.path 里面定义的所有目录。这只是一个列表,你可以容易地查看它或者使用标准的列表方法去修改它。(

sys.path.insert(0, '/home/mark/diveintopython3/examples')

通过使用 sys.path.insert(0, new_path),你可以插入一个新的目录到 sys.path 列表的第一项,从而使其出现在 Python 搜索路径的开头。这几乎总是你想要的。万一出现名字冲突(例如,Python 自带了版本 2 的一个特定的库,但是你想使用版本 3),这个方法就能确保你的模块能够被发现和使用,替代 Python 自带的版本。

1.5. 一切都是对象

假如你还不了解,我重复一下,我刚刚说过 Python 函数有属性,并且那些属性在运行时是可用的。一个函数,就像 Python 里面所有其他东西一样,是一个对象。

1.5.1. 什么是一个对象?

1.6. 代码縮进

Python 函数没有明确的开始(begin)或者结束(end),也没有用大括号来标记函数从哪里开始从哪里停止。唯一的定界符就是一个冒号(:)和代码自身的缩进。

1.7. 异常

不像 Java, Python 函数不声明它们可能会抛出哪些异常。它取决于你去判断哪些可能的异常是你需要去捕获的。

Python 使用 try...except 块来处理异常,使用 raise 语句来抛出异常。

1.7.1. 捕获导入错误

其中一个 Python 的内置异常是 ImportError,它会在你试图导入一个模块并且失败的时候抛出。这有可能由于多种原因引起,但是最简单的情况是当在你的 import 搜索路径里面找不到这个模块的时候会发生。你可以用这个来包含可选的特性到你的程序中。

另一个对 ImportError 异常的通常使用是当两个模块实现了一个公共的 API,但我们更想要其中一个的时候。

1.8. Unbound 变量

Python 将不会让你做的是,引用了一个变量,但从不给它赋值。这样的尝试将会抛出一个 NameError 的异常。

1.9. 所有的东西都是区分大小写的

Python 里面所有的名称都是区分大小写的:变量名、函数名、类名、模块名称、异常名称。如果你可以获取它、设置它、调用它、构建它、导入它、或者抛出它,那么它就是区分大小写的。

1.10. 运行脚本

不同于 C 语言的是, Python 不支持内嵌的赋值,所以没有机会出现你本以为在做比较而且意外的写成赋值的情况。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
深入 Python 3 的内容涵盖了 Python 3 及其与 Python 2 的区别。Python 3 提供了一个脚本叫做 2to3。学习它。喜欢它。使用它。用 2to3 移植代码Python 3 是一个有关 2to3 工具能够自动整理的所有东西的参考手册。很多这些东西都是语法的变更,因此了解 Python 3 里面许多的语法变更是一个好的起点。(print 现在是一个函数,`x` 不能使用,等等。) 在 HTTP Web 服务这章,httplib2 模块通过 HTTP 获取头信息和数据。HTTP头信息返回的是字符串,而 HTTP 正文则返回的是字节。 在序列化 Python 对象这章,你将了解到为什么 Python 3 里面的 pickle 模块定义了一个和 Python 2 向后不兼容的新的数据类型。(提示:这就是因为字节和字符串的原因。) 同样 JSON也根本不支持字节类型。我将向你展示如何解决这个问题。 在案例分析:移植 chardet 到 Python 3这章,到处都是一大堆一大堆关于字节和字符串的东西。 即使你不关心 Unicode (但实际上你会的),你也会想阅读一下 Python 3 里面的字符串格式,这和 Python 2 里面的完全不一样。 Python 的专家们聪明的把 ElementTree 变成了标准库的一部分 ,然后现在它构成了新的 XML 章节的基础。解析 XML 的那些老的方式仍然可用,但是你应该避免使用它们,因为他们很糟糕! 除此之外,还有个关于 Python 的新东西 — 不是语言上的,而是社区中的 — 像 Python 包装索引(PyPI) 的出现。Python 提供了实 用工具类用来将你的代码打包成标准格式,并分发那些包到PyPI 中。阅读 打包 Python 库了解详细信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值