
图1:Python数据类型实战练习总览示意图
一、基础篇:吃透核心类型操作
先从最基础的题型练起,覆盖int、float、str、bool的核心操作,建议你先自己写代码,再对照答案,真正搞懂每一步的逻辑,而不是死记硬背。
练习1:数值运算与类型转换
题目:定义两个变量 num1 = "100"(字符串类型的数字)和 num2 = 20.5(浮点数),完成以下操作:
- 把
num1转换成整数,num2转换成字符串 - 计算两个数的和(注意类型匹配,不然会报错)
- 打印结果,同时查看最终结果的数据类型
# 参考答案
num1 = "100"
num2 = 20.5
# 第一步:类型转换
num1_int = int(num1) # 字符串转整数
num2_str = str(num2) # 浮点数转字符串
# 第二步:计算和(必须统一类型,字符串不能直接和数字相加)
total = num1_int + float(num2_str)
# 第三步:打印结果和类型
print("计算结果:", total)
print("结果类型:", type(total)) # 输出:<class 'float'>
解题思路:这道题的核心就是「类型匹配」。Python是强类型语言,不同类型的数据不能直接运算或拼接,必须先通过int()/float()/str()完成转换,再操作。这是新手最容易踩的第一个坑,一定要记死。
练习2:字符串切片与拼接
题目:给定字符串 s = "Python 入门教程",完成以下操作:
- 截取前6个字符,得到”Python”
- 截取最后2个汉字,得到”教程”
- 把两部分拼接成新的字符串,比如”Python – 教程”
# 参考答案 s = "Python 入门教程" # 截取前6个字符(切片左闭右开,s[:6] 等价于 s[0:6]) part1 = s[:6] print(part1) # 输出:Python # 截取最后2个字符(负索引从末尾开始,s[-2:] 取最后2位) part2 = s[-2:] print(part2) # 输出:教程 # 拼接成新字符串 new_str = part1 + " - " + part2 print(new_str) # 输出:Python - 教程
解题思路:字符串切片是Python的高频考点,核心记住两个规则:
1. s[起始:结束] 是左闭右开,包含起始位,不包含结束位
2. 负索引从字符串末尾开始计数,s[-1] 是最后一个字符,s[-2:] 是最后两个字符

图2:Python数据类型实战练习解题流程示意图
练习3:布尔值与条件判断
题目:定义变量 score = 85,判断成绩是否及格(≥60分),并打印对应的提示信息。
# 参考答案
score = 85
# 条件判断,结果是布尔值True/False
is_pass = score >= 60
if is_pass:
print("恭喜你,成绩及格!")
else:
print("继续加油,成绩未及格!")
解题思路:布尔类型是Python逻辑判断的核心,只有两个值:True(真)和False(假),注意首字母必须大写。另外记住一个核心规则:非0、非空、非None的内容,布尔值都是True;0、空字符串、None,布尔值都是False。
二、进阶篇:综合应用与避坑
进阶题更贴近实际开发场景,侧重数据类型的综合应用和细节处理,帮你避开新手常犯的错误,写出更健壮的代码。
练习4:浮点数精度问题处理
题目:计算 0.1 + 0.2,观察结果,尝试保留2位小数,并用decimal模块彻底解决精度误差问题。
# 参考答案
# 1. 原生浮点数运算
result = 0.1 + 0.2
print("原始结果:", result) # 输出:0.30000000000000004(精度误差)
# 2. 用round()保留2位小数(普通场景用这个)
result_rounded = round(result, 2)
print("保留2位小数:", result_rounded) # 输出:0.3
# 3. 用decimal模块彻底解决(金融/高精度场景用这个)
from decimal import Decimal
a = Decimal('0.1') # 注意:必须传字符串,不能传数字
b = Decimal('0.2')
print("高精度结果:", a + b) # 输出:0.3,完全精确
解题思路:浮点数精度误差是Python的经典坑,本质是计算机用二进制存储浮点数导致的。普通场景用round()保留小数就行,金融、电商结算这种对精度要求极高的场景,必须用decimal模块,从根本上消除误差。
练习5:字符串提取数值与计算
题目:给定字符串 s = "我的身高是175.5厘米,体重是65公斤",提取身高和体重的数值,计算BMI指数(BMI = 体重(kg) ÷ 身高(m)²),结果保留2位小数。
# 参考答案
s = "我的身高是175.5厘米,体重是65公斤"
# 1. 提取身高数值(用split()分割字符串)
# split("是") 会把字符串分成 ["我的身高", "175.5厘米,体重", "65公斤"]
height_str = s.split("是")[1].split("厘")[0] # 取第1个元素,再按"厘"分割,取前半部分
height = float(height_str) / 100 # 厘米转米
# 2. 提取体重数值
weight_str = s.split("是")[2].split("公")[0]
weight = float(weight_str)
# 3. 计算BMI
bmi = weight / (height ** 2)
print("身高:", height, "米")
print("体重:", weight, "公斤")
print("BMI指数:", round(bmi, 2))
解题思路:这是字符串操作的综合应用题,核心是用split()精准分割字符串,提取目标内容,再做类型转换和运算。实际开发中,处理接口返回的文本、日志提取信息,都会用到这种方法。

