基础

  • 解释型、交互、面向对象
  • 标识符包括英文、数字及下划线,不能以数字开头
    • 大小写敏感
    • 以下划线开头的标识符有特殊意义
      • 单下划线开头 _foo 的代表不能直接访问的类属性,不能用 from xxx import * 而导入
      • 双下划线开头的 __foo 代表类的私有成员
      • 双下划线开头和结尾的 foo 代表特殊方法专用的标识,如init() 代表类的构造函数
  • 用缩进来表示模块,缩进的空白数量是可变的,但是所有代码块语句必须包含相同的缩进空白数量
  • 如果代码太长写成一行不便阅读,可以使用\或()折行
  • 三引号(’’’ 或 “””)可以编写多行字符串,可以用来表示多行注释
  • 分支结构
    • if: … elif: … else:
  • 循环结构

    • for…in…:
    • while…:

      实际问题

  • 如果希望输入口令时 终端中没有回显 可以使用getpass模块的getpass函数

    • import getpass
    • password = getpass.getpass(‘请输入口令: ‘)
  • Flat is better than nested.

    • 之所以提倡代码“扁平化”是因为嵌套结构的嵌套层次多了之后会严重的影响代码的可读性,所以能使用扁平化的结构时就不要使用嵌套

      中文编码

  • Python 2.x,默认ASCII编码,需在文件开头添加#coding=utf-8

    • 如果你使用编辑器,同时需要设置 py 文件存储的格式为 UTF-8
    • 若在Windows命令行操作,需string.decode(“utf-8”).encode(“gbk”)。原因是 windows 命令提示符的显示编码为 gbk 编码,用 chcp 查询编码
  • Python 3.x,默认utf-8,可以正常解析