段一璇 发表于 2025-11-6 11:10:11

入门到精通详细教程4-数据类型的转换- 上篇

1.简介

上一篇文章,我们讲了Python的基本数据类型,包括:(数值(Numbers)、字符串(String)、列表(List)、元组(Tuple)、字典(Dictionary)和集合(Set)。
这么多数据类型,数据类型转换就成了一种常见操作,也就是将一种数据类型转变为另一种。由于Python是一种动态类型语言,可以在程序运行时更改变量的类型。有时,我们可能希望将一个数据类型的变量视为另一种数据类型,例如,将数字作为字符串处理,或将复杂的数据结构如列表或字典用作其他类型的容器。这就是数据类型转换的重要性所在。
有时候,我们需要对数据内置的类型进行转换,数据类型的转换,一般情况下你只需要将数据类型作为函数名即可。在Python编程的领域里,数据类型转换是一项极为基础且频繁使用的操作。对各种数据类型间转换方法的熟练掌握,能显著提升代码的灵活性与实用性,使开发者得以更高效地处理多样化的数据需求。接下来,本文将对Python中常见的数据类型转换进行全面且深入的分享和讲解。
2.什么是数据类型转换

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

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

[*]隐式类型转换 - 自动完成
[*]显式类型转换 - 需要使用类型函数来转换
Python中的数据类型转换有两种,一种是自动类型转换,即Python在计算中会自动地将不同类型的数据转换为同类型数据来进行计算;另一种是强制类型转换,即需要我们基于不同的开发需求,强制地将一个数据类型转换为另一个数据类型。
3.1隐式类型转换(自动)

在隐式类型转换中,Python 会自动将一种数据类型转换为另一种数据类型,不需要我们去干预。
1.对两种不同类型的数据进行运算,较低数据类型(整数)就会转换为较高数据类型(浮点数)以避免数据丢失。当两个不同类型的数据进行运算时,结果会像更高精度进行计算,精度等级:布尔<整型<浮点型<算数。
✅示例代码:
# -*- coding:utf-8 -*- # 1.先设置编码,utf-8可支持中英文,如上,一般放在第一行 # 2.注释:包括记录创建时间,创建人,项目名称。 &#39;&#39;&#39; Created on 2025-06-06 @author: 北京-宏哥 北京宏哥(微信搜索:北京宏哥,关注宏哥,提前解锁更多测试干货!) Project: Python零基础从入门到精通详细教程3-数据类型 &#39;&#39;&#39; # 3.导入模块 &#39;&#39;&#39; 在和数字运算时,True转为1,False转为0 &#39;&#39;&#39; a=10 b=True print(a+b)
✅运行结果:

2.我们再看一个实例,整型数据与字符串类型的数据进行相加。
✅示例代码:
# -*- coding:utf-8 -*- # 1.先设置编码,utf-8可支持中英文,如上,一般放在第一行 # 2.注释:包括记录创建时间,创建人,项目名称。 &#39;&#39;&#39; Created on 2025-06-06 @author: 北京-宏哥 北京宏哥(微信搜索:北京宏哥,关注宏哥,提前解锁更多测试干货!) Project: Python零基础从入门到精通详细教程3-数据类型 &#39;&#39;&#39; # 3.导入模块 &#39;&#39;&#39; 在和数字运算时,True转为1,False转为0 &#39;&#39;&#39; 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其他类型 -> str

3.3.1int -> str

运用str()函数,可以将整数转换为字符串形式。在需要将数字与其他字符串进行拼接、输出格式化等场景中,这种转换十分常见。
✅示例代码:
# -*- coding:utf-8 -*- # 1.先设置编码,utf-8可支持中英文,如上,一般放在第一行 # 2.注释:包括记录创建时间,创建人,项目名称。 &#39;&#39;&#39; Created on 2025-06-03 @author: 北京-宏哥 北京宏哥(微信搜索:北京宏哥,关注宏哥,提前解锁更多测试干货!) Project: Python零基础从入门到精通详细教程3-数据类型 &#39;&#39;&#39; # 3.导入模块 a=123 print(a,type(a)) res=str(a) print(res,type(res))
✅运行结果:

3.3.2float -> str

运用str()函数,可以将浮点数转换为字符串形式。在需要将数字与其他字符串进行拼接、输出格式化等场景中,这种转换十分常见。float 转换 str 会去除末位为 0 的小数部分。
✅示例代码:
# -*- coding:utf-8 -*- # 1.先设置编码,utf-8可支持中英文,如上,一般放在第一行 # 2.注释:包括记录创建时间,创建人,项目名称。 &#39;&#39;&#39; Created on 2025-06-03 @author: 北京-宏哥 北京宏哥(微信搜索:北京宏哥,关注宏哥,提前解锁更多测试干货!) Project: Python零基础从入门到精通详细教程3-数据类型 &#39;&#39;&#39; # 3.导入模块 a=12.30 print(a,type(a)) res=str(a) print(res,type(res))
✅运行结果:

3.3.3bool -> str

运用str()函数,可以将布尔值转换为字符串形式。我们有时需要将布尔值(True 或 False)转换为字符串类型("True" 或 "False")。这在处理数据时很常见,特别是在需要将布尔值存储或展示给用户时。
✅示例代码:
# -*- coding:utf-8 -*- # 1.先设置编码,utf-8可支持中英文,如上,一般放在第一行 # 2.注释:包括记录创建时间,创建人,项目名称。 &#39;&#39;&#39; Created on 2025-06-03 @author: 北京-宏哥 北京宏哥(微信搜索:北京宏哥,关注宏哥,提前解锁更多测试干货!) Project: Python零基础从入门到精通详细教程3-数据类型 &#39;&#39;&#39; # 3.导入模块 a=True print(a,type(a)) res=str(a) print(res,type(res))
✅运行结果:

3.3.4complex -> str

运用str()函数,可以将复数转换为字符串形式。complex 转换 str,会先将值转化为标准的 complex 表达式,然后再转换为字符串。
✅示例代码:
# -*- coding:utf-8 -*- # 1.先设置编码,utf-8可支持中英文,如上,一般放在第一行 # 2.注释:包括记录创建时间,创建人,项目名称。 &#39;&#39;&#39; Created on 2025-06-03 @author: 北京-宏哥 北京宏哥(微信搜索:北京宏哥,关注宏哥,提前解锁更多测试干货!) Project: Python零基础从入门到精通详细教程3-数据类型 &#39;&#39;&#39; # 3.导入模块 a=3-91j print(a,type(a)) res=str(a) print(res,type(res)) b=complex(3,-91) print(b,type(b)) res=str(b) print(res,type(res))
✅运行结果:

3.3.5list -> str

运用str()函数,可以将列表转换为字符串形式。
✅示例代码:
# -*- coding:utf-8 -*- # 1.先设置编码,utf-8可支持中英文,如上,一般放在第一行 # 2.注释:包括记录创建时间,创建人,项目名称。 &#39;&#39;&#39; Created on 2025-06-06 @author: 北京-宏哥 北京宏哥(微信搜索:北京宏哥,关注宏哥,提前解锁更多测试干货!) Project: Python零基础从入门到精通详细教程3-数据类型 &#39;&#39;&#39; # 3.导入模块 a= print(a,type(a)) res=str(a) print(res,type(res))
✅运行结果:

3.3.6tuple -> str

运用str()函数,可以将元组转换为字符串形式。
✅示例代码:
# -*- coding:utf-8 -*- # 1.先设置编码,utf-8可支持中英文,如上,一般放在第一行 # 2.注释:包括记录创建时间,创建人,项目名称。 &#39;&#39;&#39; Created on 2025-06-06 @author: 北京-宏哥 北京宏哥(微信搜索:北京宏哥,关注宏哥,提前解锁更多测试干货!) Project: Python零基础从入门到精通详细教程3-数据类型 &#39;&#39;&#39; # 3.导入模块 a=(1, 2, 3) print(a,type(a)) res=str(a) print(res,type(res))
✅运行结果:

3.3.7dict -> str

运用str()函数,可以将字典转换为字符串形式。
✅示例代码:
# -*- coding:utf-8 -*- # 1.先设置编码,utf-8可支持中英文,如上,一般放在第一行 # 2.注释:包括记录创建时间,创建人,项目名称。 &#39;&#39;&#39; Created on 2025-06-06 @author: 北京-宏哥 北京宏哥(微信搜索:北京宏哥,关注宏哥,提前解锁更多测试干货!) Project: Python零基础从入门到精通详细教程3-数据类型 &#39;&#39;&#39; # 3.导入模块 a= {1: &#39;a&#39;, 2: &#39;b&#39;} print(a,type(a)) res=str(a) print(res,type(res))
✅运行结果:

3.3.8set -> str

运用str()函数,可以将集合转换为字符串形式。
✅示例代码:
# -*- coding:utf-8 -*- # 1.先设置编码,utf-8可支持中英文,如上,一般放在第一行 # 2.注释:包括记录创建时间,创建人,项目名称。 &#39;&#39;&#39; Created on 2025-06-06 @author: 北京-宏哥 北京宏哥(微信搜索:北京宏哥,关注宏哥,提前解锁更多测试干货!) Project: Python零基础从入门到精通详细教程3-数据类型 &#39;&#39;&#39; # 3.导入模块 a={1, 2, 3} print(a,type(a)) res=str(a) print(res,type(res))
✅运行结果:

3.4其他类型 -> 数字型(bool/float/int/complex)

3.4.1数字类型之间相互转换

1.int -> float/bool/complex

[*]int转换成float,会自动给添加一位小数。
[*]int转换成bool,0为False,其他为真。
[*]int转换成complex,会自动添加虚数部分并以0j表示。
✅示例代码:
# -*- coding:utf-8 -*- # 1.先设置编码,utf-8可支持中英文,如上,一般放在第一行 # 2.注释:包括记录创建时间,创建人,项目名称。 &#39;&#39;&#39; Created on 2025-06-06 @author: 北京-宏哥 北京宏哥(微信搜索:北京宏哥,关注宏哥,提前解锁更多测试干货!) Project: Python零基础从入门到精通详细教程3-数据类型 &#39;&#39;&#39; # 3.导入模块 a=123 print(a,type(a)) res1=float(a) res2=bool(a) res3=complex(a) print(res1,type(res1), "\n",res2,type(res2), "\n",res3,type(res3))
✅运行结果:

2.bool -> int/float/complex

[*]bool转换成int,True会转为1,False会转为0。
[*]bool转换成float,True会转为1.0,False会转为0.0。
[*]bool转换成complex,True实数部分会转为1,False实数部分会转为0,会自动添加虚数部分并以0j表示。
✅示例代码:
# -*- coding:utf-8 -*- # 1.先设置编码,utf-8可支持中英文,如上,一般放在第一行 # 2.注释:包括记录创建时间,创建人,项目名称。 &#39;&#39;&#39; Created on 2025-06-06 @author: 北京-宏哥 北京宏哥(微信搜索:北京宏哥,关注宏哥,提前解锁更多测试干货!) Project: Python零基础从入门到精通详细教程3-数据类型 &#39;&#39;&#39; # 3.导入模块 b=True print(b,type(b)) res1=int(b) res2=float(b) res3=complex(b) print(res1,type(res1), "\n",res2,type(res2), "\n",res3,type(res3))
✅运行结果:

3.float -> int/bool/complex

[*]float转换成int,会去掉小数点及后面的数值,仅保留整数部分。
[*]float转换成bool,0为False,其他为True。
[*]float转换成complex,会自动添加虚数部分并以0j表示。
✅示例代码:
# -*- coding:utf-8 -*- # 1.先设置编码,utf-8可支持中英文,如上,一般放在第一行 # 2.注释:包括记录创建时间,创建人,项目名称。 &#39;&#39;&#39; Created on 2025-06-06 @author: 北京-宏哥 北京宏哥(微信搜索:北京宏哥,关注宏哥,提前解锁更多测试干货!) Project: Python零基础从入门到精通详细教程3-数据类型 &#39;&#39;&#39; # 3.导入模块 c=1.23 print(c,type(c)) res1=int(c) res2=bool(c) res3=complex(c) print(res1,type(res1), "\n",res2,type(res2), "\n",res3,type(res3))
✅运行结果:

4.complex -> int/float/bool

[*]complex不能转换成int,会报错。
[*]complex不能转换成float,会报错。
[*]complex转换成bool,0为False,其他为True。
✅示例代码:
# -*- coding:utf-8 -*- # 1.先设置编码,utf-8可支持中英文,如上,一般放在第一行 # 2.注释:包括记录创建时间,创建人,项目名称。 &#39;&#39;&#39; Created on 2025-06-06 @author: 北京-宏哥 北京宏哥(微信搜索:北京宏哥,关注宏哥,提前解锁更多测试干货!) Project: Python零基础从入门到精通详细教程3-数据类型 &#39;&#39;&#39; # 3.导入模块 d=9-3j #res1=int(d) #报错 #res2=float(d) #报错 res3=bool(d) print(res3,type(res3))
✅运行结果:

3.4.2str-> 数字类型

1.str -> int
如果字符串中有数字(0-9)和正负号(+/-)以外的字符,就会报错。
✅示例代码:
# -*- coding:utf-8 -*- # 1.先设置编码,utf-8可支持中英文,如上,一般放在第一行 # 2.注释:包括记录创建时间,创建人,项目名称。 &#39;&#39;&#39; Created on 2025-06-06 @author: 北京-宏哥 北京宏哥(微信搜索:北京宏哥,关注宏哥,提前解锁更多测试干货!) Project: Python零基础从入门到精通详细教程3-数据类型 &#39;&#39;&#39; # 3.导入模块 #str a="123" print(a,type(a)) res=int(a) print(res,type(res))
✅运行结果:

2.str -> float
如果字符串含有正负号(+/-)、数字(0-9)和小数点(.)以外的字符,就会报错。
✅示例代码:
# -*- coding:utf-8 -*- # 1.先设置编码,utf-8可支持中英文,如上,一般放在第一行 # 2.注释:包括记录创建时间,创建人,项目名称。 &#39;&#39;&#39; Created on 2025-06-06 @author: 北京-宏哥 北京宏哥(微信搜索:北京宏哥,关注宏哥,提前解锁更多测试干货!) Project: Python零基础从入门到精通详细教程3-数据类型 &#39;&#39;&#39; # 3.导入模块 #str a="123" print(a,type(a)) res=float(a) print(res,type(res))
✅运行结果:

3.str -> bool
0为False,其他为True。
✅示例代码:
# -*- coding:utf-8 -*- # 1.先设置编码,utf-8可支持中英文,如上,一般放在第一行 # 2.注释:包括记录创建时间,创建人,项目名称。 &#39;&#39;&#39; Created on 2025-06-06 @author: 北京-宏哥 北京宏哥(微信搜索:北京宏哥,关注宏哥,提前解锁更多测试干货!) Project: Python零基础从入门到精通详细教程3-数据类型 &#39;&#39;&#39; # 3.导入模块 #str a="123" print(a,type(a)) res=bool(a) print(res,type(res))
✅运行结果:

4.str -> complex
str转换成complex,如果能转换成int或float,则会转换后再转为complex.
如果str完全符合complex表达式规则,也可以转换成complex类型值。
✅示例代码:
# -*- coding:utf-8 -*- # 1.先设置编码,utf-8可支持中英文,如上,一般放在第一行 # 2.注释:包括记录创建时间,创建人,项目名称。 &#39;&#39;&#39; Created on 2025-06-06 @author: 北京-宏哥 北京宏哥(微信搜索:北京宏哥,关注宏哥,提前解锁更多测试干货!) Project: Python零基础从入门到精通详细教程3-数据类型 &#39;&#39;&#39; # 3.导入模块 a="123" res=complex(a) print(res,type(res)) #(123+0j)a="1.23" res=complex(a) print(res,type(res)) #(1.23+0j)a="123.0" res=complex(a) print(res,type(res)) #(123+0j) ,去掉小数部分 a="12+3j" res=complex(a) print(res,type(res)) #(12+3j)a="12.0+3.0j" res=complex(a) print(res,type(res)) #(12+3j) ,去掉小数部分 a="12.0+3.9j" res=complex(a) print(res,type(res)) #(12+3.9j)
✅运行结果:

4.小结

1.所有类型都可以转化成str类型。
2.数字型之间可以相互转换,但complex不支持转换成float、int。
3.只有str字符串类型可以转换为数字型,并且字符串的元素必须为纯数字,如果字符串中有数字(0-9)和正负号(+/-)以外的字符,就会报错。
4.大家只需要记住:
隐式转换是在表达式运算中由Python自动进行的,而显式转换则是通过函数调用明确指定的。希望这篇文章能帮助你更好地理解Python中的数据类型转换。好了,时间不早了今天就分享到这里,感谢你耐心地阅读!
公众号(关注宏哥)                      微信群(扫码进群)                             客服微信


来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

艾晓梅 发表于 2025-11-29 06:05:30

很好很强大我过来先占个楼 待编辑

墨佳美 发表于 2025-11-29 19:02:37

热心回复!

蟠鲤 发表于 前天 23:21

谢谢楼主提供!
页: [1]
查看完整版本: 入门到精通详细教程4-数据类型的转换- 上篇