🔥Python零基础从入门到精通详细教程5-数据类型的转换- 中篇

1.简介

上一篇文章,我们讲了Python的基本数据类型,包括:(数值(Numbers)、字符串(String)、列表(List)、元组(Tuple)、字典(Dictionary)和集合(Set)。

这么多数据类型,数据类型转换就成了一种常见操作,也就是将一种数据类型转变为另一种。由于Python是一种动态类型语言,可以在程序运行时更改变量的类型。有时,我们可能希望将一个数据类型的变量视为另一种数据类型,例如,将数字作为字符串处理,或将复杂的数据结构如列表或字典用作其他类型的容器。这就是数据类型转换的重要性所在。

有时候,我们需要对数据内置的类型进行转换,数据类型的转换,一般情况下你只需要将数据类型作为函数名即可。在Python编程的领域里,数据类型转换是一项极为基础且频繁使用的操作。对各种数据类型间转换方法的熟练掌握,能显著提升代码的灵活性与实用性,使开发者得以更高效地处理多样化的数据需求。接下来,本文将对Python中常见的数据类型转换进行全面且深入的分享和讲解。

2.什么是数据类型转换

数据类型转换(也称为类型强制转换或类型铸造)是指将一种数据类型的对象转换为另一种数据类型的过程。Python 提供了多种内置函数和方法来实现类型转换,以支持灵活的数据操作。类型转换在处理不同类型的数据(如用户输入、文件读取、数据处理等)时非常常见。

3.数据类型转换分类

Python 数据类型转换可以分为两种:

  • 隐式类型转换 - 自动完成
  • 显式类型转换 - 需要使用类型函数来转换

Python中的数据类型转换有两种,一种是自动类型转换,即Python在计算中会自动地将不同类型的数据转换为同类型数据来进行计算;另一种是强制类型转换,即需要我们基于不同的开发需求,强制地将一个数据类型转换为另一个数据类型。

3.1隐式类型转换(自动)

在隐式类型转换中,Python 会自动将一种数据类型转换为另一种数据类型,不需要我们去干预。

1.对两种不同类型的数据进行运算,较低数据类型(整数)就会转换为较高数据类型(浮点数)以避免数据丢失。当两个不同类型的数据进行运算时,结果会像更高精度进行计算,精度等级:布尔<整型<浮点型<算数。

✅示例代码:

python 复制代码
# -*- coding:utf-8 -*-

# 1.先设置编码,utf-8可支持中英文,如上,一般放在第一行

# 2.注释:包括记录创建时间,创建人,项目名称。
'''
Created on 2025-06-16
@author: 北京-宏哥
北京宏哥(微信搜索:北京宏哥,关注宏哥,提前解锁更多测试干货!)
Project: Python零基础从入门到精通详细教程5-数据类型的转换- 中篇
'''

# 3.导入模块
'''
在和数字运算时,True转为1,False转为0
'''
a=10
b=True
print(a+b)

✅ 运行结果:

2.我们再看一个实例,整型数据与字符串类型的数据进行相加。

✅示例代码:

python 复制代码
# -*- coding:utf-8 -*-

# 1.先设置编码,utf-8可支持中英文,如上,一般放在第一行

# 2.注释:包括记录创建时间,创建人,项目名称。
'''
Created on 2025-06-16
@author: 北京-宏哥
北京宏哥(微信搜索:北京宏哥,关注宏哥,提前解锁更多测试干货!)
Project: Python零基础从入门到精通详细教程5-数据类型的转换- 中篇
'''

# 3.导入模块
'''
在和数字运算时,True转为1,False转为0
'''
num_int = 123
num_str = "北京-宏哥"
print("num_int 数据类型为:",type(num_int))
print("num_str 数据类型为:",type(num_str))
print(num_int+num_str)

✅ 运行结果:

从输出中可以看出,整型和字符串类型运算结果会报错,输出 TypeError。 Python 在这种情况下无法使用隐式转换。

但是,Python 为这些类型的情况提供了一种解决方案,称为显式转换。

3.2显式类型转换(强制)

在显式类型转换中,用户将对象的数据类型转换为所需的数据类型。 我们使用 int()、float()、str() 等预定义函数来执行显式类型转换。

3.2.1强制类型转换函数

函数 说明
str( ) 可以把其他类型数据转化为字符串类型
int( ) 可以把其他类型数据转化为整型
float( ) 可以把其他类型数据转化为浮点型
bool( ) 可以把其他类型数据转化为布尔类型
list( ) 可以把其他类型数据转化为列表类型
tuple( ) 可以把其他类型数据转化为元组类型
dict( ) 可以把其他类型数据转化为字典类型
set( ) 可以把其他类型数据转化为集合类型

3.2.2内置转换函数

函数 描述
int(x [,base]) 将x转换为一个整数
float(x) 将x转换到一个浮点数
complex(real [,imag]) 创建一个复数
str(x) 将对象 x 转换为字符串
repr(x) 将对象 x 转换为表达式字符串
eval(str) 用来计算在字符串中的有效Python表达式,并返回一个对象
tuple(s) 将序列 s 转换为一个元组
list(s) 将序列 s 转换为一个列表
set(s) 转换为可变集合
dict(d) 创建一个字典。d 必须是一个 (key, value)元组序列。
frozenset(s) 转换为不可变集合
chr(x) 将一个整数转换为一个字符
ord(x) 将一个字符转换为它的整数值
hex(x) 将一个整数转换为一个十六进制字符串
oct(x) 将一个整数转换为一个八进制字符串

3.3其他类型 -> list

3.3.1str -> list

字符串转为列表时,会把字符串中的每一个字符当作列表的元素。

✅ 示例代码:

ini 复制代码
# -*- coding:utf-8 -*-

# 1.先设置编码,utf-8可支持中英文,如上,一般放在第一行

# 2.注释:包括记录创建时间,创建人,项目名称。
'''
Created on 2025-06-16
@author: 北京-宏哥
北京宏哥(微信搜索:北京宏哥,关注宏哥,提前解锁更多测试干货!)
Project: Python零基础从入门到精通详细教程5-数据类型的转换- 中篇

# 3.导入模块
a='123bcd'
print(a,type(a))
res=list(a)
print(res, type(res))

✅运行结果:

3.3.2tuple-> list

元组转为列表时,会把字符串中的每一个字符当作列表的元素。

✅示例代码:

python 复制代码
# -*- coding:utf-8 -*-

# 1.先设置编码,utf-8可支持中英文,如上,一般放在第一行

# 2.注释:包括记录创建时间,创建人,项目名称。
'''
Created on 2025-06-16
@author: 北京-宏哥
北京宏哥(微信搜索:北京宏哥,关注宏哥,提前解锁更多测试干货!)
Project: Python零基础从入门到精通详细教程5-数据类型的转换- 中篇
'''

# 3.导入模块
a=(1,2,3)
print(a,type(a))
res=list(a)
print(res, type(res))

✅运行结果:

3.3.3dict -> list

字典转为列表时,只保留字典的键。

✅示例代码:

python 复制代码
# -*- coding:utf-8 -*-

# 1.先设置编码,utf-8可支持中英文,如上,一般放在第一行

# 2.注释:包括记录创建时间,创建人,项目名称。
'''
Created on 2025-06-16
@author: 北京-宏哥
北京宏哥(微信搜索:北京宏哥,关注宏哥,提前解锁更多测试干货!)
Project: Python零基础从入门到精通详细教程5-数据类型的转换- 中篇
'''

# 3.导入模块
a={'name': 'Alice', 'Age': 5, 'Sex': 'Female'}
print(a,type(a))
res=list(a)
print(res, type(res))

✅运行结果:

3.3.4set-> list

集合转为列表时,结果是无序的。

✅示例代码:

python 复制代码
# -*- coding:utf-8 -*-

# 1.先设置编码,utf-8可支持中英文,如上,一般放在第一行

# 2.注释:包括记录创建时间,创建人,项目名称。
'''
Created on 2025-06-16
@author: 北京-宏哥
北京宏哥(微信搜索:北京宏哥,关注宏哥,提前解锁更多测试干货!)
Project: Python零基础从入门到精通详细教程5-数据类型的转换- 中篇
'''

# 3.导入模块
a={1,2,3,'b','c','d'}
print(a,type(a))
res=list(a)
print(res, type(res))

✅运行结果:

3.4其他类型 -> tuple

3.4.1str -> tuple

字符串转为元组时,会把字符串中的每一个字符当作元组的元素。

✅示例代码:

python 复制代码
# -*- coding:utf-8 -*-

# 1.先设置编码,utf-8可支持中英文,如上,一般放在第一行

# 2.注释:包括记录创建时间,创建人,项目名称。
'''
Created on 2025-06-16
@author: 北京-宏哥
北京宏哥(微信搜索:北京宏哥,关注宏哥,提前解锁更多测试干货!)
Project: Python零基础从入门到精通详细教程5-数据类型的转换- 中篇
'''

# 3.导入模块
a='123bcd'
print(a,type(a))
res=tuple(a)
print(res, type(res))

✅运行结果:

3.4.2list -> tuple

列表转为元组时,会把字符串中的每一个字符当作元组的元素。

✅示例代码:

python 复制代码
# -*- coding:utf-8 -*-

# 1.先设置编码,utf-8可支持中英文,如上,一般放在第一行

# 2.注释:包括记录创建时间,创建人,项目名称。
'''
Created on 2025-06-16
@author: 北京-宏哥
北京宏哥(微信搜索:北京宏哥,关注宏哥,提前解锁更多测试干货!)
Project: Python零基础从入门到精通详细教程5-数据类型的转换- 中篇
'''

# 3.导入模块
a=[1,2,3]
print(a,type(a))
res=tuple(a)
print(res, type(res))

✅运行结果:

3.4.3dict -> tuple

字典转为元组时,只保留字典的键。

✅ 示例代码:

python 复制代码
# -*- coding:utf-8 -*-

# 1.先设置编码,utf-8可支持中英文,如上,一般放在第一行

# 2.注释:包括记录创建时间,创建人,项目名称。
'''
Created on 2025-06-16
@author: 北京-宏哥
北京宏哥(微信搜索:北京宏哥,关注宏哥,提前解锁更多测试干货!)
Project: Python零基础从入门到精通详细教程5-数据类型的转换- 中篇
'''

# 3.导入模块
a = {'name': 'Alice', 'Age': 5, 'Sex': 'Female'}
print(a,type(a))
res=tuple(a)
print(res, type(res))

✅运行结果:

3.4.4set -> tuple

集合转为元组时,结果是无序的。

✅示例代码:

python 复制代码
# -*- coding:utf-8 -*-

# 1.先设置编码,utf-8可支持中英文,如上,一般放在第一行

# 2.注释:包括记录创建时间,创建人,项目名称。
'''
Created on 2025-06-16
@author: 北京-宏哥
北京宏哥(微信搜索:北京宏哥,关注宏哥,提前解锁更多测试干货!)
Project: Python零基础从入门到精通详细教程5-数据类型的转换- 中篇
'''

# 3.导入模块
a={1,2,3,'b','c','d'}
print(a,type(a))
res=tuple(a)
print(res, type(res))

✅运行结果:

4.小结

4.1总结(其他类型->list)

  • 数字类型不能转换成为列表
  • 字符串转为列表时,会把字符串中的每一个字符当作列表的元素。
  • 元组转为列表时,会把字符串中的每一个字符当作列表的元素。
  • 字典转为列表时,只保留字典的键。
  • 集合转为列表时,结果是无序的,因为集合本身就是无序的。

4.2总结(其他类型->tuple)

  • 数字类型不能转换成为元组。
  • 字符串转为元组时,会把字符串中的每一个字符当作元组的元素。
  • 列表转为元组时,会把字符串中的每一个字符当作元组的元素。
  • 字典转为元组时,只保留字典的键。
  • 集合转为元组时,结果是无序的,因为集合本身就是无序的。

希望这篇文章能帮助你更好地理解Python中的数据类型转换。好了,时间不早了今天就分享到这里,感谢你耐心地阅读!

相关推荐
程序员爱钓鱼36 分钟前
Python编程实战 · 基础入门篇 | Python的缩进与代码块
后端·python
pr_note2 小时前
python|if判断语法对比
python
liangshanbo12153 小时前
写好 React useEffect 的终极指南
前端·javascript·react.js
apocelipes4 小时前
golang unique包和字符串内部化
java·python·性能优化·golang
Geoking.5 小时前
NumPy zeros() 函数详解
python·numpy
Full Stack Developme5 小时前
java.text 包详解
java·开发语言·python
哆啦A梦15885 小时前
搜索页面布局
前端·vue.js·node.js
_院长大人_5 小时前
el-table-column show-overflow-tooltip 只能显示纯文本,无法渲染 <p> 标签
前端·javascript·vue.js
丁浩6666 小时前
Python机器学习---2.算法:逻辑回归
python·算法·机器学习
B站_计算机毕业设计之家6 小时前
计算机毕业设计:Python农业数据可视化分析系统 气象数据 农业生产 粮食数据 播种数据 爬虫 Django框架 天气数据 降水量(源码+文档)✅
大数据·爬虫·python·机器学习·信息可视化·课程设计·农业