1.简介
上一篇宏哥讲解和分享了Python的变量和常量,今天宏哥按照计划讲解和分享一下Python的基本数据类型。我们先来看一下学习变量和基本数据类型的目的。Python是一种高级编程语言,它支持多种数据类型,用于存储和操作不同类型的数据。Python的数据类型主要分为两大类:基本数据类型和复合数据类型。
1.1学习变量的目的
- 学习变量有助于我们在程序中存储和操作数据,提高代码的灵活性和可维护性。
- 通过使用变量,我们可以方便地引用和修改数据,使得程序能够动态地响应不同的输入和条件。
1.2学习数据类型的目的
- 学习基本数据类型有助于我们理解不同类型的数据在计算机中的表示和操作方式。
- 不同的数据类型适用于不同的场景,了解它们的特性有助于我们编写更加高效和健壮的代码。
2.什么是数据类型?
数据类型是指在编程语言中用于定义变量或数据项的类别,这些类别决定了变量可以存储的什么样的数据类别和操作。数据类型是一组具有相似属性的一类数据的集合,数据类型决定了其存储到计算机中的方式。将数据进行类型划分,是为了更方便的处理数据。比如:你想让计算机进行数值运算,你就传数字给它,你想让它处理文字,就传字符串给它。
3.数据类型分类
Python的数据类型可以分为两大类:可变数据类型 和不可变数据类型。可变数据类型允许在创建后修改其内容,而不可变数据类型则不允许。理解这两者的区别对编写高效、安全的代码至关重要。
3.1不可变数据类型
- 整数(int) :如
42
、-10
。 - 浮点数(float) :如
3.14
、-0.001
。 - 布尔值(bool) :
True
或False
。 - 字符串(str) :如
"Hello, Python!"
。 - 元组(tuple) :如
(1, 2, 3)
。
3.2可变数据类型
- 列表(list) :如
[1, 2, 3]
。 - 字典(dict) :如
{"name": "Alice", "age": 25}
。 - 集合(set) :如
{1, 2, 3}
。
4.基本数据类型详解
基本数据类型是Python中最基础的数据类型,它们用于存储单个值。Python中的基本数据类型包括数值(整数、浮点数、复数)、字符串、布尔值等。这些数据类型是构建更复杂数据结构的基础,如列表、元组、字典等。
Python3 的六个标准数据类型中:
- **不可变数据(3 个):**Number(数字)、String(字符串)、Tuple(元组);
- **可变数据(3 个):**List(列表)、Dictionary(字典)、Set(集合)。
此外还有一些高级的数据类型,如: 字节数组类型(bytes)。
在 Python 里为了应对不同的业务需求,也把数据分为不同的类型。如下图所示:

4.1Number(数字型)
Python3 支持 int、float、bool、complex(复数)。在Python 3里,只有一种整数类型 int,表示为长整型,没有 python2 中的 Long。像大多数语言一样,数值类型的赋值和计算都是很直观的。内置的 type() 函数可以用来查询变量所指的对象类型。长整型也可以使用小写 l,但是还是建议您使用大写 L,避免与数字 1 混淆。Python使用 L 来显示长整型。
4.1.1type或 isinstance查看数据类型
1.查看数据类型语法如下:
type(name)
或者
isinstance(name,数据类型)
******✅**示例代码:
# -*- coding:utf-8 -*-
# 1.先设置编码,utf-8可支持中英文,如上,一般放在第一行
# 2.注释:包括记录创建时间,创建人,项目名称。
'''
Created on 2025-06-03
@author: 北京-宏哥
北京宏哥(微信搜索:北京宏哥,关注宏哥,提前解锁更多测试干货!)
Project: Python零基础从入门到精通详细教程3-数据类型
'''
# 3.导入模块
a, b, c, d = 20, 5.5, True, 4+3j
print(type(a), type(b), type(c), type(d))
******✅**运行结果:
此外还可以用 isinstance 来判断:
******✅**示例代码:
# -*- coding:utf-8 -*-
# 1.先设置编码,utf-8可支持中英文,如上,一般放在第一行
# 2.注释:包括记录创建时间,创建人,项目名称。
'''
Created on 2025-06-03
@author: 北京-宏哥
北京宏哥(微信搜索:北京宏哥,关注宏哥,提前解锁更多测试干货!)
Project: Python零基础从入门到精通详细教程3-数据类型
'''
# 3.导入模块
a = 111
print(isinstance(a, int))
********✅运行结果:

