2.4 数据类型
计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值。
但是,计算机能处理的远不止数值,还可以处理文本、图形、音频、视频、网页等各种各样的数据,不同的数据,需要定义不同的数据类型。在Python中,能够直接处理的数据类型有以下几种:
(一)整数¶
Python可以处理任意大小的整数,当然包括负整数,在程序中的表示方法和数学上的写法一模一样,例如:1,100,-8080,0,等等。
计算机由于使用二进制,所以,有时候用十六进制表示整数比较方便,十六进制用0x前缀和0-9,a-f表示,例如:0xff00,0xa5b4c3d2,等等。
对于很大的数,例如10000000000,很难数清楚0的个数。Python允许在数字中间以_分隔,因此,写成10_000_000_000和10000000000是完全一样的。十六进制数也可以写成0xa1b2_c3d4。
(二)浮点数¶
浮点数也就是小数,之所以称为浮点数,是因为按照科学记数法表示时,一个浮点数的小数点位置是可变的,比如, 和 是完全相等的。
浮点数可以用数学写法,如1.23,3.14,-9.01,等等。但是对于很大或很小的浮点数,就必须用科学计数法表示,把10用e替代,就是1.23e9,或者12.3e8,0.000012可以写成1.2e-5,等等。
整数和浮点数在计算机内部存储的方式是不同的,整数运算永远是精确的,而浮点数运算则可能会有四舍五入的误差。
(三)字符串¶
字符串是以单引号'或双引号"括起来的任意文本,比如'abc',"xyz"等等。请注意,''或""本身只是一种表示方式,不是字符串的一部分,因此,字符串'abc'只有a,b,c这3个字符。如果'本身也是一个字符,那就可以用""括起来,比如"I'm OK"包含的字符是I,',m,空格,O,K这6个字符。
如果需要拼接字符串,可以使用+号,例如拼接’abc’和’xyz’这两个字符串:
'abc' + 'xyz''abcxyz'练习:拼接字符串¶
请拼接如下三个字符串:‘123’, ‘456’, '789’为一个字符串。
(四)布尔类型¶
布尔类型(Boolean type)是 Python 中一种基本数据类型,用于表示真或假。布尔类型的变量只能取两个值:True 或 False。布尔类型主要应用在运算符与表达式中。
运算符与表达式¶
运算符包括算术运算符、关系运算符、逻辑运算符、赋值运算符欧等等。
我们先来看看逻辑运算符:and、or和not,逻辑运算符的操作数是逻辑值True(真)和False(假)。not属于一元运算符,只有一个操作数;or和and属于二元运算符,有两个操作数。
表 逻辑运算符的运算法则
| 操作数X | 操作数Y | X and Y | X or Y | not X |
|---|---|---|---|---|
| True | True | True | True | False |
| True | False | False | True | False |
| False | True | False | True | True |
| False | False | False | False | True |
表达式是由变量、对象、方法调用和操作符等元素组成的式子。例如a+b, a>b, a and b都为表达式。
当表达式出现多个运算符时,Python将按照运算符的优先次序从高到低进行计算。
运算符的优先次序
| 运算符 | 描述(优先次序从高到低) |
|---|---|
| ** | 幂运算 |
| ~, + , - | 按位翻转,正号,负号 |
| *, /, %, // | 乘、除、取模和取整除 |
| +, - | 加法、减法 |
| >>, << | 右移 |
| &, | 位与 |
| ^, | | 位运算符 |
| <,<=,>,>=,!=,== | 比较运算符 |
| is, is not | 身份运算符 |
| in, not in | 成员运算符 |
| not, or, and | 逻辑运算符 |
练习:运算符的优先级¶
以下表达式的运行结果是多少?
1 + 2**2
(5 + 2) * 3 // 4
2>1 and 3<2
not 2>1
2 == 2
3 != 2
a = True; (a is False) or (a is not True) or (a is not False)
a = [1,2,3,4,5,6]; not (3 not in a)
a=[2+2**4,3+2**1,4+1**5,4];((not(5 not in a) and (10 in a)) is False) == (not(5 not in a) and (10 in a) is False)
对于上面不确定表达式,可以粘贴在下方并运行。