零基础学Python(第2版)
上QQ阅读APP看书,第一时间看更新

2.4.1 数字

Python3的数字类型分为整型、浮点型、布尔型、分数类型、复数类型。使用Python编写程序时,不需要声明变量的类型。由Python内置的基本数据类型来管理变量,在程序的后台实现数值与类型的关联,以及类型转换等操作。Python与其他高级语言定义变量的方式及内部原理有很大的不同。在C或Java中,定义一个整型的变量,可以采用如下方式表示:


int i = 1;

在Python中,定义整型变量的表达方式更简练。


i = 1

Python根据变量的值自动判断变量的类型,程序员不需要关心变量究竟是什么类型,只要知道创建的变量中存放了一个数,以后的工作只是对这个数值进行操作,Python会对这个数的生命周期负责。

更重要的一点是,C或Java只是创建了一个int型的普通变量;而Python创建的是一个整型对象,并且Python自动完成了整型对象的创建工作,不再需要通过构造函数创建。Python内部没有普通类型,任何类型都是对象。如果C或Java需要修改变量i的值,只要重新赋值即可;而Python并不能修改对象i的值。例如:


01     #下面的两个i并不是同一个对象
02     i = 1
03     print(id(i))
04     i = 2
05     print (id(i))

如果需要查看变量的类型,可以使用Python定义的type类。type是__builtin__模块的一个类,该类能返回变量的类型或创建一个新的类型。__builtin__模块是Python的内联模块,内联模块不需要import语句,由Python解释器自动导入。后面还会接触到更多内联模块的类和函数。

下面这段代码返回了各种变量的类型。


01     #整型
02     i = 1
03     print( type(i))
04     #长整型
05     l = 999999999999999999990       # Python何时将int转为float跟操作系统位数相关
06     print type(l)
07     #浮点型
08     f = 1.2
09     print( type(f))
10     #布尔型
11     b = True
12     print (type(b))

【代码说明】

·第3行代码输出结果:<class'int'>

·第6行代码输出结果:<class'int'>

·第9行代码输出结果:<class'float'>

·第12行代码输出结果:<class'bool'>

用Python来进行科学计算也很方便,因为Python内置了复数类型。Java、C#等高级语言则没有提供复数类型。


01     #复数类型
02     c = 7 + 8j
03     print (type(c))

第3行代码输出结果:<class'complex'>

注意 复数类型的写法与数学中的写法相同,如果写为c=7+8i,Python不能识别其中的“i”,将提示语法错误。