isinstance 和 type 的区别在于:
- type()不会认为子类是一种父类类型。
- isinstance()会认为子类是一种父类类型。
宏哥用代码来验证一下这一区别如下:
******✅**示例代码:
# -*- coding:utf-8 -*-
# 1.先设置编码,utf-8可支持中英文,如上,一般放在第一行
# 2.注释:包括记录创建时间,创建人,项目名称。
'''
Created on 2025-06-03
@author: 北京-宏哥
北京宏哥(微信搜索:北京宏哥,关注宏哥,提前解锁更多测试干货!)
Project: Python零基础从入门到精通详细教程3-数据类型
'''
# 3.导入模块
# 定义一个类A,类 A 是一个空类,不包含任何属性和方法。
class A:
pass
# 定义一个类B,类 B 继承自类 A,也为空,表示 B 是 A 的子类。
class B(A):
pass
# 实例化A类,然后isinstance判断是否是A类的类型
print(isinstance(A(), A))
# 实例化A类,然后type判断是否是A类的类型
print(type(A()) == A)
# 实例化B类,然后isinstance判断是否是A类的类型
print(isinstance(B(), A))
# 实例化B类,type
print(type(B()) == A)
********✅运行结果:
4.1.2数字类型(int, float)
Python的数字类型包括整数和浮点数。整数用于表示没有小数部分的数字,而浮点数用于表示有小数部分的数字。Python会自动处理大整数,无需担心溢出问题。
1.整数(int) :是没有小数点的数字,例如:42
,-10
,0。
用于存储整数值,可以是正数或负数,没有大小限制(在大多数现代Python实现中)。在这里提示在Python2.x中,整数根据保存数值的长度还分为 int(整数) long(长整数)。
2.浮点数(float) :是可以有小数点的数字,例如:3.14,-0.001,2.0(注意,即使小数部分为0,也可以有小数点)。用于存储带有小数点的数值,即实数。Python中的浮点数通常是双精度浮点数。
******✅**示例代码:
# -*- coding:utf-8 -*-
# 1.先设置编码,utf-8可支持中英文,如上,一般放在第一行
# 2.注释:包括记录创建时间,创建人,项目名称。
'''
Created on 2025-06-03
@author: 北京-宏哥
北京宏哥(微信搜索:北京宏哥,关注宏哥,提前解锁更多测试干货!)
Project: Python零基础从入门到精通详细教程3-数据类型
'''
# 3.导入模块
a = 10 # 整数
b = 3.14 # 浮点数
print(a + b) # 输出:13.14
********✅运行结果:

