- Python从入门到项目实践(超值版)
- 聚慕课教育研发中心
- 1218字
- 2021-03-24 19:37:29
3.1 数字类型
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P45_34799.jpg?sign=1739596515-WvrkWLbmREJmq60Bou8EDDEn22B5qqLs-0-9540a86d63d0dfa00561b55f24cdbcd5)
数字类型是Python的基础数据类型之一,主要包括整数类型、浮点数类型和复数类型。Python的数据类型用于存储数值型数据,例如日常生活中的整数、实数和复数等。它们在赋值存储后就不可再改变了,如果要改变数值则必须创建新的对象进行赋值。
3.1.1 整数类型
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P45_34793.jpg?sign=1739596515-JjEV4FPoCug5qdEiARmtI203Tzf3qM7G-0-5f8ad36cc47922817af0d39488b4825f)
整数类型即对应现实生活中的整数。整数类型的数据包括正整数、负整数和零。不同于Python 2.X,在Python 3.X中没有Long(长整型)这个类型,也就是Python 3.X中的整型没有限制。在Python中区分正整数和负整数的方式和生活中一样采用符号区分,如-100、0、-3等。
虽然Python 3.X已经成为主流,但是依旧可以了解下Python 2.X中的长整型数据。为了标识长整型数据,一般在数据末尾添加大写或小写的L(通常情况下小写L和数字1不易区分,因此常用大写的L),如5623656L。
为了方便计算和书写,Python中整数可以用多种不同的进制方式书写,其格式为0+进制方式(通常为一个大写字母)+相应进制的数据。具体格式如表3-1所示。
表3-1 进制格式
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-T46_35045.jpg?sign=1739596515-DeYC1aLWQoRKSbsUOx0bMS7mIIjJKkVh-0-c2170638770dc0170cbd7d4c49224a50)
3.1.2 整数的按位运算
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P46_35043.jpg?sign=1739596515-J6JYa6aAV6hsICC6VNUl4cZ2XUhneIW4-0-444ed14caea7a50b0da327da4b21a342)
按位运算仅对整数存在意义。按位运算结果的计算如同二进制补码的计算,用于计算有限位数的整数。理解上是对整数逐位的操作,其主要操作类型和操作类型如表3-2所示。
表3-2 按位运算操作符
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-T46_35046.jpg?sign=1739596515-SKHuXvfvyvEFFX5QmTaTqWIkxYeISpsR-0-7f050b2ac28ffd64d2bd46a1271eea30)
【例3-1】运算符。
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P46_78650.jpg?sign=1739596515-zZbbsH33LMrg9VCCKpeDzcWr5OwNsnhY-0-4bdb49d74ad84f49fd2dffcefb6c6102)
对于左移和右移运算符,其格式为a <<或>> b,含义为将数字a的二进制位数左移或右移b位。
【例3-2】移位运算。
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P46_78651.jpg?sign=1739596515-cag8gJvONLowSGutVqMRrjwhiSyE5rub-0-54eeae654396a34735fa8a83f704ad13)
对于这些常见的位运算其中有几个要点需要注意。
(1)负数的移位计数为非法操作,其可能导致ValueError错误。
(2)左移位,低位空缺补零,高位溢出舍弃;右移位,高位空缺补零,低位溢出舍弃。
(3)左移N位相当于将数乘以2的N次幂;右移N位相当于将数除以2的N次幂。
(4)对于整型数据的操作,实际上都是对其补码的操作(Python 2.X中Long型的补码相当于其补码符号位无限拓展)。
(5)位运算符和普通运算符一样存在优先级,其优先级由低到高为:
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P47_78653.jpg?sign=1739596515-5tEOtf9GUeU8IeRK8Y1uuBNOYRG8jTce-0-dbf4915c38d23aca2a145e3939201579)
取反运算符>左移运算符>右移运算符>按位与运算符>按位异或运算符>按位或运算符
3.1.3 浮点数
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P47_35191.jpg?sign=1739596515-C0DlyVGJDKtZaQb1UhZ1nrFoNRv2OEfx-0-3f9ae77ab979b1be83c45d039ff243dc)
浮点数相对于整数存在小数点,由整数和小数部分组成。浮点数的写法除了日常写法外,常见的还包括科学计数法写法,例如,3e14代表3×10^3。
注意:浮点数的0.0和整数的0在逻辑运算上虽然含义是一样的,但是在Python中它们的存储位置却是不同的,实例如下。
【例3-3】浮点数存储位置。
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P47_81312.jpg?sign=1739596515-QB6ka63R7Tz2Izu4ajO8TJK5on68g92R-0-0d6d3c9b18744bd20b7d238559cd4dbd)
3.1.4 复数类型
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P47_35197.jpg?sign=1739596515-G0nlNrO0BtxjYZWvAGOSAgPb1LzTxpqi-0-cd80d828b4660b9154a05e4083cc0842)
复数类型对应英文Complex,复数由实数部分和虚数部分构成,可以用生活中的方式a + bj格式表示,或者用complex(a,b)表示,j可大写也可小写。
【例3-4】复数运算。
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P47_78654.jpg?sign=1739596515-BmD2XN1npC9zUCeZ9q4Q8s7vvvlgLUlx-0-c5355a3d63e9ac4da0fa551892d7ab76)
复数的实部的内建属性为real,复数的虚部的内建属性为imag,可用于输出复数的实部和虚部部分。
【例3-5】复数的实部与虚部。
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P47_78655.jpg?sign=1739596515-mXyavmGOHBtaie5w0z6atulNvNXcoQiV-0-b1037b51911e914bdfd0325a37e5deef)
从实部和虚部的输出格式可以清楚地看到复数的实部a和虚部b都是以浮点型数据进行存储的。
3.1.5 布尔类型
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P48_35382.jpg?sign=1739596515-6otvoBKrF9rcxaUgH82iyaH1hKBH2QbM-0-d629efce17db7a1248163246fc54bfcd)
布尔类型严格意义上来讲不算数字类型,但是作为Python的基本数据类型之一,还是需要了解和掌握的。
布尔类型只存在两种值:True和False。布尔类型支持常规的运算,例如与运算、或运算和非运算。
【例3-6】布尔运算。
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P48_78657.jpg?sign=1739596515-JtBuXoNm239eKLUG9nXJYFehqYd5PmOH-0-bdb86457e608f7f5259a5316d43d7ed4)
和其他语言一样,Python中的True和False同样可以和1与0等价进行常规运算。
【例3-7】特殊布尔运算。
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P48_78658.jpg?sign=1739596515-XuTM02sRMqYS2sPy5siquH4Mq9dqkOcA-0-5e33bc418e68940f1d680bb74805dc72)