一、数据类型
1.定义:数据类型是指定程序在运行过程中,将各种数据根据表示形式和组织形式划分为不同的分类。
2. Python3 中标准数据类型有:
- 基本数据类型
- Number(数字)
- String(字符串)
- bool(布尔类型)
- 复合数据类型(容器类型)
- List(列表)
- Tuple(元组)
- Dictionary(字典)
- Set(集合)
- 空类型
- None
Python3 根据数据的特性可分为:
- 不可变数据(4 个):Number(数字)、bool(布尔)、String(字符串)、Tuple(元组);
- 可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)。
2.类型查看
为了方便检查一个变量的具体类型,可以使用 Python 内置的 type()
函数查看变量的类型。
# 数字类型
num = 666
print(type(num))
# 布尔类型
b = True
print(type(b))
# 字符串类型
s = "学测试开发升职加薪,就来霍格沃兹测试学社"
print(type(s))
# 空类型
x = None
print(type(x))
二、数字类型
字类型
Python 中,数字类型(Number) 包括整数(int)、浮点(float)数和复数(complex) 三个子类型。
用来表示程序中不同的数字类型的数据。
整数类型:整数类型:用来表示整数数值,即没有小数部分数值 用int表示
浮点数类型:用来表示带小数点的数值,没有double类型同一使用float
复数类型:如n = 4+3j print(n) print(type(n)
三、布尔类型
布尔类型
Python 中的布尔类型(bool)是 整数类型(int)的一个子类,用来描述逻辑关系的正确与否。
布尔类型只有两个值,即 True
和 False
表示真和假,在 Python 中,布尔类型通常用于判断逻辑关系和状态标记。
条件判断
x = 5
y = 10
print(x < y) # 输出True
print(x > y) # 输出False
状态标记
程序开发过程中,经常需要标记一些状态,比如是否选中,是否点击等,都可以使用记录布尔值的变量记录状态。
isSelect = False
isExist = True
假值状态
在 Python 中,所有的对象都可以判断是否为真。其中,只有下面列出的几种情况得到的值为假,其他对象在 if 或者 while 语句中都表现为真。
常见的假值类型:
- False
- None
- 数值中的零,包括 0、0.0、虚数 0。
- 空序列,包括字符串、空元组、空列表、空字典。
四、类型转换
1.自动转换
自动转换也称为隐式类型转换,程序在执行过程中自动完成,将数据精度低转换为数据精度高的类型。
有些时候,在对不同类型的数据进行运算时,Python 会自动将它们转成同样的类型,然后再计算结果。
n = 10 + 3.14
print(n, type(n))
n = False + 1
print(n)
print(type(n))
2.强制转换
强制转换也称为显式类型转换,需要在代码中使用类型函数来转换。
比如通过 input() 函数获取的数字,实际为一个数字字符串,如果需要进行计算,需要将其转换成真正的数字才能进行数据计算。
如果我们不进行类型转换,那么可能会导致程序出现错误或者无法正常运行。
此代码在执行时会报类型错误
title = “霍格沃兹” + 666
print(title, type(title))
title = “霍格沃兹” + str(666)
print(title, type(title))
Python 提供了多种类型转换的函数:
int(x):将 x 转换为整数。如果 x 是一个字符串,那么它必须是一个表示整数的字符串,否则将会抛出异常。
float(x):将 x 转换为浮点数。如果 x 是一个字符串,那么它必须是一个表示浮点数的字符串,否则将会抛出异常。
complex(x):将 x 转换为复数。如果 x 是一个字符串,那么它必须是一个表示复数的字符串,否则将会抛出异常。
bool(x):将 x 转换为布尔值。如果 x 是一个空对象、0、空字符串、空列表、空元组、空字典或者 False,那么将返回 False,否则将返回 True。
str(x):将 x 转换为字符串。如果 x 是一个对象,那么将会调用该对象的 str()方法,将其转换为字符串。
chr(x): 将一个整数转换为一个字符,虽然结果是一个字符,但其本质依然是一个字符串类型。
将字符串转换为整数
x = int(“123”)
print(x)
print(type(x))
将字符串转换为浮点数
y = float(“3.14”)
print(y)
print(type(y))
将数字转换为字符串
z = str(123)
print(z)
print(type(z))
将数字转换为字符串
b = bool(123)
print(b)
print(type(b))
将数字转换为字符
c = chr(65)
print(c)
print(type(c))
需要注意的是,如果在强制类型转换时,传递的转换数据不合法导致无法转换,那么将会抛出异常。
x = int(“霍格沃兹”)
执行后会提示:ValueError: invalid literal for int() with base 10: ‘霍格沃兹’。