4.1.3布尔类型(bool)
布尔值(bool):用于表示真(True)或假(False)的值。布尔类型只有两个值:`True`和`False`。它们常用于条件判断和逻辑运算。布尔值常用于控制程序流程。
注意: Python3 中,bool 是 int 的子类,True 和 False 可以和数字相加, True==1、False==0 会返回 True ,但可以通过 is 来判断类型。
注意: 在 Python 中,所有非零的数字和非空的字符串、列表、元组等数据类型都被视为 True,只有 0、空字符串、空列表、空元组等被视为 False。因此,在进行布尔类型转换时,需要注意数据类型的真假性。
布尔类型可以用来控制程序的流程,比如判断某个条件是否成立,或者在某个条件满足时执行某段代码。
布尔类型特点:
-
布尔类型只有两个值:True 和 False。
-
bool 是 int 的子类,因此布尔值可以被看作整数来使用,其中 True 等价于 1。
-
布尔类型可以和其他数据类型进行比较,比如数字、字符串等。在比较时,Python 会将 True 视为 1,False 视为 0。
-
布尔类型可以和逻辑运算符一起使用,包括 and、or 和 not。这些运算符可以用来组合多个布尔表达式,生成一个新的布尔值。
-
布尔类型也可以被转换成其他数据类型,比如整数、浮点数和字符串。在转换时,True 会被转换成 1,False 会被转换成 0。
-
可以使用
bool()
函数将其他类型的值转换为布尔值。以下值在转换为布尔值时为False
:None
、False
、零 (0
、0.0
、0j
)、空序列(如''
、()
、[]
)和空映射(如{}
)。其他所有值转换为布尔值时均为True
。
真 True 非0数--非零即真
假 False
等同于True的值:
-非零数值
-非空字符串
等同于False的值:
None;
False;
任何为0的数字类型,如0、0.0、0j;
任何空序列,如""、()、[];
空字典,如{};
用户定义的类实例,如类中定义了__bool__()或者__len__()方法,并且该方法返回0或者布尔值False。
******✅**示例代码:
# -*- coding:utf-8 -*-
# 1.先设置编码,utf-8可支持中英文,如上,一般放在第一行
# 2.注释:包括记录创建时间,创建人,项目名称。
'''
Created on 2025-06-03
@author: 北京-宏哥
北京宏哥(微信搜索:北京宏哥,关注宏哥,提前解锁更多测试干货!)
Project: Python零基础从入门到精通详细教程3-数据类型
'''
# 3.导入模块
x = True
y = False
print(x and y) # 输出:False
********✅运行结果:

4.1.4复数
复数:是实数和虚数的组合,可以表示为 ( a + bj ) 的形式。主要用于科学计算,例如:平面场问题、波动问题、电感电容等问题。
在Python中,复数类型用complex表示。它可以通过以下方式创建:
-
直接指定实部和虚部:complex(real, imag)
-
使用字符串:complex(string)
-
不指定实部和虚部,默认都为0:complex()
******✅**示例代码:
# -*- coding:utf-8 -*-
# 1.先设置编码,utf-8可支持中英文,如上,一般放在第一行
# 2.注释:包括记录创建时间,创建人,项目名称。
'''
Created on 2025-06-03
@author: 北京-宏哥
北京宏哥(微信搜索:北京宏哥,关注宏哥,提前解锁更多测试干货!)
Project: Python零基础从入门到精通详细教程3-数据类型
'''
# 3.导入模块
x = complex(3, 4) # 创建一个复数3+4j
y = complex('3+4j') # 创建一个复数3+4j
z = complex() # 创建一个复数0+0j
print(x,y,z)
********✅运行结果:

4.2非数字型
4.2.1字符串(str)
字符串(str):用于存储文本数据,即一系列字符。Python中的字符串是不可变的,意味着一旦创建,就不能更改字符串中的字符。
字符串是Python中用于表示文本的数据类型,可以用单引号、双引号或三引号定义。字符串支持多种操作,如切片、拼接和格式化。
******✅**示例代码:
# -*- coding:utf-8 -*-
# 1.先设置编码,utf-8可支持中英文,如上,一般放在第一行
# 2.注释:包括记录创建时间,创建人,项目名称。
'''
Created on 2025-06-03
@author: 北京-宏哥
北京宏哥(微信搜索:北京宏哥,关注宏哥,提前解锁更多测试干货!)
Project: Python零基础从入门到精通详细教程3-数据类型
'''
# 3.导入模块
s = "Python"
print(s[0]) # 输出:'P'
print(s + " 3.10") # 输出:'Python 3.10'
********✅运行结果:

