Python Learning Chapter 1

Python Learning Chapter 1

Introduction

之前用过 python, 但是没学过, 或者说没系统的学过, 所以打算系统的学习一下, 以便了解一些 python 的特性和用法.

因为我是跟着英文资料(CS61A Textbook)学的, 所以标题和定义基本采用英文, 但是由于我个人的英语水平有限, 内容还是中文写的.

Some Features

Name

与 C/C++ 不同, python 的变量不需要进行声明即可赋值, 也就是说, 在 python 中, 变量是没有一个确定的类型的, 甚至一个变量可以赋值为一个函数来使用(当然赋值为一个函数之后, 其使用方法也与该函数完全一致了), 反之亦然, 一个函数名也可以赋值后作为一个变量来使用, 只不过在赋值为一个变量后, 该函数名就不能作为一个函数来使用了, 而是变成了一个变量. 为了方便描述和理解, 我们不妨统一称“函数名”和“变量名”为“名”(name),

举个例子:

1
2
3
4
5
6
7
8
9
>>> max(1, 2)
2
>>> max = 3
>>> max
3
>>>max(1, 2)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'int' object is not callable

在这个例子中, maxpython 内置的一个函数, 我们将其赋值为一个数之后, max 就变成了一个变量, 而不是一个函数, 此时若再将其作为一个函数来使用则会报错.

Assignment Statement

python 支持同时为多个名进行赋值, 只需要在 = 两端用 , 隔开即可.

举个例子:

1
2
3
4
5
>>> x, y = 1, 2
>>> x
1
>>> y
2

= 右端与常规的对单个名的赋值完全一样, 既可以是数, 也可以是表达式. 与对左侧的变量依次赋值有不同的是, python 会先把右侧的值计算完, 然后再为左侧的名进行赋值, 也就是说, 先执行对右侧的计算, 再执行对左侧的赋值.

举个例子:

1
2
3
4
5
6
>>> x, y = 1, 2
>>> x, y = y, x
>>> x
2
>>> y
1

通过这个例子我们还可以找到一个交换两个名的方法.

既然是对名进行操作了, 当然既可以是变量也可以是函数了.