今天抽空把Turorial的第3章浏览了一下,这里也讲一下本章让我印象比较深刻的或者一般我们不太注意的地方

本章介绍了Python的一些数据类型,需要注意的是,Python支持复数类型。这里给出其中的几个例子,相信大家一看就明白了。

>>> 1j * 1J
(-1+0j)
>>> 1j * complex(0,1)
(-1+0j)
>>> 3+1j*3
(3+3j)
>>> (3+1j)*3
(9+3j)
>>> (1+2j)/(1+1j)
(1.5+0.5j)

这里做一些简单说明。可以看到Python中对复数的表示形式和数学上基本相同,j或J都可以表示虚数部分的单位。通过complex(实数部分,虚数部分),也可以表示一个复数。再来看一个例子:

>>> a=1.5+0.5j
>>> a.real
1.5
>>> a.imag
0.5

Python中也提供了求复数模的方法:

>>> a=3.0+4.0j
>>> abs(a)  # sqrt(a.real**2 + a.imag**2)
5.0

接下来是介绍有关字符串的相关信息,这里就不对此作详细说明了,给大家几个关键词,不明白的话可以仔细研究一下:三引号、转义字符、字符的索引和Unicode字符串。

接下来的Tutorial中介绍了Python中一个经常使用的数据类型“List”,直接看例子:

>>> a = ['spam', 'eggs', 100, 1234]
>>> a
['spam', 'eggs', 100, 1234]
>>> a[0]
'spam'
>>> a[-2]
100
>>> a[:2] + ['bacon', 2*2]
['spam', 'eggs', 'bacon', 4]
>>> 3*a[:3] + ['Boo!']
['spam', 'eggs', 100, 'spam', 'eggs', 100, 'spam', 'eggs', 100, 'Boo!']

List是长度可变的,相信通过上面的例子你已经能够感受到,如果你对那些索引有所疑问(比如a[:2]实际上是返回前两个元素,而不是从0~2三个元素),那么你要好好理解一下这些索引的使用方法。

介绍完List后,Tutorial终于开始让我们编写第一个小程序——斐波那契数列

>>> a, b = 0, 1
>>> while b < 10:
...          print b
...          a, b = b, a+b
...

1 1 2 3 5 8

可以看到Python不用大括号来指示代码块,而是严格用缩进的方式来控制,这对于有良好代码风格的程序员来说是非常棒的。

Tutorial中还详细介绍了这个程序中涉及到的一些语法点,这里不做详细介绍(太详细的话就变成全文翻译了,虽然我对翻译也有兴趣,但是这里不是发挥的地方)。

不过这里可以将本章最后提到的那个小技巧说一下。我们注意到刚才按个程序中print的输出是自动换行的,那么如何能让print不自动换行,即紧接着上一次输出后继续输出呢?一个逗号即可解决:

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