codecamp

Python 处理数值资料

将两个整数相加

使用 Python 处理数值资料是很容易的,打开 Python 环境执行下列程式码:

print 2+3

当 Python 直译器执行这段程式后,便会在屏幕上输出 5,这段程式码做了两件事:

  1. 计算 2+3
  2. 使用 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(虽然使用 print 输出时会印出 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) 的资料。


试试看

  1. 以 2+3*4+6 为例,观察运算符号彼此的优先顺序关系。
  2. 要将整数转型为浮点数,只需要加上 float 就可以,比方说 float(3) 就相当于是 3.0 的数值,试试看若使用 int 将浮点数转型成整数,小数点后的资料会被如何处理?
  3. 试著运算大数字的运算(如:2**100),看看数值结果会如何,数字多大的时候会出现不一样的状况呢?

下一步...

我们已经学会如何处理数值资料了,如果打算将数值资料暂时存起来,或是以符号表示之,可以使用变数来储存(或表示)。


Python 推荐的开发环境
Python 使用变数
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }