算法工程师修仙之路:python3官方文档笔记(二)

本笔记来自于python手册的中文版

使用 Python 解释器


调用 Python 解释器

  • 通常你可以在主窗口输入一个文件结束符(Unix系统是Control-D,Windows系统是Control-Z)让解释器以 0 状态码退出。如果那没有作用,你可以通过输入 quit() 命令退出解释器。

  • Python 解释器具有简单的行编辑功能。

    • 在 Unix 系统上,任何 Python 解释器都可能已经添加了 GNU readline 库支持,这样就具备了精巧的交互编辑和历史记录等功能。在 Python 主窗口中输入 Control-P ,如果发出嘟嘟声(计算机扬声器),则说明你可以使用命令行编辑功能;
    • 如果没有任何声音,或者显示 ^P 字符,则说明命令行编辑功能不可用,你只能通过退格键从当前行删除已键入的字符并重新输入。
  • Python 解释器有些操作类似 Unix shell:

    • 当使用终端设备(tty)作为标准输入调用时,它交互解释并执行命令;
    • 当使用文件名参数或以文件作为标准输入调用时,它读取文件并将文件作为脚本执行。
  • 使用脚本文件时,经常会运行脚本然后进入交互模式,这也可以通过在脚本之前加上 -i 参数来实现。

参数传递

  • 调用解释器时,脚本名和附加参数传入一个名为 sys.argv 的字符串列表。你能够获取这个列表通过执行 import sys,列表的长度大于等于1;没有给定脚本和参数时,它至少也有一个元素:sys.argv[0],此时为空字符串。
  • 脚本名指定为 ‘-’ (表示标准输入)时,sys.argv[0] 被设定为 ‘-’,使用 -c 指令时,sys.argv[0] 被设定为 ‘-c’。使用 -m 模块参数时,sys.argv[0] 被设定为指定模块的全名。-c 指令 或者 -m 模块之后的参数不会被 Python 解释器的选项处理机制所截获,而是留在 sys.argv 中,供脚本命令操作。

交互模式

  • 从 tty 读取命令时,我们称解释器工作于交互模式。
    • 这种模式下它根据主提示符来执行,主提示符通常标识为三个大于号(>>>);

    • 继续的部分被称为从属提示符,由三个点标识(…)。

    • 在第一行之前,解释器打印欢迎信息、版本号和授权提示。

      C:\Users\fangz>python
      Python 3.6.2 |Anaconda custom (64-bit)| (default, Sep 19 2017, 08:03:39) [MSC v.1900 64 bit (AMD64)] on win32
      Type "help", "copyright", "credits" or "license" for more information.
      >>>
      
    • 输入多行结构时需要从属提示符了,例如,下面这个 if 语句:

      >>> the_world_is_flat = 1
      >>> if the_world_is_flat:
      ...     print("Be careful not to fall off!")
      ...
      Be careful not to fall off!
      

解释器及其环境

源程序编码

  • 默认情况下,Python 源文件是 UTF-8 编码。

    • 在此编码下,全世界大多数语言的字符可以同时用在字符串、标识符和注释中。
    • 尽管 Python 标准库仅使用 ASCII 字符做为标识符,这只是任何可移植代码应该遵守的约定。
    • 如果要正确的显示所有的字符,你的编辑器必须能识别出文件是 UTF-8 编码,并且它使用的字体能支持文件中所有的字符。
  • 你也可以为源文件指定不同的字符编码。

    • 为此,在 #! 行(首行)后插入至少一行特殊的注释行来定义源文件的编码:

      # -*- coding: encoding -*-
      
    • 通过此声明,源文件中所有的东西都会被当做用 encoding 指代的 UTF-8 编码对待。

    • 例如,如果你的编辑器不支持 UTF-8 编码的文件,但支持像 Windows-1252 的其他一些编码,你可以定义:# -*- coding: cp-1252 -*-,这样就可以在源文件中使用 Windows-1252 字符集中的所有字符了。这个特殊的编码注释必须在文件中的第一或第二行定义。

    • 从属提示符表示你需要在最后多输入一个空行,解释器才能知道这是一个多行命令的结束。

猜你喜欢

转载自blog.csdn.net/faker1895/article/details/85399793