Python 处理数值资料
将两个整数相加
使用 Python 处理数值资料是很容易的,打开 Python 环境执行下列程式码:
print 2+3
当 Python 直译器执行这段程式后,便会在屏幕上输出 5
,这段程式码做了两件事:
- 计算
2+3
- 使用
print
将2+3
的结果印在屏幕上
如此一来,你已经使用 Python 程式语言完成了一个简单的程式咯。
整数其它运算
在前面的例子里,我们将两个整数做了相加的动作,在 Python 中还支持其它的数值运算,比方说你可以执行下面这段程式码:
print 3+5
print 100-50
print 13*14
print 5/2
print 8**2
print 13 % 2
便会得到这样的结果:
8
50
182
2
64
1
整理一下,运算符号及运算方式如下表所示:
运算符号 | 运算方式 |
---|---|
+ | 加 |
- | 减 |
* | 乘 |
/ | 除(整数除法) |
** | 次方运算 |
% | 模运算(取馀数) |
其中要特别注意的是 /
这个运算符号,若是运算的数值为整数,则结果也是整数。以上述的程式码为例,5 / 2
的结果为 2
而不是 2.5
,若要计算出 2.5
这样的结果,下一节会介绍如何使用浮点数作运算。
提示: 在 Python 3 之后,
5 / 2
的结果会输出2.5
认识浮点数
在前一节的例子,我们都是使用整数做运算,如果要表示带有小数点的资料,可以使用 Python 程式语言中的浮点数(floating-point number)来表示,支持的运算符号与整数相同,如:
print 3.25 + 5.5
则会得到 8.75
这样的结果,而上一节中 5 / 2
的例子若改为
print 5.0 / 2.0
则会印出 2.5
的结果。
使用浮点数可能会有数值误差的问题,比方说
3.2 + 5.4
的答案是8.6000000000000014
而不会刚好是8.6
(虽然使用8.6
,但实际上却是有误差的数值),所以在使用浮点数运算时要十分小心。相关资讯可以参考: IEEE 754 浮点数运算标准
科学表示法
在 Python 中也可以使用科学表示法来处理数值资料,比如说:
print 1.5e2 + 10
会得到 160.0
,其中 1.5e2
便相当于 1.5 * 10**2
,也就是说 e
表示 10 的次方(也可以是 E
),而用科学表示法的数值皆为浮点数。
长整数
一般程式语言里的整数长度是有限制的,例如说常见的整数范围是 -2147483648
到 2147483647
。 不过在 Python 里面内建有长整数的型别:
print 1234567890*1234567890
的结果就是:
1524157875019052100L
所以你也可以自己在一个整数后面添加一个 L
字元,使它成为长整数。
使用复数
除了整数、浮点数之外,Python 也可以处理复数(complex number),它是以 x + yj
的方式表示一个复数的实部(x
)及虚部(y
),所以你可以做这样的运算:
print 1+2j**2
如此一来你便会得到 (-3+0j)
的资料。
试试看
- 以
2+3*4+6
为例,观察运算符号彼此的优先顺序关系。 - 要将整数转型为浮点数,只需要加上
float
就可以,比方说float(3)
就相当于是3.0
的数值,试试看若使用int
将浮点数转型成整数,小数点后的资料会被如何处理? - 试著运算大数字的运算(如:
2**100
),看看数值结果会如何,数字多大的时候会出现不一样的状况呢?
下一步...
我们已经学会如何处理数值资料了,如果打算将数值资料暂时存起来,或是以符号表示之,可以使用变数来储存(或表示)。