4.2.2列表(list)
列表(list):有序的数据集合,可以包含不同类型的元素。列表是可变的,意味着可以添加、删除或修改其中的元素。
列表是Python中最常用的数据类型之一,可以存储多个元素,且元素可以是不同类型。列表是可变的,支持增删改查操作。能储存多个数据,通过索引能取一条或多条数据。
******✅**示例代码:
# -*- coding:utf-8 -*-
# 1.先设置编码,utf-8可支持中英文,如上,一般放在第一行
# 2.注释:包括记录创建时间,创建人,项目名称。
'''
Created on 2025-06-03
@author: 北京-宏哥
北京宏哥(微信搜索:北京宏哥,关注宏哥,提前解锁更多测试干货!)
Project: Python零基础从入门到精通详细教程3-数据类型
'''
# 3.导入模块
my_list = [1, "apple", 3.14]
my_list.append("banana") # 添加元素
print(my_list) # 输出:[1, 'apple', 3.14, 'banana']
********✅运行结果:

4.2.3元组(tuple)
元组(tuple):与列表类似,但元组是不可变的。一旦创建,就不能更改元组中的元素。元组通常用于存储不应该改变的数据。
元组与列表类似,但它是不可变的。元组通常用于存储不可修改的数据。
******✅**示例代码:
# -*- coding:utf-8 -*-
# 1.先设置编码,utf-8可支持中英文,如上,一般放在第一行
# 2.注释:包括记录创建时间,创建人,项目名称。
'''
Created on 2025-06-03
@author: 北京-宏哥
北京宏哥(微信搜索:北京宏哥,关注宏哥,提前解锁更多测试干货!)
Project: Python零基础从入门到精通详细教程3-数据类型
'''
# 3.导入模块
my_tuple = (1, "apple", 3.14)
print(my_tuple[1]) # 输出:'apple'
********✅运行结果:

4.2.4集合(set)
集合(set):无序的、不包含重复元素的集合。集合主要用于数学上的集合操作,如并集、交集、差集和对称差集。
集合是一种无序且不重复的数据类型,常用于去重和集合运算(如并集、交集)。
******✅**示例代码:
# -*- coding:utf-8 -*-
# 1.先设置编码,utf-8可支持中英文,如上,一般放在第一行
# 2.注释:包括记录创建时间,创建人,项目名称。
'''
Created on 2025-06-03
@author: 北京-宏哥
北京宏哥(微信搜索:北京宏哥,关注宏哥,提前解锁更多测试干货!)
Project: Python零基础从入门到精通详细教程3-数据类型
'''
# 3.导入模块
my_set = {1, 2, 2, 3}
print(my_set) # 输出:{1, 2, 3}
********✅运行结果:

4.2.5字典(dict)
字典(dict):存储键值对(key-value pairs)的集合。字典是可变的,可以添加、删除或修改键值对。键必须是唯一的,而值则可以是任何数据类型。
字典是一种键值对结构,用于存储关联数据。字典的键必须是不可变类型(如字符串、数字或元组),而值可以是任意类型。
示例代码:
# -*- coding:utf-8 -*-
# 1.先设置编码,utf-8可支持中英文,如上,一般放在第一行
# 2.注释:包括记录创建时间,创建人,项目名称。
'''
Created on 2025-06-03
@author: 北京-宏哥
北京宏哥(微信搜索:北京宏哥,关注宏哥,提前解锁更多测试干货!)
Project: Python零基础从入门到精通详细教程3-数据类型
'''
# 3.导入模块
my_dict = {"name": "Alice", "age": 25}
print(my_dict["name"]) # 输出:'Alice'
********✅运行结果:

