每种语言都有各种数据类型. 这就像在现实生活中, 我们计数的时候需要用到数字, 在表述金额, 重量, 距离等需要精确计数时用到小数, 在日常交谈中要用文字, 等等. 在计算机语言中, 为了表述不同的情况, 也需要用到各种数据类型.
在 Python 主要有数值类型(int, float), 字符串类型, 布尔型和空值.
整型 int
Python 中整型来表示整数, 正数或者负数, 没有小数点. 10 和 10.0 是两种数据类型.
浮点数 float
浮点数也就是我们常见的带小数点的数字. 之所以叫浮点数, 是因为小数点的位置不固定, 也就是浮动的.
比如 10.01 可以写为 1.001 10^1, 也可以写为 0.1001 10^2.
字符串 str
字符串是最常用的数据类型之一, 用引号包裹起来的就是字符串. 在 Python 中, 引号可以是双引号, 也可以是单引号. 但是不能混用.
同时也可以使用三对引号 (单双都可以) 来标记多行字符串.
- >>> char = 'nemo' # 单引号
- >>> char2 = "python" # 双引号
- >>> char3 = 'python" # 单双引号混用, 语法错误
- >>> char4 = 'this's a pig' # 语法错误, 可以将外面的引号替换为双引号, 或者使用转义符
- >>> char5 = 'this \'s a pig'
Python 中还有很多关于字符串的操作, 将在后续教程中详细讲解.
布尔型 bool
布尔型, 只有两个值, 就是我们通常说的真与假, 错与对, 是和否.
在计算机语言中, 通常使用布尔值来表示条件是否成立, 条件成立则为 True, 不成立则为 False.
- >>> 3> 1
- True
- >>> 0 <5
- False
- >>> 5 == '5'
- False
空值 None
空值 None 是 Python 中的一种特殊数据类型, 严格意义上来说也不算是一种数据类型. 空值用来表示什么都没有, 空字符串不是空, 空的字符串也是字符串, 而空值什么都不是. 在其他语言或数据库中用 null 表示.
常见于函数中, 当函数没有定义返回值的时候, 默认返回的就是 None.
判断数据类型的常用函数
在 Python 中, 用于判断数据类型的函数主要有两种, type()和 isinstance().
type()函数用于查看数据的类型:
- >>> type(5)
- <class 'int'>
- >>> type(5.0)
- <class 'float'>
- >>> type('5')
- <class 'str'>
isinstance()用于判断数据的类型, 符合返回 True, 不符合返回 False:
- >>> isinstance(5, int) # isinstance 需要两个参数, 第一个是值, 第二个是类型
- True
- >>> isinstance('5', int)
- False
- >>> isinstance('5', str)
- True
- >>> isinstance(True, int)
- True
- >>> isinstance(True, bool)
- True
这里有个现象 isinstance(True, int)也是符合的, 我们上面说过 True 是布尔型, 怎么 int 型也是符合的呢?
其实布尔型是 int 的一种, 值只有 0 和 1 罢了.
- >>> True == 1
- True
- >>> False == 0
- True
数据类型转换
不同的数据类型是可以互相转换的。如果要转为整数类型,可以使用 int() 函数,如果转为浮点型,可以使用 float() 函数, 如果转为字符串类型,可以使用 str() 函数。 目标类型 | 函数 |
---|---|
int | int() |
str | str() |
float | folat() |
- >>> int('15')
- 15
- >>> int('15a') # 报错, 字符串转 int , 必须全部是十进制的数字
- ValueError: invalid literal for int() with base 10: '15a'
- >>> int('1.1') # 报错, 看似浮点数也不行, 但是这个可以用 float 转为浮点数
- ValueError: invalid literal for int() with base 10: '1.1'
- >>> float('1.1')
- 1.1
- >>> float('11')
- 11.0
- >>> str(100)
- '100'
其余转换情况可自行尝试.
在 Python 中, 任意的数据类型, 都是对象! 当然, 还不止于此, 在 Python 中所见皆对象. 不过这句话现在不需要理解, 先记住就好.
本结思考
5 == 5.0, 结果是什么? 为什么?
5 is 5.0, 结果是什么? 为什么?
来源: http://www.bubuko.com/infodetail-3345370.html