一文详解Python基础数据类型

 更新时间:2026年06月14日 14:34:30   作者:聆风吟_  
Python 内置了一套完整的基础数据类型,不用额外安装模块就能直接使用,本文做全局梳理、分类对比,搭建完整知识框架,后续会针对每一种类型单独拆解语法、常用方法、踩坑细节与实战用法,需要的朋友可以参考下

前言

回顾前文变量、常量、表达式知识点,变量只是存放数据的 “标签”,而存入的数据拥有各自的格式、运算规则和存储特性,这就是数据类型

Python 内置了一套完整的基础数据类型,不用额外安装模块就能直接使用。本文做全局梳理、分类对比,搭建完整知识框架,后续会针对每一种类型单独拆解语法、常用方法、踩坑细节与实战用法。

一、查看数据类型

1.1 type():精准查看数据类型

使用内置函数 type() 查看任意变量 / 字面量的数据类型。

num = 18

print(type(num))  # <class 'int'>

1.2 isinstance():判断是否属于某类类型

使用内置函数 isinstance(待判断对象, 类型) 判断某个变量 ,是不是指定类型,返回 True / False

num = 10
print(isinstance(num, int))    # True
print(isinstance(num, str))    # False

s = "python"
print(isinstance(s, str))      # True

二、标准数据类型

Python 基础数据类型按 是否可变 可分为两大类:

(1)不可变类型

值无法原地修改,修改操作会生成全新对象,包括:Number(数字)String(字符串)Tuple(元组)

# 1. int整数
a = 10
print(id(a))
a = a + 5      # 看似修改,实际新建对象
print(id(a))   # 地址不一样

# 2. 字符串str
s = "hello"
print(id(s))
s += "world"
print(id(s))    # 地址改变

# 3. 元组tuple
t = (1, 2, 3)
print(id(t))
t = t + (4)
print(id(t))    # 地址改变

小贴士:id() 函数返回对象在内存中的唯一地址数字。

(2)可变类型

值可以原地修改,修改后内存地址不变,包括:List(列表)Dictionary(字典)Set(集合)

# 1.列表
lst = [1,2,3]
print(id(lst))
lst.append(4)   # 原地追加元素
lst[0] = 99     # 索引修改元素
print(id(lst))  # 地址完全不变

# 2.字典
d = {"name":"小明"}
print(id(d))
d["age"] = 18
print(id(d))    # 地址不变

# 3.集合
s = {1,2,3}
print(id(s))
s.add(4)
print(id(s))    # 地址不变

三、数字类型(Number)

数字类型细分 3 种子类型,专门用于数学计算:

3.1 int 整数

核心特点:

  • 可以存储 正负整数 和 0
  • Python3 无长整型限制
a = 10
b = -66
c = 0
d = 9999999999999999999999999999
print(type(a))  # 输出:<class 'int'>

小贴士: Python 的 int 类型变量, 表示的数据范围是没有上限的. 只要内存足够大, 理论上就可以表示无限大小的数据.

3.2 float 浮点数

核心特点:

  • 表示带小数的数字,支持科学计数法;
  • 采用双精度存储;
  • 存在精度损耗,不适合高精度金额计算
f1 = 3.14
f2 = -0.618
f3 = 5e3   # 5*10^3 = 5000.0
print(type(f1)) # 输出:<class 'float'>

3.3 bool 布尔类型

核心特点:

  • 只有两个值:TrueFalse
  • 本质是特殊整数(int 子类),True = 1False = 0
  • TrueFalse首字母切记要大写
# 取值只有两种:True 和 False
flag1 = True
flag2 = False

# True = 1,False = 0
print(True + 5)                 # 6

# 本质是 int 子类
print(isinstance(True, int))    # True

print(type(flag1))              # <class 'bool'>

四、字符串(string)

使用 单引号''、双引号""、三引号"""""" 包裹的文本内容,称为字符串

核心特点:

  • 不可变,不能单独修改某一个字符,s[0]='x' 直接报错
  • 支持拼接、切片、长度获取等操作
  • 用来存储文字、符号、中文等文本信息
# 单引号
s1 = 'hello'

# 双引号(可直接嵌套单引号,避免转义)
s2 = "I'm Python"

# 三引号:多行字符串(支持换行,常用于多行文本、文档注释)
s3 = """第一行
第二行"""

# 原始字符串(r 前缀,取消转义字符)
s4 = r'C:\Users\name'  # \ 不会被识别为转义符

print(type(s1))  # 输出:<class 'str'>

五、列表(List)

