0%

Python 3 Basic

1. 注释

  1. 注释以 # 开头
  2. #! 开头的称为组织行,表明了执行脚本的解释器

Linux/Unix 中,如果不清楚 Python 的位置,可以使用 #!/usr/bin/env pythonenv 会自动寻找 Python 的解释器路径进行执行。

2. 字面意义的常量

如同 5, 1.23, 9.25e-3 这样的,以及 “This is a string” 等字符串被称作字面意义上的常量

2.1 数

数的类型有三种——整数、浮点数和复数

  1. 2 是整数
  2. 3.2352.3E-4 是浮点数
  3. (-5+4j)(2.3-4.6j) 是复数

Python 3 只有一种整数类型,不区分 longint
Python 2 中区分 long 类型
布尔型(bool) 属于整型(integer)的一种

2.2 字符串

  1. 字符串是字符的序列,其编码默认为 Unicode

    可以使用 str.encode("ascii") 将字符串编码转换为 ASCII

  2. 可以用单引号双引号来指定字符串,单引号和双引号的意义完全相同

  3. 利用三引号 """ 或者 ''' 可以指定一个多行字符串

    1
    2
    3
    4
    5
    '''This is a multi-line-string. This is the first line.
    And this is the second line.
    "What's your name?" I asked.
    He said "Bond, James Bond."
    '''

    在三引号中,可以自由使用单引号和双引号

  4. 使用转义来表示原有字符

    例如 'What's your name?' 中,由于(使用单引号界定的)字符串中有单引号,会使 Python 解释出现错误,此时需要用转义来表示原有的单引号。
    正确的应该是 'What\'s your name?'
    但是,可以在用双引号界定的字符串中使用单引号。
    这个也是正确的 "What's your name?"

    另外,在一行的末尾的反斜杠 \ 仅仅表示下一行的字符串是上一行的继续并不增加新的行

    1
    2
    3
    4
    5
    # 以下字符串是等价的
    "This is the first line.\
    This is also the first line."

    "This is the firstline. This is also the first line."
  5. 原始字符串

    当需要指定一些字符不被特殊处理时,可以使用 r 或者 R 附加在字符串前面指定原始字符串
    例如: r"Newlines are indicated by \n"
    此时,字符串中的所有字符都不会被转义

    在正则表达式使用的时候,请尽量使用原始字符串

  6. 字符串是不可变

  7. 字符串按字面意义连接

    如果将两个字符串按字面意义相邻放着,会被自动转为一个字符串

  8. format() 方法

    可以使用 format() 方法来通过使用其他信息构建字符串

    1
    2
    3
    4
    5
    6
    7
    #!/usr/bin/python
    age = 25
    name = 'Swaroop'
    print('{0} is {1} years old'.format(name, age))

    # 输出为
    # Swaroop is 25 years old.

    也可以使用 format() 进行格式化输出

    1
    2
    >>> '{0:.3}'.format(1/3)
    '0.333'

3. 变量

3.1 命名

同其他语言的变量命名无多大差别。

  1. 不允许数字开头
  2. 大小写敏感

3.2 类型

Python 变量不需要声明类型,但仍然是强类型
实际上,Python 的任何一切都称为对象

4. 逻辑行和物理行

Python 中一个逻辑行对应一个物理行,虽然 Python 也可以使用分号,但是一般不使用分号

其他语言一般强制要求行尾分号,Python 不推荐分号的使用。

5. 缩进

Python 有着严格的缩进区分,不能随意缩进,缩进用来标明语句块
同一个语句块具有相同的缩进层次

Python 使用缩进来表示代码块,不再使用花括号

6. 操作符

  1. Python 中的 // 符号表示向下取整相除,而不是单行注释。注释使用 # 来开头。

    注意这里是向下取整,而不是趋零取整

  2. 布尔操作

    • not 表示布尔非(相当于 !
    • and 表示布尔与(相当于 &&
    • or 表示布尔或(相当于 ||

    有趣的是,不等于仍然使用 != 来表示

  3. 相等性判别

    Python 3 中有两种相等性判别,一种是变量相等性(equality),另一种是实例相等性(identity)

    is 用作判断实例相等性
    否定操作为 is not

    == 用于判断变量相等性

    区别:

    1
    2
    3
    4
    a = [1, 2, 3]
    b = [1, 2, 3]
    a == b # True
    a is b # False
  4. 优先级

    在 Python 中,lambda 表达式处在最高优先级,而并非布尔运算

  • 本文作者: Wafer Li
  • 本文链接: https://wafer.li/Python/Python 3 Basic/
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!