4.3bytes 类型
在 Python3 中,bytes 类型表示的是不可变的二进制序列(byte sequence)。
与字符串类型不同的是,bytes 类型中的元素是整数值(0 到 255 之间的整数),而不是 Unicode 字符。
bytes 类型通常用于处理二进制数据,比如图像文件、音频文件、视频文件等等。在网络编程中,也经常使用 bytes 类型来传输二进制数据。
创建 bytes 对象的方式有多种,最常见的方式是使用 b 前缀:
此外,也可以使用 bytes() 函数将其他类型的对象转换为 bytes 类型。bytes() 函数的第一个参数是要转换的对象,第二个参数是编码方式,如果省略第二个参数,则默认使用 UTF-8 编码。
******✅**示例代码:
# -*- coding:utf-8 -*-
# 1.先设置编码,utf-8可支持中英文,如上,一般放在第一行
# 2.注释:包括记录创建时间,创建人,项目名称。
'''
Created on 2025-06-03
@author: 北京-宏哥
北京宏哥(微信搜索:北京宏哥,关注宏哥,提前解锁更多测试干货!)
Project: Python零基础从入门到精通详细教程3-数据类型
'''
# 3.导入模块
x = bytes("hello", encoding="utf-8")
print(x)
********✅运行结果:

与字符串类型类似,bytes 类型也支持许多操作和方法,如切片、拼接、查找、替换等等。同时,由于 bytes 类型是不可变的,因此在进行修改操作时需要创建一个新的 bytes 对象。例如:
******✅**示例代码:
# -*- coding:utf-8 -*-
# 1.先设置编码,utf-8可支持中英文,如上,一般放在第一行
# 2.注释:包括记录创建时间,创建人,项目名称。
'''
Created on 2025-06-03
@author: 北京-宏哥
北京宏哥(微信搜索:北京宏哥,关注宏哥,提前解锁更多测试干货!)
Project: Python零基础从入门到精通详细教程3-数据类型
'''
# 3.导入模块
x = b"hello"
y = x[1:3] # 切片操作,得到 b"el"
z = x + b"world" # 拼接操作,得到 b"helloworld"
print(x,y,z)
********✅运行结果:

需要注意的是,bytes 类型中的元素是整数值,因此在进行比较操作时需要使用相应的整数值。例如:
******✅**示例代码:
# -*- coding:utf-8 -*-
# 1.先设置编码,utf-8可支持中英文,如上,一般放在第一行
# 2.注释:包括记录创建时间,创建人,项目名称。
'''
Created on 2025-06-03
@author: 北京-宏哥
北京宏哥(微信搜索:北京宏哥,关注宏哥,提前解锁更多测试干货!)
Project: Python零基础从入门到精通详细教程3-数据类型
'''
# 3.导入模块
x = b"hello"
if x[0] == ord("h"):
print("The first element is 'h'")
********✅运行结果:

其中 ord() 函数用于将字符转换为相应的整数值。后期文章可能会有介绍。
注意事项:
Python是动态类型语言,意味着你不需要在声明变量时指定其类型。变量的类型是在运行时根据赋给它的值自动确定的。
字符串、字节串、列表、元组和字典都是可迭代对象,可以使用循环遍历它们的元素。
字符串和字节串是不可变的,而列表和字典是可变的。这意味着你可以修改列表和字典的内容,但不能修改字符串和字节串的内容(尽管你可以创建新的字符串或字节串来反映更改)。
4.4不同数据类型之间的计算
- 数字型之间可以直接计算
- 数字类型不能和字符串类型进行计算
- bool类型 True代表1 False代表0
******✅**示例代码:
# -*- coding:utf-8 -*-
# 1.先设置编码,utf-8可支持中英文,如上,一般放在第一行
# 2.注释:包括记录创建时间,创建人,项目名称。
'''
Created on 2025-06-16
@author: 北京-宏哥
北京宏哥(微信搜索:北京宏哥,关注宏哥,提前解锁更多测试干货!)
Project: Python零基础从入门到精通详细教程3-数据类型
'''
# 3.导入模块
i = 10
f = 10.5
b = True
print(i + f)
print(i + b)
print(f - b)
********✅运行结果:

