购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

3-2 数值数据类型

3-2-1 整数int

整数的英文是integer,在计算机程序语言中一般用int表示。如果读者学过其他计算机语言,在介绍整数时一定会告诉你,该计算机语言使用了多少空间存储整数,所以设计程序时整数的大小必须是在某一区间, 否则会有 溢位 (overflow)造成数据不正确。例如,如果存储整数的空间是32位,则整数大小为-2 147 483 648~2 147 483 647。在Python 2.x版时代,整数被限制在32位,另外还有长整数long,空间大小是64位,所以可以存储的数值更大,达到 -9 223 372 036 854 775 808 ~ 9 223 372 036 854 775 807 。在Python 3中已经将整数可以存储空间大小的限制取消了,所以没有long了,也就是说int可以是任意大小的数值。

英文googol是指自然数10 100 ,计算机是用1e 100 显示,这是1938年美国数学家 爱德华 · 卡斯纳 (Edward Kasner) 9岁的侄子 米尔顿 · 西罗蒂 (Milton Sirotta)所创造的。下列是笔者尝试使用整数int显示此googol值。

3-2-2 浮点数

浮点数的英文是float,既然整数大小没有限制,浮点数大小当然也没有限制。在Python语言中,带有小数点的数字称为 浮点数 。例如:

    x = 10.3

表示x是浮点数。

3-2-3 基本数值数据的使用

Python在声明变量时可以不用设置这个变量的数据类型,未来如果这个变量内容是放整数,这个变量就是整数(int)数据类型,如果这个变量内容是放浮点数,这个变量就是浮点数数据类型。整数与浮点数最大的区别是,整数不含小数点,浮点数含小数点。

程序实例ch3_2.py :测试浮点数。

执行结果

在程序实例ch3_1.py中,x变量的值是“10”,列出x变量是 整数变量 ,在这个实例中,x变量的值是“10.0”,列出x变量是 浮点数变量

3-2-4 整数与浮点数的运算

Python程序设计时不相同的数据类型也可以执行运算,程序设计时常常会发生整数与浮点数之间的数据运算,Python具有简单的自动转换能力,在计算时会将整数转换为浮点数再执行运算。

程序实例ch3_3.py :不同数据类型的运算。

执行结果

上述变量y,由于是整数与浮点数的加法,所以结果是浮点数。此外,某一个变量如果是整数,但是如果最后所存储的值是浮点数,Python也会将此变量转成浮点数。

程序实例ch3_4.py :整数转换成浮点数的应用。

执行结果

原先变量x所存储的值是整数,所以列出的是整数。后来存储了浮点数,所以列出的是浮点数。

3-2-5 二进制整数与函数bin( )

可以用二进制方式代表整数,Python中定义凡是以0b开头的数字,代表这是二进制的整数。

bin( )函数可以将一般整数数字转换为二进制。

程序实例ch3_5.py :将十进制数值与二进制数值互转的应用。

执行结果

3-2-6 八进制整数与函数oct( )

可以用八进制方式代表整数,Python中定义凡是以0o开头的数字,代表这是八进制的整数。

oct( )函数可以将一般数字转换为八进制。

程序实例ch3_6.py :将十进制数值与八进制数值互转的应用。

执行结果

3-2-7 十六进制整数与函数hex( )

可以用十六进制方式代表整数,Python中定义凡是以0x开头的数字,代表这是十六进制的整数。

hex( )函数可以将一般数字转换为十六进制。

程序实例ch3_7.py :将十进制数值与八进制数值互转的应用。

执行结果

3-2-8 强制数据类型的转换

有时候设计程序时,可以自行强制使用下列函数,转换变量的数据类型。

int( ) :将数据类型强制转换为整数。

float( ) :将数据类型强制转换为浮点数。

程序实例ch3_8.py :将浮点数强制转换为整数的运算。

执行结果

程序实例ch3_9.py :将整数强制转换为浮点数的运算。

执行结果

3-2-9 数值运算常用的函数

下列是数值运算时常用的函数。

abs( ) :计算绝对值。

pow(x,y) :返回x的y次方。

round( ) :这是采用运算法则的Bankers Rounding概念,如果处理位数左边是 奇数则使用四舍五入 ,如果处理位数左边是 偶数则使用五舍六入 ,例如,round(1.5)=2,round(2.5)=2。

处理小数时,第2个参数代表取到小数第几位,1代表取到小数第1位。根据保留小数位的后两位,采用"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( )函数,尽管可以得到运算结果,但是原先变量的值是没有改变的。

3-2-10 科学记数法

科学记数的概念如下,将一个数字转换成下列数学式:

    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

下列是示范输出。

4-2-2节和4-2-3节会介绍将一般数值转成科学记数法输出的方式,以及格式化输出方式。 /MwduT1CzBKrLbp0vWwkuec7k1nzeqTOrtaNk6qXuWum6RmwvnTquL1vo5bMpXNA

点击中间区域
呼出菜单
上一章
目录
下一章
×