找回密码
 立即注册
首页 业界区 业界 入门到精通详细教程4-数据类型的转换- 上篇 ...

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

段一璇 4 天前
1.简介

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

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

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

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

在隐式类型转换中,Python 会自动将一种数据类型转换为另一种数据类型,不需要我们去干预。
1.对两种不同类型的数据进行运算,较低数据类型(整数)就会转换为较高数据类型(浮点数)以避免数据丢失。当两个不同类型的数据进行运算时,结果会像更高精度进行计算,精度等级:布尔<整型<浮点型<算数。
✅示例代码:
  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)
复制代码
✅运行结果:
1.png

2.我们再看一个实例,整型数据与字符串类型的数据进行相加。
✅示例代码:
  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; num_int = 123 num_str = "北京-宏哥" print("num_int 数据类型为:",type(num_int)) print("num_str 数据类型为:",type(num_str)) print(num_int+num_str)
复制代码
✅运行结果:
2.png

从输出中可以看出,整型和字符串类型运算结果会报错,输出 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()函数,可以将整数转换为字符串形式。在需要将数字与其他字符串进行拼接、输出格式化等场景中,这种转换十分常见。
✅示例代码:
  1. # -*- 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.png

3.3.2float -> str

运用str()函数,可以将浮点数转换为字符串形式。在需要将数字与其他字符串进行拼接、输出格式化等场景中,这种转换十分常见。float 转换 str 会去除末位为 0 的小数部分。
✅示例代码:
  1. # -*- 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))
复制代码
✅运行结果:
4.png

3.3.3bool -> str

运用str()函数,可以将布尔值转换为字符串形式。我们有时需要将布尔值(True 或 False)转换为字符串类型("True" 或 "False")。这在处理数据时很常见,特别是在需要将布尔值存储或展示给用户时。
✅示例代码:
  1. # -*- 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))
复制代码
✅运行结果:
5.png

3.3.4complex -> str

运用str()函数,可以将复数转换为字符串形式。complex 转换 str,会先将值转化为标准的 complex 表达式,然后再转换为字符串。
✅示例代码:
  1. # -*- 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))
复制代码
✅运行结果:
6.png

3.3.5list -> str

运用str()函数,可以将列表转换为字符串形式。
✅示例代码:
  1. # -*- 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))
复制代码
✅运行结果:
7.png

3.3.6tuple -> str

运用str()函数,可以将元组转换为字符串形式。
✅示例代码:
  1. # -*- 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))
复制代码
✅运行结果:
8.png

3.3.7dict -> str

运用str()函数,可以将字典转换为字符串形式。
✅示例代码:
  1. # -*- 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))
复制代码
✅运行结果:
9.png

3.3.8set -> str

运用str()函数,可以将集合转换为字符串形式。
✅示例代码:
  1. # -*- 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))
复制代码
✅运行结果:
10.png

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

3.4.1数字类型之间相互转换

1.int -> float/bool/complex

  • int转换成float,会自动给添加一位小数。
  • int转换成bool,0为False,其他为真。
  • int转换成complex,会自动添加虚数部分并以0j表示。
✅示例代码:
  1. # -*- 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))
复制代码
✅运行结果:
11.png

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表示。
✅示例代码:
  1. # -*- 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))
复制代码
✅运行结果:
12.png

3.float -> int/bool/complex

  • float转换成int,会去掉小数点及后面的数值,仅保留整数部分。
  • float转换成bool,0为False,其他为True。
  • float转换成complex,会自动添加虚数部分并以0j表示。
✅示例代码:
  1. # -*- 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))
复制代码
✅运行结果:
13.png

4.complex -> int/float/bool

  • complex不能转换成int,会报错。
  • complex不能转换成float,会报错。
  • complex转换成bool,0为False,其他为True。
✅示例代码:
  1. # -*- 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))
复制代码
✅运行结果:
14.png

3.4.2str-> 数字类型

1.str -> int
如果字符串中有数字(0-9)和正负号(+/-)以外的字符,就会报错。
✅示例代码:
  1. # -*- 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))
复制代码
✅运行结果:
15.png

2.str -> float
如果字符串含有正负号(+/-)、数字(0-9)和小数点(.)以外的字符,就会报错。
✅示例代码:
  1. # -*- 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))
复制代码
✅运行结果:
16.png

3.str -> bool
0为False,其他为True。
✅示例代码:
  1. # -*- 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))
复制代码
✅运行结果:
17.png

4.str -> complex
str转换成complex,如果能转换成int或float,则会转换后再转为complex.
如果str完全符合complex表达式规则,也可以转换成complex类型值。
✅示例代码:
  1. # -*- 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)
复制代码
✅运行结果:
18.png

4.小结

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


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

相关推荐

您需要登录后才可以回帖 登录 | 立即注册