3.3 Python的基本数据类型

Python的基本数据类型如表3-2所示。

表3-2 Python的基础数据类型

039-01

3.3.1 字符串

在Python中,单引号、双引号、三引号引起来的都是字符串,例如:

>'spam eggs'
'spam eggs'
>"spam eggs"
'spam eggs'
>'''spam eggs'''
'spam eggs'
>type('spam eggs')
str

此外,Python支持一些字符串格式化输出,例如换行符“\n”和制表符“\t”,例如:

>print ('First line.\nSecond line.')
First line.
Second line.
>print('1\t2')
1   2

在Python中,字符串加运算表示字符串拼接,例如:

>'pyt'+'hon'
'Python'

3.3.2 浮点型和整型

Python可以处理任意大小的整数,包括负整数。其在程序中的表示方法和在数学上的写法一样。

> 1+1
2

Python支持数值的四则运算,例如:

> 1+1  #加法
2
> 1-1  #减法
0
> 1*1  #乘法
1
> 2**2  #2的2次方
4
> 2/3  #除法
0.6666666666666666
> 5//2  #除法(整除)
2
> 5%2  #余数
1

此外,我们还可以使用内置函数进行数值类型的转换,例如将字符转换为数值。

>float("1")
1.0
>int("1")
1

3.3.3 布尔类型

Python中的布尔值一般由逻辑判断产生,且只有两个可能结果:True、False。

整型、浮点型的“0”和复数0+0j可以表示False,其余整型、浮点型、复数数值都被判断为True。以下代码通过逻辑表达式创建布尔逻辑。

>1 == 1
True
> 1 > 3
False
> 'a' is 'a'
True

当然,Python还提供了逻辑值的运算,即且、或、非运算。

>True and False#且
False
>True or False #或
True
>not True #非
False

布尔逻辑值转换可以使用内置函数bool。除数字0和空值外,其他类型用bool函数转换后结果都为True。

>bool(1)
True
>bool("0")
True
>bool(0)
False

Python中的数据类型转换如表3-3所示。

表3-3 Python中的数据类型转换

041-01

3.3.4 其他数据类型

Python中还有一些特殊的数据,例如无穷值、nan(非数值)、None等。

下面是无穷值的一些运算。注意,正负无穷相加返回nan,表示非数值。

>float('-inf')+1
-inf
>float('-inf')/-1
inf
>float('+inf')+1
inf
>float('+inf')/-1
-inf
>float('-inf')+float('+inf')
nan

在Python中,非数值与任何数值运算,结果都是nan。nan甚至不等于自身,如下所示。nan可表示缺失值。

>float('nan') == float('nan')
False

此外,Python提供None来表示空,如下所示。

>x = None
> x is None
True