在Python中有4种类型的数——整数、长整数、浮点数和复数。
2是一个整数的例子。
长整数不过是大一些的整数。
3.23和52.3E-4是浮点数的例子。E标记表示10的幂。在这里,52.3E-4表示52.3 * 10-4。
(-5+4j)和(2.3-4.6j)是复数的例子。
整数
Python语言的整数相当于C语言中的long型,在32位机器上,整数的位宽为32位,取值范围为-231~231-1,即-2147483648~2147483647;在64位系统上,整数的位宽通常为64位,取值范围为-263~263-1,即-9223372036854775808~9223372036854775807。
Python中的整数不仅可以用十进制表示,也可以用八进制和十六进制表示。当用八进制表示整数时,数值前面要加上一个前缀“0”;当用十六进制表示整数时,数字前面要加上前缀0X或0x。例如,我们这里将整数15分别以八进制和十六进制的形式赋给整型变量a和b,然后再以十进制的形式输出它们:
[code lang=”python”]
#!/usr/bin/python
# -*- coding: cp936 -*-
a = 017
b = 0xf
print "The value of the variable a decimal from %d " % a
print "The value of the variable b decimal from %d " % b
[/code]
与数值有关的字符串格式化字符及其作用如下所示:
d: 有符号十进制整数
u: 无符号十进制整数
o: 无符号八进制整数
x: 无符号十六进制整数,a~f采用小写形式
X: 无符号十六进制整数,A~F采用大写形式
f: 浮点数
e,E: 浮点数,使用科学计数法
g,G:浮点数,使用最低有效数位
长整数
跟C语言不同,Python的长整数没有指定位宽,也就是说Python没有限制长整数数值的大小,但是实际上由于机器内存有限,所以我们使用的长整数数值不可能无限大。
在使用过程中,我们如何区分长整数和整数数值呢?通常的做法是在数字尾部加上一个大写字母L或小写字母l以表示该整数是长整数的,例如:
a = 6812347598L
b = 6812347598l
可能已经发现,小写字母l和数字1看上去很难区分,所以一般推荐使用大写字母L。
注意,自从Python2.2起,如果发生溢出,Python会自动将整数数据转换为长整数,所以如今在长整数数据后面不加字母L也不会导致严重后果了。
浮点数
浮点数用来处理实数,即带有小数的数字。实数有两种表示形式,一种是十进制数形式,它由数字和小数点组成,并且这里的小数点是不可或缺的,如1.23,123.0,0.0等;另一种是指数形式,比如789e3或789E3表示的都是789×103,字母e(或E)之前必须有数字,字母e(或E)之后可以有正负号,表示指数的符号,如果没有则表示正号;此外,指数必须为整数。
复数
复数由实数部分和虚数部分组成,一般形式为x+yj,其中的x是复数的实数部分,y是复数的虚数部分,这里的x和y都是实数。注意,虚数部分的字母j大小写都可以,如5.6+3.1j,5.6+3.1J是等价的。