Python 有多种基本数据类型,用来存储内存中的数据。Python 一共提供了三种基本数据类型,其中分为是:数值型、字符型、布尔型。
数值型
数值型就是用来存储数字的类型,例如一个人的年龄,身高,体重,一家公司的年度营收,员工总数等等。
在 Python 中,提供了数字类型来保存这些数据,并且这些数值类型是不可改变的数据类型。如果需要修改数字类型变量的值,那么会先把该值放入内存中,然后修改变量让其指向新的内存地址。
例如:
1 | a = 10 |
运行结果:
1 | 140718916818880 |
说明:在 Python 语言中,可以使用内置的函数
id()
来获取变量所指向的内存地址。
a 与 b 虽然是不同的变量,但是他们的值都是相同的,所以它们在内存中的地址也是相同的,而当改变变量 a 的值的时候,并不是直接改变变量 a 的值,而是改变了变量 a 所指向的内存地址。
在 Python 语言中,数值类型主要包括整数、浮点数和复数。
整数
整数就是整数数值,是没有小数部分的数值,例如:0、3、10、-1 等等。整数包括正整数、负数和0。Python 中的整数会自动转换高精度计算,所以 Python 中的整数类型的位数是任意的。
例如:
1 | a = 123456 |
运行结果:
1 | 123456 |
值得一提的是,Python 中的整数类型,如果是十进制整数,除了0之外,其他数值不能以0作为开头。
例如:
1 | e = 000000000 |
运行结果:
1 | 0 |
例如:
1 | f = 000023 |
运行结果:报错
Python 中的整数除了十进制类型外,还有八进制、十六进制、二进制等等,在这里不过多讲解。
浮点数
浮点数主要由整数部分和小数部分组成,主要用于处理包括小数的数值。例如:3.1415926、-152.01、0.0001 等。
在使用浮点数计算的时候,可能会出现小数位数不确定的情况。
例如:
1 | a = 0.1 + 0.1 |
运行结果:
1 | 0.2 |
这是因为浮点数值在内存中保存方法导致的,基本上所有的计算机语言都存在这个问题,我们这里直接忽略多余的小数位即可。
复数
Python 中的复数与数学中的复数的表现形式完全一致,都是有实数和虚数构成,并且使用
j
或J
表示虚部。
例如:
1 | a = 6.54 + 32.01j |
运行结果:
1 | (6.54+32.01j) |
字符串类型
字符串就是连续的字符组成的,通常使用 单引号
''
、双引号""
、三引号''''''
或者""""""
包裹起来。
这三种类在 Python 中,字符串和整数一样,也属于不可变序列。
例如:
1 | a = "字符串类型" |
运行结果:
1 | 1357027606320 |
在 Python 中,单引号和双引号的字符串都只能在同一行,而三引号的字符串可以多行书写。
例如:
1 | a = '单引号字符串' |
运行结果:
1 | 单引号字符串 |
在 Python 中,存在转义字符,所谓转义字符,是指使用反斜杠 \
对一些特殊字符进行转义。
例如:
1 | # \n 换行符 |
运行结果:
1 | Python |
除了这些转义字符外,还有其他一些不常用的转义字符,在这里不过多讲述。
值得一提的是,在 Python 中,在字符串定界符引前加上字母r
(或者R),即可原样输出字符串。
例如:
1 | a = r"Python\n字符串a" |
运行结果:
1 | Python\n字符串a |
布尔类型
布尔类型主要表示为真值或者假值,在 Python 中,
Treu
和False
都解释为布尔类型。
Python 中的布尔类型可以解释为数值类型进行计算,True
解释为 1,False
解释为 0。
例如:
1 | a = True + 1 |
运行结果:
1 | 2 |
在 Python 中,所有的对象都可以真值测试,其中,以下几种情况可以被判定为 False
,其他情况则为 True
。
False
或None
。- 数值中的0,包括0、0.0、虚数0。
- 空序列,包括空字符串、空元组、空列表、空字典。
- 自定义的对象,该对象的
__bool__
方法返回False
,或者__len__
方法返回0。
类型转换
在 Python 中,可以使用 Python 的内置函数,将一些类型的数据转换为另外一种类型。
例如:
1 | a = 1 |
运行结果:
1 | <class 'int'> |
常用的类型转换函数有:
函数 | 作用 |
---|---|
int(x) | 将x转换为整数类型 |
float(x) | 将x转换为浮点数类型 |
complex(real [,imag]) | 创建一个复数 |
str(x) | 将x转换为字符串类型 |
repr(x) | 将x转换为表达式字符串 |
eval(x) | 计算在字符串中的有效 Python 表达式,并返回一个对象 |
chr(x) | 将整数x转换为一个字符 |