Python零基础从入门到精通详细教程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.注释:包括记录创建时间,创建人,项目名称。
'''
Created on 2025-06-06
@author: 北京-宏哥
北京宏哥(微信搜索:北京宏哥,关注宏哥,提前解锁更多测试干货!)
Project: Python零基础从入门到精通详细教程3-数据类型
''' # 3.导入模块
'''
在和数字运算时,True转为1,False转为0
'''
a=10
b=True
print(a+b)
运行结果:

2.我们再看一个实例,整型数据与字符串类型的数据进行相加。
示例代码:
# -*- coding:utf-8 -*- # 1.先设置编码,utf-8可支持中英文,如上,一般放在第一行 # 2.注释:包括记录创建时间,创建人,项目名称。
'''
Created on 2025-06-06
@author: 北京-宏哥
北京宏哥(微信搜索:北京宏哥,关注宏哥,提前解锁更多测试干货!)
Project: Python零基础从入门到精通详细教程3-数据类型
''' # 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内置转换函数
| 函数 | 描述 |
|---|---|
|
将x转换为一个整数 |
|
|
将x转换到一个浮点数 |
|
|
创建一个复数 |
|
|
将对象 x 转换为字符串 |
|
|
将对象 x 转换为表达式字符串 |
|
|
用来计算在字符串中的有效Python表达式,并返回一个对象 |
|
|
将序列 s 转换为一个元组 |
|
|
将序列 s 转换为一个列表 |
|
|
转换为可变集合 |
|
|
创建一个字典。d 必须是一个 (key, value)元组序列。 |
|
|
转换为不可变集合 |
|
|
将一个整数转换为一个字符 |
|
|
将一个字符转换为它的整数值 |
|
|
将一个整数转换为一个十六进制字符串 |
|
|
将一个整数转换为一个八进制字符串 |
3.3其他类型 -> str
3.3.1int -> str
运用str()函数,可以将整数转换为字符串形式。在需要将数字与其他字符串进行拼接、输出格式化等场景中,这种转换十分常见。
示例代码:
# -*- coding:utf-8 -*- # 1.先设置编码,utf-8可支持中英文,如上,一般放在第一行 # 2.注释:包括记录创建时间,创建人,项目名称。
'''
Created on 2025-06-03
@author: 北京-宏哥
北京宏哥(微信搜索:北京宏哥,关注宏哥,提前解锁更多测试干货!)
Project: Python零基础从入门到精通详细教程3-数据类型
''' # 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.注释:包括记录创建时间,创建人,项目名称。
'''
Created on 2025-06-03
@author: 北京-宏哥
北京宏哥(微信搜索:北京宏哥,关注宏哥,提前解锁更多测试干货!)
Project: Python零基础从入门到精通详细教程3-数据类型
''' # 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.注释:包括记录创建时间,创建人,项目名称。
'''
Created on 2025-06-03
@author: 北京-宏哥
北京宏哥(微信搜索:北京宏哥,关注宏哥,提前解锁更多测试干货!)
Project: Python零基础从入门到精通详细教程3-数据类型
''' # 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.注释:包括记录创建时间,创建人,项目名称。
'''
Created on 2025-06-03
@author: 北京-宏哥
北京宏哥(微信搜索:北京宏哥,关注宏哥,提前解锁更多测试干货!)
Project: Python零基础从入门到精通详细教程3-数据类型
''' # 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.注释:包括记录创建时间,创建人,项目名称。
'''
Created on 2025-06-06
@author: 北京-宏哥
北京宏哥(微信搜索:北京宏哥,关注宏哥,提前解锁更多测试干货!)
Project: Python零基础从入门到精通详细教程3-数据类型
''' # 3.导入模块
a=[1, 2, 3]
print(a,type(a))
res=str(a)
print(res,type(res))
运行结果:

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

