Python 3.6零基础入门与实战
上QQ阅读APP看书,第一时间看更新

2.3 数字

Python支持的数字有int(整型)、float(浮点型)、bool(布尔型)、complex(复数型)4种。本节分别介绍这些数字类型。

2.3.1 使用整型

整型用来表示一些数字,如1、-10、060、0x29。整型不区分长短和符号,Python 3中的int可以存储比64位更大的整数。

说 明

每次安装软件的时候,我们常在32位和64位之间做选择,这个位数就是处理数据的能力。64位是可以处理在264范围里面的数据,32位是可以处理在232范围里面的数据,但Python中的整数可以无限扩展,它取决于可用内存的大小,并不受32/64位的限制。

使用整型有两种方式:一种是直接赋值为数字;另一种是使用int函数将其他类型转换为整型。

举例代码如下:

要赋值多个整型,可以这样写:

    num1=num2=num3=100

读者可以思考一个问题:这3个变量的数据存储在内存中是占3个数据的位置还是1个数据的位置?

我们使用id函数打印变量在内存中的位置,结果如图2.2所示。可以看出,其实3个变量是指向内存中的同一位置。

    #inttest.py
    num1=num2=num3=100
    print(id(num1))
    print(id(num2))
    print(id(num3))

图2.2 内存位置

注 意

继续思考这个问题,如果将num1、num2、num3分别赋值,但赋值相同,那是不是所占的内存地址也相同?

学习语言中,读者肯定经常看到“表达式”这个概念。表达式(Expression)是将相同类型的数据(如数字、字符串等),用运算符号按一定的规则连接起来的、有意义的代码。这里有两点需要注意:

• 相同类型的数据,比如1+2可以,但1+'2'就不行。

• 用运算符连接,每种类型都有不同的运算符,后面会详细介绍。

整型一般用来进行一些表达式的运算,常见的整型运算符是+、-、*、/,可以使用如图2.3所示的代码进行测试。

图2.3 整型的运算

2.3.2 使用浮点型

浮点型就是我们常说的带小数的类型,如13.30、-80.16、30.2e100。使用浮点型有3种方式:赋值、强制转换、两个整型相除。

(1)直接赋值:

    num1=15.0

(2)使用float函数强制转换:

    num1=float(15)

(3)两个整型相除:

    num1=15/3

在第3种方式中,虽然两个整型可以整除,但是在Python中依然得出的是浮点型。下面用代码测试一下:

    num1=15/3
    print(num1)

输出结果是5.0。如果计算结果要输出整型,则需要使用“//”而不是“/”。以下代码的输出结果就是5。

    num1=15//3
    print(num1)

2.3.3 使用布尔型

布尔型就是True或False。在Python中,True的值是1,False的值是0,可以和数字相加,因此把它放在数字这个分类中。

因为好多表达式运算的结果也是布尔型,所以使用布尔型的方法有很多,这里我们简单介绍几种。

(1)直接用一个关键字True或False赋值。

也可以将其用于数值运算,例如:

(2)使用bool函数。

(3)表达式的运算结果也为布尔型。

布尔型的运算符有and、or、not(必须小写),读者还需要了解两个布尔表达式的运算规则,参见表2.1。

表2.1 布尔型的运算符

下面演示布尔运算的操作:

【示例2-1】

注 意

Python 3中if(True)的效率比不上if(1)的效率。

我们常用的表达式一般是加、减、乘、除,优先级在小学就学过(先加减后乘除)。布尔运算的优先级低于表达式,读者可以测试一下下面这段代码:

2.3.4 使用复数型

在Python的数字中,复数complex是一个比较复杂的类型。从概念上来说,复数是一个实数和一个虚数的组合。实数就是我们常说的1、100、350.60等,虚数是一个虚拟的数,数学家称之为j,广泛用于科学计算中。在Python中也用j或J表示这个虚数,比如15.0j、5.16J、3.2e-6j都是复数。

关于复数有以下几个注意事项:

• 虚数不能单独存在,必须和实数部分一起构成一个复数。

• 实数部分和虚数部分都是浮点数。

• 虚数部分必须有后缀j或J。

复数的定义一般有两种形式:

(1)直接赋值。

【示例2-2】

这里的type函数用来输出com1变量的类型。

(2)使用complex函数,它有两个参数,当然也可以两个参数都不输入。

【示例2-3】