3.2 编程第一步

当然,我们可以用 Python 做比把两个两个的数相加更加复杂的任务。比方说,我们可以写一个 Fibonacci 数列(斐波那契数列) 的开头的子列,如下所示:

  1. >>> # Fibonacci 数列:
  2. ... # 两个相邻元素的和等于后一个元素
  3. ... a, b = 0, 1
  4. >>> while b < 10:
  5. ... print(b)
  6. ... a, b = b, a+b
  7. ...
  8. 1
  9. 1
  10. 2
  11. 3
  12. 5
  13. 8

这个例子向我们介绍了一些新的特性

  • 第一行包含了一个 多重赋值:变量 a 和变量 b 同时被赋值为 0 和 1。最后一行再次用到,右侧的表达式在所有赋值发生之前都被求出值了。右侧表达式从左至右算出了值。

  • 只要条件 (这里是 b < 10) 是 true (真),while 循环就会执行。就和 C 语言一样,在 Python, 中任何非零的整数值都是 true ,而 零 是 false (假)。条件也可以是一个字符串或者列表,事实上,可以是任何序列。任何长度非零的数据都是 true,空的序列为 false。这个例子中的用到是一个简单的比较。标准的比较操作和 C 语言写法一样:< (小于), > (大于), == (等于), <= (小于或等于), >= (大于或等于) 以及 != (不等于)。

  • 循环体缩进 的:缩进是 Python 中组织语句的方式。在交互式命令行中,你可以按下一次 tab 或者若干次 空格 来缩进每一行的代码。在实际应用中,你用文本编辑器将会进行更加复杂的 Python 编程。比较好的文本编辑器都有自动缩进的功能。当一个复合语句交互式地输入的时候,后面必须跟上一个空行用来代表一个符合语句的结束 (因为语法分析器不知道你什么时候输入了最后一行代码)。注意,每一组在同一个基本代码块中的行,缩进量都必须相同。

  • print() 函数在控制台写出传入的参数的值。它和你直接想输入的表达式有所不同 (就像前面的例子中说的那样),这种方式下,它可以处理多个参数,浮点量,还有字符串。字符串在输出的时候不带引号,并且空格会被插入在输出的元素之间,这样你就可以漂亮的格式化一些东西。就像这样:

    1. >>> i = 256*256
    2. >>> print('The value of i is', i)
    3. The value of i is 65536

关键字参数 end 可以用来防止每一次输出结果末尾的换行,或者用另一个字符串来做结尾:

  1. >>> a, b = 0, 1
  2. >>> while b < 1000:
  3. ... print(b, end=',')
  4. ... a, b = b, a+b
  5. ...
  6. 1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,