图3:Python数据类型实战练习常见易错点对比示意图
三、新手必看:5个高频易错点总结
我整理了新手在数据类型操作中最容易踩的5个坑,帮你一次性避开,少走弯路:
易错点1:字符串和数字直接拼接
错误示例:print("年龄是" + 18) → 直接报错,字符串和数字不能用+拼接。
正确做法:先把数字转成字符串,或者用f-string:print(f"年龄是{18}")
易错点2:浮点数精度误差
错误认知:认为0.1 + 0.2 == 0.3是成立的。实际结果是0.30000000000000004,二进制存储导致的误差。
解决办法:普通场景用round(),高精度场景用decimal模块。
易错点3:用关键字/内置函数做变量名
错误示例:print = 100、if = "测试" → 会覆盖系统自带的函数和关键字,导致后续代码报错。
正确做法:避开if/for/while/print/input/type这些系统名称,给变量起有意义的名字。
易错点4:字符串索引越界
错误示例:s = "abc"; print(s[3]) → 字符串长度是3,索引最大是2,越界直接报IndexError。
正确做法:用len(s)先获取字符串长度,再确定索引范围。
易错点5:混淆None和空字符串/0
错误认知:认为None == ""或者None == 0成立。实际None是独立的空值类型,和空字符串、0、False都不相等。
正确做法:判断空值用is None,不要用== None,更精准。
四、常见问题FAQ(新手必看)
Q1:类型转换失败怎么办?
类型转换失败99%是格式不匹配,比如字符串里有字母,就没法转成数字。解决方法:先检查数据格式,再做转换;或者用try-except捕获异常,避免程序崩溃,这是写健壮代码的必备技巧。
Q2:字符串切片的步长怎么用?
切片的完整语法是s[起始:结束:步长],步长控制截取的间隔。比如s[::2]是隔1个字符取一个,步长为-1可以直接反转字符串,是很实用的进阶技巧。
Q3:布尔值可以参与数值运算吗?
可以,因为Python里bool是int的子类,True等价于1,False等价于0。但实际开发不推荐这么用,会降低代码可读性,仅在特殊计数场景使用。
Q4:怎么彻底解决浮点数精度问题?
普通场景用round()保留小数就够了,金融、财务这种对精度要求极高的场景,必须用decimal模块,用十进制存储数字,从根本上消除二进制带来的误差,保证结果100%准确。
五、知识点总结(快速复习)
- 数据类型操作的核心是类型匹配,不同类型运算/拼接前必须先转换
- 字符串操作重点掌握索引、切片、split()分割,注意索引越界问题
- 浮点数运算有精度误差,关键场景用
round()或decimal处理 - 绝对不要用系统关键字/内置函数做变量名,养成规范命名习惯
- None是独立空值类型,判断空值用
is None,不要和空字符串/0混淆 - 布尔值只有True/False,非0、非空、非None为True,0/空/None为False
本文是Python零基础入门系列的实战配套文章,是巩固数据类型知识的最佳方式。更多新手能看懂的Python教程,可查看往期文章:
Python基本数据类型全解析、
Python变量与变量名全解析。
想深入了解Python官方语法,可参考Python官方标准数据类型文档。
版权声明:本文所有内容(含代码、图片、文字)均为原创,未经授权禁止任何形式的转载、抄袭、洗稿
如需转载,请联系作者获得授权,并在正文开头显著位置标注原文链接和作者信息!
下一篇我们将学习Python列表(list),开启复合数据类型的学习!
Python数据类型实战练习
Python零基础
Python数据类型
Python入门
Python实战

渝公网安备50022402001073号
Pingback: Python零基础入门系列专栏:10+篇干货从环境搭建到语法实战,小白一站式学Python - 小白 编程 笔记