core python - QLGQ/learning-python GitHub Wiki

notes

Python是一种解释型语言,这意味着开发过程中没有了编译这个环节。
Python源文件通常用.py扩展名。当源文件被解释器加载或者显式地进行字节码编译的时候会 被编译成字节码。由于调用解释器的方式不同,源文件会被编译成带有.pyc或.pyo扩展名的文 件。

在Unix中,可执行文件通常会将Python安装到/usr/local/bin子目录下,而库文件则通常安装 在/usr/ local/lib/python2.x子目录下,其中的2.x是你正在使用的版本号。

在Python中未指定返回值的函数会自动返回None,等价于NULL。

print语句调用str()函数显示对象,而交互式解释器则调用repr()函数来显示对 象。

Python有两种主要的方式来完成你的要求:语句和表达式(函数、算术表达式等)。

下划线(_)在解释器中有特别的含义,表示最后一个表达式的值。

Python的print语句,与字符串格式操作符(%)结合使用,可实现字符串替换功能,这一点 和C语言中的printf()函数非常相似。Print语句也支持将输出重定向到文件。符号>>用来重定向输出。

从用户那里得到数据输入的最容易的方法是使用raw_input()内建函数。它读取标准输入,并 将读取到的数据赋值给指定的变量。你可以使用into内建函数将用户输入的字符串转换为整 型。

num = raw_input('Now enter a number: ')
Now enter a number: 1024
print 'Doubling your number: %d' % (int(num) * 2)
Doubling your number: 2048

文档字符串的特别注释。你可以在模块、类或者函数的起始添加一个字符串,起 到在线文档的功能。

def foo():
    "This is a doc string."
    return True

与普通注释不同,文档字符串可以在运行时访问,也可以用来自动生成文档。

Python有两种除法操作符,单斜杠用作传统除法, 双斜杠用作浮点除法(对结果进行四舍五入)。传统除法是指如果两个操作数都是整型的 话,它将执行的是地板除(取比商小的最大整数)。而浮点除法是真正的除法,不管操作数是什么类型,浮点除法总是执行真正的除法。 还有一个乘方操作符,双星号(**)。

Python是动态类型语言,也就是说不需要预先声明变量的类型。变量的类型和值在赋值那一 刻被初始化。变量赋值通过等号来执行。

加号(+)用于字符串连接运算,星号(*)则用于字符串重复。

列表和元组有几处重要的区别。列表元素用中括号([])包裹,元素的个数及元素的值可以改 变。元组元素用小括号(())包裹,不可以更改(尽管他们的内容可以)。元组可以看成是只 读的列表。通过切片运算([]和[:])可以得到子集,这一点与字符串的使用方法一样。

print语句默认会给每一行添加一个换行符。只要在print语句的最后添加一个逗号(,),就可以改变它这种行为。

如果函数中没有return语句,就会自动返回None对象。

函数的参数可以有一个默认值,如果提供有默认值,在函数定义中,参数以赋值语句的形式 提供。事实上这仅仅是提供默认参数的语法,它表示函数调用时如果没有提供这个参数,它 就取这个值作为默认值。

def foo(debug=True):
    'detemine if in debug mode with default argument'
    if debug:
        print 'in debug mode'
    print 'done'

foo()
foo(False)

输出结果:

in debug mode
done
done

x = y =z =1, 在这个例子中,函数的参数可以有一个默认值,如果提供有默认值,在函数定义中,参数以赋值语句的形式提供。事实上这仅仅是提供默认参数的语法,它表示函数调用时如果没有提供这个参数,它就取这个值作为默认值。

模块结构和布局

  1. 起始行(Unix)
  2. 模块文档
  3. 模块导入
  4. 变量定义
  5. 类定义
  6. 函数定义
  7. 主程序