3.3.8set -> str
运用str()函数,可以将集合转换为字符串形式。
示例代码:
# -*- coding:utf-8 -*- # 1.先设置编码,utf-8可支持中英文,如上,一般放在第一行 # 2.注释:包括记录创建时间,创建人,项目名称。
'''
Created on 2025-06-06
@author: 北京-宏哥
北京宏哥(微信搜索:北京宏哥,关注宏哥,提前解锁更多测试干货!)
Project: Python零基础从入门到精通详细教程3-数据类型
''' # 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.注释:包括记录创建时间,创建人,项目名称。
'''
Created on 2025-06-06
@author: 北京-宏哥
北京宏哥(微信搜索:北京宏哥,关注宏哥,提前解锁更多测试干货!)
Project: Python零基础从入门到精通详细教程3-数据类型
''' # 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.注释:包括记录创建时间,创建人,项目名称。
'''
Created on 2025-06-06
@author: 北京-宏哥
北京宏哥(微信搜索:北京宏哥,关注宏哥,提前解锁更多测试干货!)
Project: Python零基础从入门到精通详细教程3-数据类型
''' # 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.注释:包括记录创建时间,创建人,项目名称。
'''
Created on 2025-06-06
@author: 北京-宏哥
北京宏哥(微信搜索:北京宏哥,关注宏哥,提前解锁更多测试干货!)
Project: Python零基础从入门到精通详细教程3-数据类型
''' # 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.注释:包括记录创建时间,创建人,项目名称。
'''
Created on 2025-06-06
@author: 北京-宏哥
北京宏哥(微信搜索:北京宏哥,关注宏哥,提前解锁更多测试干货!)
Project: Python零基础从入门到精通详细教程3-数据类型
''' # 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.注释:包括记录创建时间,创建人,项目名称。
'''
Created on 2025-06-06
@author: 北京-宏哥
北京宏哥(微信搜索:北京宏哥,关注宏哥,提前解锁更多测试干货!)
Project: Python零基础从入门到精通详细教程3-数据类型
''' # 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.注释:包括记录创建时间,创建人,项目名称。
'''
Created on 2025-06-06
@author: 北京-宏哥
北京宏哥(微信搜索:北京宏哥,关注宏哥,提前解锁更多测试干货!)
Project: Python零基础从入门到精通详细教程3-数据类型
''' # 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.注释:包括记录创建时间,创建人,项目名称。
'''
Created on 2025-06-06
@author: 北京-宏哥
北京宏哥(微信搜索:北京宏哥,关注宏哥,提前解锁更多测试干货!)
Project: Python零基础从入门到精通详细教程3-数据类型
''' # 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.注释:包括记录创建时间,创建人,项目名称。
'''
Created on 2025-06-06
@author: 北京-宏哥
北京宏哥(微信搜索:北京宏哥,关注宏哥,提前解锁更多测试干货!)
Project: Python零基础从入门到精通详细教程3-数据类型
''' # 3.导入模块
a="123"
res=complex(a)
print(res,type(res))
#(123+0j) <class 'complex'> a="1.23"
res=complex(a)
print(res,type(res))
#(1.23+0j) <class 'complex'> a="123.0"
res=complex(a)
print(res,type(res))
#(123+0j) <class 'complex'>,去掉小数部分 a="12+3j"
res=complex(a)
print(res,type(res))
#(12+3j) <class 'complex'> a="12.0+3.0j"
res=complex(a)
print(res,type(res))
#(12+3j) <class 'complex'>,去掉小数部分 a="12.0+3.9j"
res=complex(a)
print(res,type(res))
#(12+3.9j) <class 'complex'>
运行结果:

