Python官方教程阅读总结-接下来及以后

正式的官方教程其实到第12小节就已经差不多完结了,13小节及其以后多是一些介绍性的东西,在这里一并总结了。

1. 前面介绍的教程属于python官方教程文档的一部分,其他的一些文档包括:

    (1)python标准库 https://docs.python.org/3.7/library/index.html#library-index

                里面更详细的介绍了类型,函数,模块,涉及到网络通信,随机数,压缩等各个方面

    (2)安装python模块 https://docs.python.org/3.7/installing/index.html#installing-index

                介绍怎么安装用户开发的第三方模块

    (3)python 语言参考 https://docs.python.org/3.7/reference/index.html#reference-index

            更详细的介绍了python的语法

    (4)更多python资源

            <1> python官网 https://www.python.org/,包含了代码,文档以及相关的链接

            <2> python 官方文档 https://docs.python.org

            <3> python 包索引 https://pypi.org,用户创建的各种第三方库以供其他用户下载

            <4> python cookbook, 官方都推荐的书,没看的抓紧看吧,代码,脚本,模块应有尽有

            <5> python 相关的视频 http://www.pyvideo.org,来自各种会议或组会的视频链接

            <6> scipy https://scipy.org, python用于科学计算的包

2. python相关的问题报告,以及建议什么的可以发送给 [email protected]

3. 交互输入编辑与历史替换

    一些版本的python解释器能够支持当前是输入行的编辑以及历史替换,就像shell中的编辑风格一样,这种编辑风格是通过 GNU Readline library 实现的

    3.1 Tab 键补全与历史编辑

            当python解释器启动的时候,变量名和模块名的补全功能就可以使用了,熟悉linux shell命令的人都知道,当你输入一个变量的前几个字符后按下Tab,就会自动补全剩下的字符,或提示你可选的字符。对于点表达式,例如string.a,使用Tab键,会评估 . 以前的表达式,然后从该对象的属性中显示建议补全的内容。

        默认配置下,所有的历史命令会存到用户目录下的一个.python_history 文件中,当下次交互输入的时候,这些历史命令可以重新调用。

    3.2 交互式解释器的替代选择

            (1)IPython, 现在应该叫jupyter notebook,是一个增强版的交互式python解释器,支持 Tab 补全, 对象查找,高级历史管理等,也可以完全定制和嵌入到别的应用中

            (2)另一个增强型交互式环境是bpython

4. 浮点型数据计算,问题与局限

    python中的float数字,是基于二进制小数。与十进制小数的表示方法有所差别。如0.125,在十进制中,这个值写成:1/10 + 2/100 + 5/1000;同理,在二进制中就写成了:0/2 + 0/4 + 1/8, 这两种表示方法有相同的值

    问题是,大多数十进制小数并不能用二进制小数精确表示。结果就是你输入的十进制浮点数只是用二进制浮点数的近似表示,例如,十进制的小数0.1,无论你用多少位数的二进制数字来表示,都只能无限接近0.1,而不能完全等于

    现在的大多数机器,浮点数都只能用二进制的小数表示。对应分数的分子用8字节的前53位来表示,分母表示为2的次方,例如,0.1表示为:3602879701896397 / 2 ** 55 

    需要注意的是,在python中,浮点数的输出即使看起来像十进制的小数,但是实际储存的只是用二进制表示的近似数

    这样就带来一个问题,如前面小节中介绍decimal模块的时候也提到过的问题:

0.1 + 0.1 + 0.1 == 0.3 结果为False,对于需要精确十进制表示的场景,还是使用decimal 模块。

     另外一种精确运算可以用fractions模块来进行,该模块实现了基于有理数的计算,能够精确的表示小数

    python的包Numpy 和 Scipy也提供了用于数学统计的运算包

    Python也提供了一些工具,为精确表示提供一些帮助,如:

    float.hex() 方法以16进制为基数精确表示浮点数,并且这种表示方法是跨平台的

    math.fsum()函数,会减少计算过程中的精度损失,以保证计算 精度,如:

    sum( [0.1] * 10 ) == 1.0   # False

    math.fsum( [0.1] * 10 )     # True

    目前几乎所有使用IEEE-754浮点运算标准的机器以及所有的平台都会把python浮点数映射为IEEE-754双精度类型,754双精度类型包含53位精度。

5. 附录

    5.1 交互模式

    (1)错误控制

        当错误发生时,解释器打印出错误信息和错误堆栈。在交互模式下,它会返回到初级提示符。当错误来自一个文件,它会以一个非0的退出状态退出。 一些错误是致命的,也会引起程序以非0状态退出。所有错误信息写入到标准错误流中,命令的正常输出会写入到标准输出流。

    在初级提示符或次级提示符输入打断字符(ctr - c)会取消输入返回到初级提示符,如果程序在执行过程中被打断,则会报KeyboardInterrupt异常,这个异常可能能被try 语句处理

    (2)执行python脚本

    Linux系统中,python脚本在获得可执行权限后可以直接运行,需要在脚本的开头指定python解释器,如下:

    #!/usr/bin/env python

    给脚本加上可执行权限:

    chmod +x myscript.py

    在window系统上,不需要额外添加权限,直接双击脚本就可以运行了

    (3)交互配置文件

    在python的交互模式中,解释器每次启动都要执行的命令可以在启动配置文件(PYTHONSTARTUP)中进行配置。这个文件只有在交互模式下才会读取,如果想在脚本中使用这些启动设置,就必须在脚本中声明,如下:

    import os

    filename = os.environ.get('PYTHONSTARTUP')

    if filename and os.path.isfile(filename):

        with open(filename) as fobj:

                startup_file = fobj.read()

        exec(startup_file)

    (4)定制模块

        python中sitecustomize 和 usercustomize来定制模块,要定制模块,需先用如下方法找到site-packages目录的位置:

        import site

        site.getusersitepackages()   # 获取site-packages路径

        在site-packages 目录下创建一个usercustomize.py文件,里面放入所需要的模块内容,python每次启动时都会读取该文件,如果python 启动时加上 -s 选项,则禁用该文件导入。

        sitecustomize以相同的方式工作,通常由计算机管理员在全局的site-packages目录下进行创建,并在usercustomize之前被导入。


本篇内容到此结束,参见官方 文档:https://docs.python.org/zh-cn/3.7/tutorial/interactive.html

https://docs.python.org/zh-cn/3.7/tutorial/floatingpoint.html

https://docs.python.org/zh-cn/3.7/tutorial/appendix.html

本系列文章到此结束,敬请期待后续主题

你可能感兴趣的:(Python官方教程阅读总结-接下来及以后)