目录
[Python 数据类型转换 详细新手教程(全举例、逐句讲解)](#Python 数据类型转换 详细新手教程(全举例、逐句讲解))
[示例 1:布尔转整数](#示例 1:布尔转整数)
[示例 2:整数自动转浮点数](#示例 2:整数自动转浮点数)
[示例 3:bool + float](#示例 3:bool + float)
[二、显式强制转换(重点,日常开发 90% 都用这个)](#二、显式强制转换(重点,日常开发 90% 都用这个))
[2.1 int () 强制转为整数](#2.1 int () 强制转为整数)
[案例 1:浮点数转整数](#案例 1:浮点数转整数)
[案例 2:纯数字字符串转整数(最常用,input 输入必用)](#案例 2:纯数字字符串转整数(最常用,input 输入必用))
[案例 3:布尔值转 int](#案例 3:布尔值转 int)
[2.2 float () 强制转为浮点数(小数)](#2.2 float () 强制转为浮点数(小数))
[案例 1:整数转浮点数](#案例 1:整数转浮点数)
[案例 2:数字字符串转小数](#案例 2:数字字符串转小数)
[案例 3:布尔转 float](#案例 3:布尔转 float)
[2.3 str () 强制转为字符串(万能转换,不会报错)](#2.3 str () 强制转为字符串(万能转换,不会报错))
[案例 1:数字转字符串,解决拼接报错](#案例 1:数字转字符串,解决拼接报错)
[案例 2:浮点数、布尔转字符串](#案例 2:浮点数、布尔转字符串)
[案例 3:变量拼接实战(输入输出常用)](#案例 3:变量拼接实战(输入输出常用))
[2.4 bool () 强制转为布尔值 True / False](#2.4 bool () 强制转为布尔值 True / False)
[转换结果为 False 的情况(只有下面这些)](#转换结果为 False 的情况(只有下面这些))
[其余所有数据转换结果全是 True](#其余所有数据转换结果全是 True)
[案例 1:数字转布尔](#案例 1:数字转布尔)
[案例 2:字符串转布尔](#案例 2:字符串转布尔)
[案例 3:空容器转布尔](#案例 3:空容器转布尔)
[练习 1:输入两个数字,计算加法](#练习 1:输入两个数字,计算加法)
[练习 2:区分 bool 转换](#练习 2:区分 bool 转换)
Python 数据类型转换 详细新手教程(全举例、逐句讲解)
前置基础(先看懂再学转换)
- Python 常用基础类型:
int:整数(10、-5、0)float:小数(3.14、9.0、-2.5)str:字符串文字("123"、"小明"、"3.14")bool:布尔值(True / False)
- 转换分两大类:
- 隐式转换(自动转换,不用写代码):程序自己悄悄转
- 显式转换(强制转换,手动写函数) :我们主动用
int() float() str() bool()转换
- 核心规则:不同类型不能直接运算,必须转换后才能计算 错误示范:
"100" + 20直接报错,字符串和数字无法相加
一、隐式类型转换(自动转换)
不需要调用转换函数,计算时 Python 自动把低精度转高精度 优先级:bool < int < float
示例 1:布尔转整数
# True = 1,False = 0
print(True + 10)
print(False + 5)
输出:
11
5
解释:运算时自动把 True 转为 1,False 转为 0
示例 2:整数自动转浮点数
整数和小数相加,int 自动变成 float
a = 10 # int
b = 3.5 # float
c = a + b
print(c)
print(type(c))
输出:
13.5
<class 'float'>
10 自动转为 10.5 参与计算
示例 3:bool + float
res = True + 2.6
print(res, type(res))
输出:3.6 <class 'float'>
隐式转换缺点
只能数字之间自动转,字符串和数字不会自动转换,一定会报错:
# 报错!字符串不会自动转数字
num = "20" + 10
这种情况必须用强制显式转换。
二、显式强制转换(重点,日常开发 90% 都用这个)
四个核心转换函数:
int(数据)→ 转为整数float(数据)→ 转为浮点数(小数)str(数据)→ 转为字符串bool(数据)→ 转为布尔值 True/False
2.1 int () 强制转为整数
规则
- 浮点数转 int:直接砍掉小数部分,不四舍五入
- 纯数字字符串("123")可以转;带小数点的字符串("3.14")不能直接转 int
- True→1,False→0
案例 1:浮点数转整数
a = 3.99
b = -2.8
print(int(a))
print(int(b))
输出:
3
-2
⚠️ 不是四舍五入,直接截断小数!
案例 2:纯数字字符串转整数(最常用,input 输入必用)
input 接收的所有内容都是字符串,计算必须转 int
# 用户输入数字,本质是字符串
age_str = input("输入年龄:")
print(type(age_str)) # <class 'str'>
# 强制转整数
age = int(age_str)
print(type(age)) # <class 'int'>
print(age + 10) # 可以正常计算
案例 3:布尔值转 int
print(int(True))
print(int(False))
输出:
1
0
错误示范(会报错)
-
带小数点的字符串不能直接转 int
num = int("3.14") # 报错!字符串是小数,只能转float
-
文字字符串无法转数字
num = int("小明") # 报错,纯文字不能转整数
2.2 float () 强制转为浮点数(小数)
规则
- 整数转 float:末尾加
.0 - 纯数字字符串、带小数点字符串都能转
- True→1.0,False→0.0
案例 1:整数转浮点数
a = 10
res = float(a)
print(res, type(res))
输出:10.0 <class 'float'>
案例 2:数字字符串转小数
s1 = "66"
s2 = "3.1415"
print(float(s1))
print(float(s2))
输出:
66.0
3.1415
案例 3:布尔转 float
print(float(True))
print(float(False))
输出:
1.0
0.0
错误示范
float("苹果") # 文字无法转为数字,报错
2.3 str () 强制转为字符串(万能转换,不会报错)
规则
所有类型(int/float/bool/ 列表)都能转字符串,用来拼接文字
案例 1:数字转字符串,解决拼接报错
# 错误写法:数字+字符串直接相加报错
# print(100 + "元")
# 正确:把数字转字符串再拼接
num = 100
s = str(num)
print(s + "元")
输出:100元
案例 2:浮点数、布尔转字符串
a = str(3.14)
b = str(True)
print(a, type(a))
print(b, type(b))
输出:
3.14 <class 'str'>
True <class 'str'>
案例 3:变量拼接实战(输入输出常用)
age = 18
# f-string不用转换,这里演示str用法
msg = "我今年" + str(age) + "岁"
print(msg)
输出:我今年18岁
2.4 bool () 强制转为布尔值 True / False
核心判定规则(必背)
转换结果为 False 的情况(只有下面这些)
- 数字:0、0.0
- 空字符串:""
- 空容器:空列表 \[\]、空字典 {}、空元组 ()
其余所有数据转换结果全是 True
案例 1:数字转布尔
print(bool(0)) # False
print(bool(0.0)) # False
print(bool(1)) # True
print(bool(-99)) # True
print(bool(3.14)) # True
案例 2:字符串转布尔
print(bool("")) # 空字符串 → False
print(bool(" ")) # 有空格,非空 → True
print(bool("123")) # True
print(bool("小明")) # True
案例 3:空容器转布尔
print(bool([])) # 空列表 False
print(bool([1,2])) # 有内容 True
print(bool({})) # 空字典 False
三、多层连续转换(实战高频场景)
场景:输入小数字符串,先转 float,再转 int
# 用户输入小数
num_str = "9.99"
# 第一步:字符串转浮点数
num_float = float(num_str)
# 第二步:浮点数转整数
num_int = int(num_float)
print(num_int) # 输出9
场景:数字转字符串再拼接
price = 99.9
text = "商品价格:" + str(price) + "元"
print(text)
四、真实综合练习题(新手必练)
练习 1:输入两个数字,计算加法
# 1. 获取输入(字符串)
n1 = input("请输入第一个数字:")
n2 = input("请输入第二个数字:")
# 2. 强制转换为float
a = float(n1)
b = float(n2)
# 3. 计算
sum_result = a + b
# 4. 输出
print("相加结果:", sum_result)
练习 2:区分 bool 转换
# 全部False
print(bool(0), bool(""), bool([]))
# 全部True
print(bool(10), bool("0"), bool([1]))
五、新手高频踩坑总结
input()获取的永远是字符串,做加减乘除必须转 int/floatint("3.14")直接报错,小数字符串要先float()再int()- int 转浮点数会带
.0,浮点数转 int 直接舍弃小数,不四舍五入 - 数字和字符串不能
+拼接,必须用str()把数字转文字 bool("0")是 True,只有空字符串""才是 False- 隐式转换只发生在数字之间,字符串不会自动变成数字