4.小结
1.所有类型都可以转化成str类型。
2.数字型之间可以相互转换,但complex不支持转换成float、int。
3.只有str字符串类型可以转换为数字型,并且字符串的元素必须为纯数字,如果字符串中有数字(0-9)和正负号(+/-)以外的字符,就会报错。
4.大家只需要记住:
隐式转换是在表达式运算中由Python自动进行的,而显式转换则是通过函数调用明确指定的。
希望这篇文章能帮助你更好地理解Python中的数据类型转换。好了,时间不早了今天就分享到这里,感谢你耐心地阅读!
Python零基础从入门到精通详细教程4-数据类型的转换- 上篇的更多相关文章
- Python 零基础快速入门!
“人生苦短,我学python”是编程届的名言.用python写小脚本的便捷性,让很多其他语言的学习者把python当作辅助语言.拥有了某一个语言的功底,再来学习另外一种语言应该是十分快速的.编程理念都 ...
- Python 零基础 快速入门 趣味教程 (咪博士 海龟绘图 turtle) 7. 条件循环
条件循环能够让程序在条件成立时(即为真时)重复执行循环体中的语句.如果条件一直成立(即永远不会为假),则循环会一直进行下去,不会停止.如果初始时,条件不成立,则循环 1 次也不会执行.Python 中 ...
- Python 零基础 快速入门 趣味教程 (咪博士 海龟绘图 turtle) 6. 条件
前面的教程中,我们已经可以让小海龟绘制出各种图形了.但是,所有绘图的代码都是预先编好的,程序一旦运行起来,运行结果(绘制的图形)就是固定不变的.这一节中,咪博士将教大家如何让海龟响应用户的输入. im ...
- Python 零基础 快速入门 趣味教程 (咪博士 海龟绘图 turtle) 4. 函数
什么样的程序员才是优秀的程序员?咪博士认为“慵懒”的程序员才是真正优秀的程序员.听起来不合逻辑?真正优秀的程序员知道如何高效地工作,而不是用不止境的加班来完成工作任务.函数便是程序员高效工作的利器之一 ...
- Python 零基础 快速入门 趣味教程 (咪博士 海龟绘图 turtle) 3. 循环
在前面的教程中,咪博士留了一道练习题给大家—-画正方形,相信聪明的你应该已经画出来了. 下面是咪博士实现的代码. 是不是跟你的代码很像呢? import turtle turtle.forward(2 ...
- Python 零基础 快速入门 趣味教程 (咪博士 海龟绘图 turtle) 2. 变量
大家在中学就已经学过变量的概念了.例如:我们令 x = 100,则可以推出 x*2 = 200 试试下面这段 Python 代码 import turtle turtle.shape("tu ...
- Python 零基础 快速入门 趣味教程 (咪博士 海龟绘图 turtle) 1. 神秘朋友
Python (Windows 下) 自带了一个非常有趣的 海龟绘图程序 (turtle),它是本系列课程的主角. 在 PyCharm 中,新建一个项目,然后在代码编辑器中输入 import turt ...
- Python 零基础 快速入门 趣味教程 (咪博士 海龟绘图 turtle) 0. 准备工作
一.关于 Python Python 是全球使用人数增长最快的编程语言!它易于入门.功能强大,从 Web 后端 到 数据分析.人工智能,到处都能看到 Python 的身影. Python 有两个主要的 ...
- Python 零基础 快速入门 趣味教程 (咪博士 海龟绘图 turtle) 5. 参数
上一个教程中,咪博士带大家学习了函数的使用.例如,line_without_moving 函数,可以让海龟先画出一条线段,然后再回来起点. def line_without_moving(): tur ...
- 【零基础】入门51单片机图文教程(Proteus+Keil)
参考资料: https://www.jianshu.com/p/88dfc09e7403 https://blog.csdn.net/feit2417/article/details/80890218 ...
随机推荐
- 《容器化.NET应用架构指南》脑图学习笔记(一)
一.关于这本官方"圣经" 作为.NET程序员,对于微软官方推动的架构示例总是特别关注,从PetShop到MusicStore再到eShopOnContainers,每一次关注,都会 ...
- 运行yolo时候,查mmcv各个版本
https://download.openmmlab.com/mmcv/dist/cu111/torch1.8.0/index.html
- 设置eclipse编码
1 设置HTML编码(Windows-Preference-ContentType) 2 设置workspace编码(Windows-Preference-Workspace-Text file en ...
- C# Winform 自定义 时间线 控件
推荐 官网 http://www.hzhcontrols.com/ NetWinform自定义控件 English README.md(github) English README.md(gitee) ...
- Oracle中字符型级处理方法
字符型简介 固定长度字符串-char(n) n代表字符串的长度,当实际长度不足时,利用空格在右端补齐,n的最大值不能大于2000.所以只要是固定长度的字符串,他的length(值)的长度总为n var ...
- jenkins部署后端SpringBoot
安装和配置java 安装java就不介绍了,因为到这一步,java环境肯定是已经安装完了. 这里多介绍给jekins配置java环境,方便编译后端项目. 全局工具配置>JDK>新增 安装和 ...
- 一、webrtc版本接听视频电话-纯js版
先看效果 用户1--拨打 用户2–接听 前端代码 index.html <!DOCTYPE html> <html lang="en"> <head& ...
- python 爬虫的初步实践
简介 我的sisiter,想要我爬一些试题给她.有80套,她不想手工点,所以,我来了,比较简单的网站.所以没有费很大的力气.期间参考了一系列的网站,都没有记录下来. code #!/usr/bin/e ...
- ETL数据集成丨MySQL到MySQL的数据迁移实践
前言 MySQL数据迁移至另一MySQL数据库的过程,不仅是数据复制或移动的操作那么简单,它还涉及到一系列策略性考量和技术优化,旨在实现数据的高效.安全传输,以及确保目标系统的高性能运行.其深远意义在 ...
- POLIR-Organization-Gov.: 国家网信办 和 公安部 的 "人脸识别技术应用安全管理办法"
人脸识别技术应用安全管理办法 2025年03月21日 17:00,来源:中国网信网 国家互联网信息办公室 中华人民共和国公安部 令 第19号 <人脸识别技术应用安全管理办法>已经2024年 ...