- 例解Python:Python编程快速入门践行指南
- 张志刚
- 1338字
- 2021-02-26 18:02:23
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=1739667345-HWEKQ4oMT83yOpS4JWVt337mFzx1j5u7-0-5d22fe79eba4394cef8ebc9f919d47f8)
![img](https://epubservercos.yuewen.com/65F395/19118079508020906/epubprivate/OEBPS/Images/txt002_2.jpg?sign=1739667345-jd8jDqlPImIEqQXEHt3upf3bipyPtQBk-0-46d361cf8a816944493567fc2fb34514)
也许你会说你对数制转换不熟悉,但实际上你经常在做数制的转换,而且能够非常熟练地转换,这个转换是对时间进行的。例如,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=1739667345-PXmwJ3M8Pr5x5YDa6pGWhmouYtli9omH-0-e0cb086d38de027efb1e78b1377fb718)
这里的除法是“真正的除法”。如果只想得到整数,不出现小数同时舍弃余数,则可以采用如下的形式:
![img](https://epubservercos.yuewen.com/65F395/19118079508020906/epubprivate/OEBPS/Images/txt002_4.jpg?sign=1739667345-dkmb8K9l97qDSNvWqRheaKrOUzJuqWYv-0-5f726975c9f1d3ac3a6f28164a35d4d7)
要想得到余数,采用模运算(求余):
![img](https://epubservercos.yuewen.com/65F395/19118079508020906/epubprivate/OEBPS/Images/txt002_5.jpg?sign=1739667345-0zveWs9Pv1u2OzyX1BJiN4L32YhnRlHA-0-ea54272dc144813830822c0bed970628)
如果既想得到商又想得到余数,则需要借助内建函数:
![img](https://epubservercos.yuewen.com/65F395/19118079508020906/epubprivate/OEBPS/Images/txt002_6.jpg?sign=1739667345-DFb2ySyYfnzmfdTON0dBNWvVCNhQkJWH-0-3bc1e21b617c9842a60cefbc072543c1)
![img](https://epubservercos.yuewen.com/65F395/19118079508020906/epubprivate/OEBPS/Images/txt002_7.jpg?sign=1739667345-qiMTLoQjZ5OdCA5EAWigUfMJpmKiIFrR-0-510d688b2b1fde35c84e98f46e090720)
幂运算(**)用于计算一个数的N次方,下面的例子是求3的4次方:
![img](https://epubservercos.yuewen.com/65F395/19118079508020906/epubprivate/OEBPS/Images/txt002_8.jpg?sign=1739667345-doDwbvZk0I2gV5xwDJWnC9zEdO24Eto8-0-ad3bf0e38c5ab4d3442a929ddbdb65b4)
2.1.4 比较运算符
比较运算符有小于(<)、小于等于(<=)、大于(>)、大于等于(>=)、等于(==)和不等于(!=)。
判断是否相等的符号采用了双等号,如果错误地写成了一个等号,那么Python会认为是赋值操作符,而不是比较操作符。
Python还支持连续比较:
![img](https://epubservercos.yuewen.com/65F395/19118079508020906/epubprivate/OEBPS/Images/txt002_9.jpg?sign=1739667345-JxaPZW3Vjvf1bljUhB4otLTKdnhv28Q4-0-0beec7aa264af8f7b5d89bd90a41fb67)
比较操作最终返回的结果为真或假,上述的两个例子等价于:
![img](https://epubservercos.yuewen.com/65F395/19118079508020906/epubprivate/OEBPS/Images/txt002_10.jpg?sign=1739667345-bsnUyOELK2hQoeoWMIdXGjmAfJQ6Ea83-0-0fed9a58df7082f3e070f957a94695f1)
第二个连续比较的例子,语法没有任何错误,但是不同的人理解起来不一样,会有歧义,也就是代码的可读性不好。所以推荐做法是全部采用小于号或者全部采用大于号。
2.1.5 逻辑运算符
逻辑运算符有表示与的and、表示或的or和表示非的not(即常说的【与或非】操作)。
and两边表达式的结果都为True,最终结果才为True:
![img](https://epubservercos.yuewen.com/65F395/19118079508020906/epubprivate/OEBPS/Images/txt002_11.jpg?sign=1739667345-GORM4AFzdLCMDDCVwfWF1PL2Bz1p8aNL-0-94a4766ad2f8b0b4ea94a99671617c36)
or两边表达式的结果只要有一方是True,最终结果就是True;两边全为False,最终结果才为False:
![img](https://epubservercos.yuewen.com/65F395/19118079508020906/epubprivate/OEBPS/Images/txt002_12.jpg?sign=1739667345-LFPfuqHkUYwYXRoN0fnX7YLWy5iPbEfH-0-d865ba47c01133819f5546343c5348c6)
not将True变为False,将False变为True:
![img](https://epubservercos.yuewen.com/65F395/19118079508020906/epubprivate/OEBPS/Images/txt002_13.jpg?sign=1739667345-dIDoQXey4r2JUm16OrHdMMl9aZgig6Ov-0-05aec38397959d7794f565b806099e56)
需要特别说明的是,各种运算符都有优先级高低之分。算术运算符的优先级高于比较运算符,比较运算符的优先级高于逻辑运算符。同一级别内的运算符也有优先级高低之分,如算术运算符中,乘除法的优先级比加减法高。然而,优先级高低的顺序并不一定必须记住,更好的做法是使用括号:既省去了记忆的麻烦,又提高了可读性。如下所示:
![img](https://epubservercos.yuewen.com/65F395/19118079508020906/epubprivate/OEBPS/Images/txt002_14.jpg?sign=1739667345-vd0VnP6PakThyBCcgiAnxHMBKbNDiVdh-0-797f8d9c28ed06f94bfb58eb3c5519ac)
在上面的表达式中,not的优先级比or高,先计算not 10 < 20,再与10 < 30的结果做or运算。如果写成下面的样子,则可读性会更好一些:
![img](https://epubservercos.yuewen.com/65F395/19118079508020906/epubprivate/OEBPS/Images/txt002_15.jpg?sign=1739667345-oregjF6oNwcga4BRJhdtJIpspYv6g6a7-0-047139d7fdfa9aad08c1eb25d2803cf1)
同样的道理,下面的四则运算中,幂运算的优先级最高:
![img](https://epubservercos.yuewen.com/65F395/19118079508020906/epubprivate/OEBPS/Images/txt002_16.jpg?sign=1739667345-7T7TCkIcihTCK4cI1A9fljr3BozmOWx1-0-7d575a97b193f4f7aae541df57a85c3b)
如果写成下面的样子,则可读性会更好一些:
![img](https://epubservercos.yuewen.com/65F395/19118079508020906/epubprivate/OEBPS/Images/txt002_17.jpg?sign=1739667345-35hHq5mXw3NNVPbQwOYJnXCtceJvtjZq-0-b4fe4082bee342b9b5b324dd270f1ac3)