Python语言基础:4_数据类型转换

目录

[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 数据类型转换 详细新手教程(全举例、逐句讲解)

前置基础(先看懂再学转换)

  1. Python 常用基础类型:
    • int:整数(10、-5、0)
    • float:小数(3.14、9.0、-2.5)
    • str:字符串文字("123"、"小明"、"3.14")
    • bool:布尔值(True / False)
  2. 转换分两大类:
    1. 隐式转换(自动转换,不用写代码):程序自己悄悄转
    2. 显式转换(强制转换,手动写函数) :我们主动用 int() float() str() bool() 转换
  3. 核心规则:不同类型不能直接运算,必须转换后才能计算 错误示范:"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% 都用这个)

四个核心转换函数:

  1. int(数据) → 转为整数
  2. float(数据) → 转为浮点数(小数)
  3. str(数据) → 转为字符串
  4. bool(数据) → 转为布尔值 True/False

2.1 int () 强制转为整数

规则

  1. 浮点数转 int:直接砍掉小数部分,不四舍五入
  2. 纯数字字符串("123")可以转;带小数点的字符串("3.14")不能直接转 int
  3. 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

错误示范(会报错)

  1. 带小数点的字符串不能直接转 int

    num = int("3.14") # 报错!字符串是小数,只能转float

  2. 文字字符串无法转数字

    num = int("小明") # 报错,纯文字不能转整数

2.2 float () 强制转为浮点数(小数)

规则

  1. 整数转 float:末尾加 .0
  2. 纯数字字符串、带小数点字符串都能转
  3. 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 的情况(只有下面这些)
  1. 数字:0、0.0
  2. 空字符串:""
  3. 空容器:空列表 \[\]、空字典 {}、空元组 ()
其余所有数据转换结果全是 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]))

五、新手高频踩坑总结

  1. input() 获取的永远是字符串,做加减乘除必须转 int/float
  2. int("3.14") 直接报错,小数字符串要先 float()int()
  3. int 转浮点数会带 .0,浮点数转 int 直接舍弃小数,不四舍五入
  4. 数字和字符串不能 + 拼接,必须用 str() 把数字转文字
  5. bool("0") 是 True,只有空字符串""才是 False
  6. 隐式转换只发生在数字之间,字符串不会自动变成数字
相关推荐
kyriewen17 小时前
别再写useMemo了——2026年这5个React性能优化已经是反模式
前端·react.js·ai编程
OpenTiny社区17 小时前
TinyRobot v0.5.0 新版本强在哪?
前端·vue.js·github
奇牙coding17 小时前
gpt-5.6-sol 接入指南:reasoning_effort 参数配置、推理链验证与常见报错排查
前端·css·gpt·ai
larance18 小时前
机器学习特征预处理之标准化/归一化
开发语言·python·机器学习
tokenova18 小时前
Python 多模型统一调用封装类,一套代码兼容 GPT/Claude/Grok
python
sugar__salt18 小时前
Vue.js 前置知识:ES6+ 核心特性完全指南
前端·javascript·vue.js·vue·es6
雪隐18 小时前
个人电脑玩AI-10让5060 Ti给你打工——我让 Claude Code 喝上了本地杂粮:Ternary-Bonsai-27B 部署历险记
前端·人工智能·后端
Devin~Y18 小时前
互联网大厂Java面试实战:Spring Boot、MyBatis、Redis、Kafka、JWT、Spring Cloud 与 AI 场景追问
java·spring boot·redis·spring cloud·kafka·mybatis·spring security
Bigger18 小时前
我受够了每天问“今天吃什么”,于是做了个 AI 菜单工具
前端·人工智能·agent