整数的英文是 integer ,在计算机程序语言中一般用 int 表示。如果你学过其他计算机语言,在介绍整数时老师一定会告诉你,该计算机语言使用了多少空间存储整数,所以设计程序时,整数大小必须是在某一区间,否则会有 溢位 (overflow),造成数据不正确。
例如:如果存储整数的空间是32位,则整数大小是在-2147483648 ~ 2147483647。在Python 2.x时代,整数是被限制在32位。另外还有长整数long,空间大小是64位,所以可以存储更大的数值,达到 -9223372036854775808 ~ 9223372036854775807 。Python 3已经将整数存储空间的大小限制拿掉了,所以没有long了,也就是说int可以是任意大小的数值。
英文googol是指自然数10100,这是1938年美国数学家 爱德华·卡斯纳 (Edward Kasner) 9岁的侄子 米尔顿·西罗蒂 (Milton Sirotta)所创造的。下列是笔者尝试使用整数int显示此googol值。
其实 Google 公司原先设计的搜索引擎称 BackRub ,登记公司时以 googol 为域名,代表网络上无边无际的信息。由于在登记时拼写错误,所以有了现在的 Google 搜索引擎公司。
整数使用时比较特别的是,可以在数字中加上 下画线 (_),这些下画线会被忽略,如下所示:
有时候处理很大的数值时,适当使用下画线可以让数字表达更清楚,例如:下列是设定100万的整型变量x。
浮点数的英文是float,既然整数大小没有限制,浮点数大小当然也没有限制。在Python语言中,带有小数点的数字称为浮点数。例如:
x = 10.3
x是 浮点数 。
Python在定义变量时可以不用设定这个变量的数据类型,未来如果这个变量内容是放整数,这个变量就是整数(int)数据类型,如果这个变量内容是放浮点数,这个变量就是浮点数数据类型。整数与浮点数最大的区别是, 整数不含小数点,浮点数含小数点 。
程序实例ch3_2.py: 测试浮点数。
执行结果
在程序实例ch3_1.py中,变量x的值是10,x变量是整型变量;在这个实例中,x变量的值是10.0,x变量是 浮点数变量 。
Python程序设计时不同数据类型也可以执行运算,程序设计时常会发生整数与浮点数之间的数据运算,Python具有简单自动转换能力,在计算时会将整数转换为浮点数再执行运算。
程序实例ch3_3.py: 不同数据类型的运算。
执行结果
上述变量y,由于是整数与浮点数的加法,所以结果是浮点数。此外,如果某一个变量是整数,但是最后所存储的值是浮点数,Python也会将此变量转成浮点数。
程序实例ch3_4.py: 整数转换成浮点数的应用。
执行结果
原先变量x所存储的值是整数,所以列出的是整数。后来存储了浮点数,所以列出的是浮点数。
在整数的使用中,除了我们熟悉的十进制整数运算,还有下列不同底数的整数运算:
二进制 整数:0、1。
八进制 整数:0、1、2、3、4、5、6、7。
十六进制 整数:0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F,英文字母部分也可用小写a、b、c、d、e、f代表。
下列3-2-6节至3-2-8节会说明上述概念。
我们可以用二进制方式代表整数,Python中定义凡是0b开头的数字,代表这是二进制的整数。
bin( )函数可以将一般数字转换为二进制。
程序实例ch3_5.py: 将十进制数值与二进制数值互转的应用。
执行结果
我们可以用八进制方式代表整数,Python中定义凡是0o开头的数字,代表这是八进制的整数。
oct( )函数可以将一般数字转换为八进制。
程序实例ch3_6.py: 将十进制数值与八进制数值互转的应用。
执行结果
我们可以用十六进制方式代表整数,Python中定义凡是0x开头的数字,代表这是十六进制的整数。
hex( )函数可以将一般数字转换为十六进制。
程序实例ch3_7.py: 将十进制数值与十六进制数值互转的应用。
执行结果
有时候我们设计程序时,可以自行强制使用下列函数,转换变量的数据类型。
· int( ) :将数据类型强制转换为整数。
· float( ) :将数据类型强制转换为浮点数。
程序实例ch3_8.py: 将浮点数强制转换为整数的运算。
执行结果
程序实例ch3_9.py: 将整数强制转换为浮点数的运算。
执行结果
下列是数值运算时常用的函数。
· abs( ) :计算绝对值。
· pow(x,y) :返回x的y次方。
· round( ) :采用Bankers Rounding概念,如果处理位数左边是 奇数 , 则使用四舍五入 ,如果处理位数左边是 偶数 , 则使用五舍六入 。例如:round(1.5)=2,round(2.5)=2。
处理小数时, 第2个参数 代表取到小数第几位,根据保留小数位的后两位,采用50舍去,51进位,例如:round(2.15,1)=2.1,round(2.25,1)=2.2,round(2.151,1)=2.2,round(2.251,1)=2.3。
程序实例ch3_10.py: abs( )、pow( )、round( )、round(x,n)函数的应用。
执行结果
需要留意的是,使用上述abs( )、pow( )或round( )函数,尽管可以得到运算结果,但是原先变量的值没有改变。
所谓的科学记数法概念如下,一个数字转成下列数学式:
a * 10n
a是浮点数,例如: 123456 可以表示为 1.23456 * 10 5 ,这时10为基底数,我们用 E 或 e 表示, 指数部分 则转为一般数字,然后省略*符号,最后表达式如下:
1.23456E+5或1.23456e+5
如果碰上小于1的数值,则E或e右边是负值。例如:0.000123转成科学记数法,最后表达式如下。
1.23E-4或1.23e-4
下列是示范输出。
Python支持复数(complex number)的使用,复数是由实数部分和虚数部分所组成,例如:a +bj或是complex(a,b),复数的实部a与虚部b都是浮点数。
而j是虚部单位,值是 ,Python程序设计时可以使用real和imag属性分别获得此复数的实部与虚部的值。