首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【Python笔记】数字类型介绍

Python数字类型包括整型(int)、浮点数(float)、复数(complex)、布尔型(bool)四种数值类型。

1、整型

整型几乎是所有编程语言中最基本的一种类型,它的表达方式和正常的书面书写一样,如:

>>> 10

10

常见的整型都是十进制的,但是有的时候为了计算的需要可能要使用到其他进制的整型。Python 3提供了一些用于进制转换的内置函数:bin()、int()、oct()、hex(),分别用来将整型转换为二进制、八进制、十进制、十六进制,如:

>>> print("十进制数:", 10)

十进制数:10

>>> print("二进制数:", bin(10))

二进制数:0b1010

>>> print("八进制数:", oct(10))

八进制数:0o12

>>> print("十六进制数:", hex(10))

十六进制数:0xa

从执行结果可以看出,十进制的整型开头是没有标识符,而二进制、八进制、十六进制整型的标识符分别为:0b、0o、0x。关于各进制之间的相互转换如表所示。

2、浮点数

浮点数为带小数点的实数,如3.14、0.25、-10.26、50.21E12(此处为科学计数法,表示50.21*10^12)等都是浮点数。

Python 3中的浮点数和正常的书写格式基本一致。但是当小数点前面或后面的数为0时,0可以省略。

Python 3中的整型是没有上下限的,而浮点数则不同,它具有上限和下限。当浮点数超出了上限或下限时,会报溢出错误信息。>>> 2 ** 1024 #2的1024次方

>>> 2.0 ** 1024

Traceback (most recent call last):

File "", line 1, in

OverflowError: (34, 'Result too large')

当输入2的1024次方之后,Python反馈了一个“Result too large”错误。提示结果太大,Python不能把它表示出来。

值得注意的是,浮点数在计算机中都是使用二进制存储的,由此不可避免的会带来一定的精度丢失。因此,在使用Python做精确计算的时候,需要先对浮点数进行一定的处理。一种较好的办法就是使用decimal模块来处理浮点数,例如如下的示例:

>>> from decimal import Decimal#导入decimal模块中的Decimal()函数

>>> a=Decimal('0.1')

>>> b=Decimal('0.2')

>>> a+b

Decimal('0.3')

>>> print(a+b)

0.3

上面代码的第一行的功能是导入Python 3内置的decimal模块中的Decimal类,这将在第5章中讲解。第二行和第三行分别将字符串0.1和0.2转换成了Decimal类型,第四行代码可以看到变量a和b相加后的类型仍然为Decimal类型,并且其对应的浮点数结果为0.3,最后一行代码使用print()语句直接输出了浮点数运算的结果。需要注意的是,传入Decimal的参数不能是浮点数,否则误差会仍然存在,因为Python中的浮点数本来就是不精确的。

3、复数

Python 3提供了对复数的支持,其运算方法跟数学中的复数运算基本一致。在Python 3中,规定使用1j来表示-1的平方根,如下所示是Python中1j的四则运算。

>>> 1j + 1j

2j

>>> 1j - 1j

0j

>>> 1j * 1j

(-1+0j)

>>> 1j / 1j

(1+0j)

如果需要获取复数的实数部分可以使用.real,获取虚数部分用.imag,例如如下的示例:

>>> 1j * 1j

(-1+0j)

>>> (1j * 1j).real #实数部分为-1.0

-1.0

>>> (1j * 1j).imag #虚数部分为0.0

0.0

4、布尔型

布尔型是一个十分重要的数据类型,它主要应用在分支,循环结构中。Python 2中是没有布尔型的,它用0表示False,1表示True。而Python 3则将0和1分别定义为了:False和True字段,但是它们仍然可以像整型那样相加,例如如下的示例:

>>> False + True

1

>>> True + True

2

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20230117A030RE00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券