当然,我们可以使用 Python 完成比二加二更复杂的任务。例如,我们可以写一个生成 菲波那契 子序列的程序,如下所示:
>>> # Fibonacci series:
... # the sum of two elements defines the next
... a, b = 0, 1
>>> while b < 10:
... print(b)
... a, b = b, a+b
...
1
1
2
3
5
8
这个例子介绍了几个新功能。
- 第一行包括了一个 多重赋值 :变量
a
和b
同时获得了新的值 0 和 1 最后一行又使用了一次。 在这个演示中,变量赋值前,右边首先完成计算。右边的表达式从左到右计算。 - 条件(这里是
b < 10
)为 true 时, while 循环执行。在 Python 中,类似于 C,任何非零整数都是 true;0 是 false。条件也可以是字符串或列表,实际上可以是任何序列;所有长度不为零的是 true,空序列是 false。示例中的测试是一个简单的比较。标准比较操作符与 C 相同:<
,>
,==
,<=
,>=
和!=
。 - 循环 体 是 缩进 的:缩进是 Python 组织语句的方法。Python (还)不提供集成的行编辑功能,所以你要为每一个缩进行输入 TAB 或空格。实践中建议你找个文本编辑来录入复杂的 Python 程序,大多数文本编辑器提供自动缩进。交互式录入复合语句时,必须在最后输入一个空行来标识结束(因为解释器没办法猜测你输入的哪一行是最后一行),需要 注意的是同一个语句块中的每一行必须缩进同样数量的空白。
- 关键字 print() 语句输出给定表达式的值。它控制多个表达式和字符串输出为你想要字符串(就像我们在前面计算器的例子中那样)。字符串打印时不用引号包围,每两个子项之间插入空间,所以你可以把格式弄得很漂亮,像这样:
用一个逗号结尾就可以禁止输出换行:>>> i = 256*256 >>> print('The value of i is', i) The value of i is 65536
>>> a, b = 0, 1 >>> while b < 1000: ... print(b, end=',') ... a, b = b, a+b ... 1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,
- 因为
**
的优先级高于-
,所以-3**2
将解释为-(3**2)
且结果为-9
。为了避免这点并得到9
,你可以使用(-3)**2
。- 与其它语言不同,特殊字符例如
\n
在单引号('...'
)和双引号("..."
)中具有相同的含义。两者唯一的区别是在单引号中,你不需要转义"
(但你必须转义\'
),反之亦然。