列表是有序可变的元素序列,是 Python 最灵活、最常用的通用容器

核心特点:

  • 使用 方括号[] 定义
  • 可存放任意类型数据
  • 支持任意类型元素增、删、改、查
lst = [10, "张三", 3.14]
lst[0] = 99       # 修改元素,合法
print(type(lst))  # 输出:<class 'list'>

六、元组(Tuple)

元组是有序不可变的元素序列,可以理解为只读版本的列表。

核心特点:

  • 使用 圆括号() 定义
  • 元素一旦定义不能修改,安全性更高
t = (1, 2, "abc")
# t[0] = 5  报错,不允许修改
print(type(t))  # 输出:<class 'tuple'>

七、字典(Dictionary)

字典是键值对({key:value})映射类型,是 Python 查询效率最高的容器。

  • 使用 大括号{key:value} 定义
  • key:必须不可变类型(int/str/tuple),唯一不重复
  • value:任意数据类型
dic = {"name":"李四", "age":22, "score":[90,88]}
# 取值
print(dic["name"])
print(type(user))  # 输出:<class 'dict'>

八、集合(Set)

集合是无序不重复的元素容器,底层基于哈希表实现。

  • 使用 大括号{元素} 定义
  • 元素唯一,自动去重
  • 常用作去重、交集并集运算
s = {1,2,2,3,3,3}
print(s)       # {1, 2, 3} 自动去重
print(type(s)) # 输出:<class 'set'>

全文总结

本文主要讲解:

  1. type() 查看类型、isinstance() 判断是否属于某类类型;
  2. Python 基础类型分为数字、字符串、元组、列表、字典、集合;
  3. 可变 / 不可变是选类型关键依据,修改频繁优先列表,数据固定优先元组;

以上就是一文详解Python基础数据类型的详细内容,更多关于Python基础数据类型详解的资料请关注脚本之家其它相关文章!

相关文章

  • Python @property装饰器全解析

    Python @property装饰器全解析

    在Python中,@property 是一个非常常用、也很优雅的装饰器,用来把“方法”伪装成“属性”,这篇文章主要介绍了Python @property装饰器介绍,需要的朋友可以参考下
    2026-02-02
  • 解决Pycharm输入法无法切换中英文问题

    解决Pycharm输入法无法切换中英文问题

    这篇文章主要介绍了解决Pycharm输入法无法切换中英文问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11
  • 3分钟学会一个Python小技巧

    3分钟学会一个Python小技巧

    Python时间日期转换在开发中是非常高频的一个操作,你经常会遇到需要将字符串转换成 datetime 或者是反过来将 datetime 转换成字符串,今天小编给大家带来了一个Python小技巧,感兴趣的朋友一起看看吧
    2018-11-11
  • Python3.5面向对象程序设计之类的继承和多态详解

    Python3.5面向对象程序设计之类的继承和多态详解

    这篇文章主要介绍了Python3.5面向对象程序设计之类的继承和多态,结合实例形式详细分析了Python3.5面向对象程序设计中类的继承与多态常见用法及相关注意事项,需要的朋友可以参考下
    2019-04-04
  • Pandas中inf值替换的方法

    Pandas中inf值替换的方法

    本文主要介绍了Pandas中inf值替换的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-08-08
  • 手把手教你YOLOv5如何进行区域目标检测

    手把手教你YOLOv5如何进行区域目标检测

    YOLOV5和YOLOV4有很多相同的地方,最大的改变还是基础架构的变化,下面这篇文章主要给大家介绍了关于YOLOv5如何进行区域目标检测的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2022-12-12
  • Pytorch在NLP中的简单应用详解

    Pytorch在NLP中的简单应用详解

    今天小编就为大家分享一篇Pytorch在NLP中的简单应用详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-01-01
  • Python UnboundLocalError和NameError错误根源案例解析

    Python UnboundLocalError和NameError错误根源案例解析

    这篇文章主要介绍了Python UnboundLocalError和NameError错误根源解析,本文通过案例分析实例代码相结合的形式给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-10-10
  • Python with的用法

    Python with的用法

    with 语句是从 Python 2.5 开始引入的一种与异常处理相关的功能。with 语句适用于对资源进行访问的场合,确保不管使用过程中是否发生异常都会执行必要的“清理”操作,释放资源,比如文件使用后自动关闭、线程中锁的自动获取和释放等。
    2014-08-08
  • pyqt5 实现多窗口跳转的方法

    pyqt5 实现多窗口跳转的方法

    今天小编就为大家分享一篇pyqt5 实现多窗口跳转的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-06-06

最新评论