这个系列是“夜深人静后的码农”的作品。我只是搬运工而已。
在接下来的实例中,用标记符(>>> 和… )来区别输入和输出。想要重现这些实例,你必须输入标记符后面的所有内容。那些不以标记符开头的语句是输出语句。注意在一个例子中在同一行出现第二个标记符意味着你必须输入一行空格。它用来结束多行输入命令。
关于#注释:
在这本说明书中的好多例子都包括注释,甚至有一些在交互提示符中换行。在python语言中的注释以固定字符#开始,并一直延续到本行的结尾。注释可能出现在每行的开始或者接下来的空格和代码,但不包含在字符串内。在字符串内的#号仅仅就是#符号。由于注释是用来解释说明代码而不能被python 编译器所编译,当输入例子的时候注释可以被忽略。
例如:STERING = “# This is not a comment.”
1.1Python 用作计算器
1.1.1 数字
解释器充当一个简单的计算器:在里面你可以输入一个表达式,它将会写出结果。表达式语法就是简单的操作符+ - * 和/, 这和大多数语言中(如Pascal 和C )用法一样。插入语可以用来分组,例如:
>>> 2+2
4
>>> # This is a comment 这是注释
... 2+2
4
>>> 2+2 # and a comment on the same line as code 在同一行代码中注释
4
>>> (50-5*6)/4
5.0
>>> 8/5 # Fractions aren’t lost when dividing integers 当整数相除时候,分数不会丢失
1.6
备注: 你可能没精确看到相同的结果。由于机器不同可能会导致浮点数的结果不同。以后我们会看到更多关于控制浮点数输出的例子。也可以参照浮点数运算: 问题和局限,这篇文件对浮点数和它们表示之间的细微差别将有个全面的讨论。为了整数相除获得整数结果,有个抛弃了所有小数点的操作符//:
>>> # Integer division returns the floor:
... 7//3
2
>>> 7//-3
-3
“=”符号用来把一个特定值赋值给一个变量,后来,在接下来交互符号前面不显示结果:
>>> width = 20
>>> height = 5*9
>>> width * height
900
一个值可以同时赋给好多个变量。
>>> x = y = z = 0 # Zero x, y and z
>>> x
0
>>> y
0
>>> z
0
变量在它们使用之前必须被定义(或者赋值),否者会抛出错误。
>>> # try to access an undefined variable 尝试访问一个没有定义的变量
... n
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name ’n’ is not defined
这里完全支持浮点运算,包含多种类型操作数会吧整型操作数变为浮点数:例如
>>> 3 * 3.75 / 1.5
7.5
>>> 7.0 / 2
3.5
复数运算
同时也支持复数运算,虚数写得时候以j 或者J 为前缀。复数一般写成不为0 的实数部分
(实数+ 虚数J) 或者可以用复数方法complex(实数,虚数)。
>>> 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)
复数常常用来表示两个浮点数,实数和虚数部分。可以同z.real 和z.imag 从复数z 中提取实数
和虚数。
>>> a=1.5+0.5j
>>> a.real
1.5
>>> a.imag
0.5
针对复数和整数之间的转换方法(float(), int())对复数不适用,它不能正确地把一个复数转化为
一个实数. 用abs(z)方法可以获得它的大小,or 用z.real 来获得实数部分。
>>> a=3.0+4.0j
>>> float(a)
Traceback (most recent call last):
File "<stdin>", line 1, in ?
TypeError: can’t convert complex to float; use abs(z)
>>> a.real
3.0
>>> a.imag
4.0
>>> abs(a) # sqrt(a.real**2 + a.imag**2)
5.0
在交互模式中,最后一个打印出来的表示会赋值给变量_. 这就意味着当你用python 作为左
桌面计算器的时候,它有时很容易继续计算。例如:
>>> tax = 12.5 / 100
>>> price = 100.50
>>> price * tax
12.5625
>>> price + _
113.0625
>>> round(_, 2)
113.06
这个变量只能被用户只读,不要尝试去给你设值,那样你将会与用内置变量同样的名字变量,重
新创建一个独立的新本地变量。