![例解Python:Python编程快速入门践行指南](https://wfqqreader-1252317822.image.myqcloud.com/cover/703/35808703/b_35808703.jpg)
2.1 数字类型
2.1.1 基本数字类型
Python基本的数字类型有以下几种。
➢ int:有符号整数。
➢ bool:布尔值。
➢ float:浮点数。
➢ complex:复数。
简单来说,大致只需要知道,数字有正负之分,有的有小数点,有的没有小数点,这些就够了。
布尔值就是真或假,它也是整数类型,真值用True表示,对应数字1;假值用False表示,对应数字0。注意这两个单词的大小写。
浮点数就是有小数点的数,而复数基本上是平时用不到的。
2.1.2 不同进制的整数数字表示方式
我们平时使用的数字主要是十进制数,不加任何说明,Python也默认采用十进制数输出。如果使用的是八进制、十六进制、二进制数,则需要在数字前面加上对应的前缀。
➢ 以0o或0O(数字0和字母O)开头的数字代表八进制数。
➢ 以0x或0X开头的数字代表十六进制数。
➢ 以0b或0B开头的数字代表二进制数。
注意,不管输入的是何种格式,Python均默认采用十进制数输出。代码如下:
![img](https://epubservercos.yuewen.com/65F395/19118079508020906/epubprivate/OEBPS/Images/txt002_1.jpg?sign=1739978310-Rqe1Qmadoflf8fTM1lRTafbgihJfMbbE-0-f34cdbed418179545bbba03178a69640)
![img](https://epubservercos.yuewen.com/65F395/19118079508020906/epubprivate/OEBPS/Images/txt002_2.jpg?sign=1739978310-I6v5G97kevaN3fQhQQyAjLWOYBqkFCwJ-0-5afe1a5a867badd0929fe5d5e77790c3)
也许你会说你对数制转换不熟悉,但实际上你经常在做数制的转换,而且能够非常熟练地转换,这个转换是对时间进行的。例如,1周零1天是几天?2年零2个月共有几个月?2小时3分4秒是多少秒?你都能熟练而准确地给出答案。按周计算是七进制,按年计算是十二进制,按小时计算就是六十进制。那么如果一周有8天,1周零1天有多少天呢?一年有16个月,2年零3个月是多少个月呢?这就很明白了吧。
2.1.3 算术运算符
标准运算符有加(+)、减(-)、乘(*)、除(/)、求模(%)和幂(**)运算符。这些运算符是我们平时经常用到的,有些无须特别说明。首先需要解释的是除法,先看一个例子:
![img](https://epubservercos.yuewen.com/65F395/19118079508020906/epubprivate/OEBPS/Images/txt002_3.jpg?sign=1739978310-fGA2ujDg1rkDdEA6ULzs99E3pVlyGEmh-0-ff17ec0e2f8b2ffd9cf4b13d08c78515)
这里的除法是“真正的除法”。如果只想得到整数,不出现小数同时舍弃余数,则可以采用如下的形式:
![img](https://epubservercos.yuewen.com/65F395/19118079508020906/epubprivate/OEBPS/Images/txt002_4.jpg?sign=1739978310-KTYa9y6FuUV7dKGG1rnXluPtBTz9FGde-0-2e810c7e5b772ce63805b33cdd3f8df9)
要想得到余数,采用模运算(求余):
![img](https://epubservercos.yuewen.com/65F395/19118079508020906/epubprivate/OEBPS/Images/txt002_5.jpg?sign=1739978310-eKNI9GZL5iS1iyPvUojRMrCvYhqEg0vK-0-93b4bdb2b5b1eb6f29158102baf87087)
如果既想得到商又想得到余数,则需要借助内建函数:
![img](https://epubservercos.yuewen.com/65F395/19118079508020906/epubprivate/OEBPS/Images/txt002_6.jpg?sign=1739978310-uz5ioEJr0VA2yzDO0wND1FOubPGSBrmk-0-247b29181b1bcaf1e939f7e5b41545da)
![img](https://epubservercos.yuewen.com/65F395/19118079508020906/epubprivate/OEBPS/Images/txt002_7.jpg?sign=1739978310-Sz5PjqdHMhxtyJCa3YjSs3h8tHrNrrp5-0-4da8e50f9f76591ca6c623952ac0b936)
幂运算(**)用于计算一个数的N次方,下面的例子是求3的4次方:
![img](https://epubservercos.yuewen.com/65F395/19118079508020906/epubprivate/OEBPS/Images/txt002_8.jpg?sign=1739978310-6Zar960rxtbEP7rqt6IdiSvpzyXbgDI2-0-0fb083398f631d0f2a3d1e7cc8292bc6)
2.1.4 比较运算符
比较运算符有小于(<)、小于等于(<=)、大于(>)、大于等于(>=)、等于(==)和不等于(!=)。
判断是否相等的符号采用了双等号,如果错误地写成了一个等号,那么Python会认为是赋值操作符,而不是比较操作符。
Python还支持连续比较:
![img](https://epubservercos.yuewen.com/65F395/19118079508020906/epubprivate/OEBPS/Images/txt002_9.jpg?sign=1739978310-ZS8juUeO7Ziwyt4G0ozHXOFgmDCWUwKx-0-78c3058bf824f004b8e14827513e3b27)
比较操作最终返回的结果为真或假,上述的两个例子等价于:
![img](https://epubservercos.yuewen.com/65F395/19118079508020906/epubprivate/OEBPS/Images/txt002_10.jpg?sign=1739978310-3hKgkRaDsZx64D3gyr5fhaabzdTIgdWi-0-d53071afd6277c4a1187b7719a0da06b)
第二个连续比较的例子,语法没有任何错误,但是不同的人理解起来不一样,会有歧义,也就是代码的可读性不好。所以推荐做法是全部采用小于号或者全部采用大于号。
2.1.5 逻辑运算符
逻辑运算符有表示与的and、表示或的or和表示非的not(即常说的【与或非】操作)。
and两边表达式的结果都为True,最终结果才为True:
![img](https://epubservercos.yuewen.com/65F395/19118079508020906/epubprivate/OEBPS/Images/txt002_11.jpg?sign=1739978310-05VfYVHgSu8VunheMbglXCAmUAvBPtRP-0-067965d1c8093085cd50c514bb95205c)
or两边表达式的结果只要有一方是True,最终结果就是True;两边全为False,最终结果才为False:
![img](https://epubservercos.yuewen.com/65F395/19118079508020906/epubprivate/OEBPS/Images/txt002_12.jpg?sign=1739978310-ZfHvmQ0rk1jpM51IKjowfQc7U1e3gm12-0-db4dfb57ab4013f12f039e5909221d04)
not将True变为False,将False变为True:
![img](https://epubservercos.yuewen.com/65F395/19118079508020906/epubprivate/OEBPS/Images/txt002_13.jpg?sign=1739978310-0GEaP9JwIgyVgiPrIEAJkAFiJr3S4rJg-0-fa444f44936cfe4e9c262f710a67015d)
需要特别说明的是,各种运算符都有优先级高低之分。算术运算符的优先级高于比较运算符,比较运算符的优先级高于逻辑运算符。同一级别内的运算符也有优先级高低之分,如算术运算符中,乘除法的优先级比加减法高。然而,优先级高低的顺序并不一定必须记住,更好的做法是使用括号:既省去了记忆的麻烦,又提高了可读性。如下所示:
![img](https://epubservercos.yuewen.com/65F395/19118079508020906/epubprivate/OEBPS/Images/txt002_14.jpg?sign=1739978310-eYdFSeNaDqxdXrygg3c8CDGI8A6ISwTr-0-c1554bd3550f28448c03997610dced99)
在上面的表达式中,not的优先级比or高,先计算not 10 < 20,再与10 < 30的结果做or运算。如果写成下面的样子,则可读性会更好一些:
![img](https://epubservercos.yuewen.com/65F395/19118079508020906/epubprivate/OEBPS/Images/txt002_15.jpg?sign=1739978310-CFq2UHAQ56asiuYuRbH9hTymBgWmvGW4-0-6f14fdaeee10978575b7965f19842730)
同样的道理,下面的四则运算中,幂运算的优先级最高:
![img](https://epubservercos.yuewen.com/65F395/19118079508020906/epubprivate/OEBPS/Images/txt002_16.jpg?sign=1739978310-cCyxC0Pu61ZBn8uM4Wj4sE8M8PP8OTx7-0-c2a181ac55947ada26b6318f353cdc0d)
如果写成下面的样子,则可读性会更好一些:
![img](https://epubservercos.yuewen.com/65F395/19118079508020906/epubprivate/OEBPS/Images/txt002_17.jpg?sign=1739978310-L20S1hV3tnvPR7u6W93ZfZRXTUOtMN78-0-ad52372a523454b4e93cf0e4f446d12e)