4.5字符串之间的计算
- 字符串使用+号进行计算是拼接的意思 会生成新的字符串
- 字符串使用*号进行计算是重复拼接的意思 会生成新的字符串
******✅**示例代码:
# -*- coding:utf-8 -*-
# 1.先设置编码,utf-8可支持中英文,如上,一般放在第一行
# 2.注释:包括记录创建时间,创建人,项目名称。
'''
Created on 2025-06-16
@author: 北京-宏哥
北京宏哥(微信搜索:北京宏哥,关注宏哥,提前解锁更多测试干货!)
Project: Python零基础从入门到精通详细教程3-数据类型
'''
# 3.导入模块
first_name = "北京"
last_name = "宏哥"
print(first_name+last_name)
print("-" * 50)
print("+" * 50)
print("=" * 50)
********✅运行结果:

6.变量的输入
上一篇讲解了变量,但是没有讲解如何在键盘中输入变量,这里宏哥补充一下。
6.1input函数
input函数:获取用户在键盘上的输入使用 ,输入的任何内容都会被当做字符串
,回结果为字符串 str 类型
函数的定义:函数是把重复使用的代码提前写好,封装起来我们直接用的,不需要重复造轮子。
******✅**示例代码:
# -*- coding:utf-8 -*-
# 1.先设置编码,utf-8可支持中英文,如上,一般放在第一行
# 2.注释:包括记录创建时间,创建人,项目名称。
'''
Created on 2025-06-16
@author: 北京-宏哥
北京宏哥(微信搜索:北京宏哥,关注宏哥,提前解锁更多测试干货!)
Project: Python零基础从入门到精通详细教程3-数据类型
'''
# 3.导入模块
# input输人的任何内容都会被当做字符串 回结果为字符串 str 类型
name = input("请输入用户名:")
passwd = input("请输入密码:")
print(type(passwd))
********✅运行结果:

7.小结
数据类型是每种编程语言必备属性,只有给数据赋予明确的数据类型,计算机才能对数据进行处理运算,因此,正确使用数据类型是十分必要的,不同的语言,数据类型类似,但具体表示方法有所不同,以下是Python编程常用的数据类型:
- 数字类型
Python数字类型主要包括int(整型)、long(长整型)和float(浮点型),但是在Python3中就不再有long类型了。
int(整型)
既然是整型自然赋值时候的数据要是整数才行,整数简单理解为(正整数和负整数)
long(长整型)
Python长整型没有指定位宽,但是由于机器内存有限,使用长的长整数数值也不可能无限大。
float(浮点型)
浮点型也就是带有小数点的数。
complex(复数)
Python还支持复数,复数由实数部分和虚数部分构成,可以用 a + bj,或者 complex(a,b) 表示, 复数的实部 a 和虚部 b 都是浮点型。
- 字符串
在Python中,加了引号的字符都被认为是字符串,其声明有三种方式,分别是:单引号、双引号和三引号;Python中的字符串有两种数据类型,分别是str类型和unicode类型,str类型采用的ASCII编码,无法表示中文,unicode类型采用unicode编码,能够表示任意字符,包括中文和其他语言 ,一些情况下,选择其中一个会比另外一个更好,比如字符串本身就存在引号:。
- 布尔型
和其他编程语言一样,Python布尔类型也是用于逻辑运算,有两个值:True(真)和False(假)。
- 列表
列表是Python中使用最频繁的数据类型,集合中可以放任何数据类型,可对集合进行创建、查找、切片、增加、修改、删除、循环和排序操作。
- 元组
元组和列表一样,也是一种序列,与列表不同的是,元组是不可修改的,元组用"()"标识,内部元素用逗号隔开。
- 字典
字典是一种键值对的集合,是除列表以外Python之中最灵活的内置数据结构类型,列表是有序的对象集合,字典是无序的对象集合。
- 集合
集合是一个无序的、不重复的数据组合,它的主要作用有两个,分别是去重和关系测试。
以上是对Python的七种数据类型的简单介绍,具体使用方法,可以进行深入查找学习!
Python的数据类型是编程的基础,掌握它们的特性和使用方法能让你写出更高效、更健壮的代码。从基础的数字、字符串到复合的列表、字典,每种数据类型都有其独特的用途和优势。希望通过本文的讲解,你能对Python的数据类型有更深入的理解,并在实际编程中灵活运用。