大学生学Python第三周:类型转换与元组实战精解
这周继续拓展Python基础的学习在上周列表、字典的基础上学习了数据类型转换、元组以及简单统计函数max、min、sum相关知识也做了小代码练习。相比单纯看懂语法这周更多是理解不同类型之间的联系动手敲代码做测试慢慢建立类型的思维同时也发现自己很多理解还不够扎实。1. 数据类型转换比如 num int(66)不同数据类型之间可以相互转换常用int()转整数、str()转字符串、list()转为列表。有些转换会受内容限制例如含有字母的文本不能直接转数字。写输入交互代码时经常会用到类型转换如果忽略类型问题很容易出现报错。学会类型转换之后可以处理input输入带来的数据类型问题让不同类型的数据之间可以参与运算。2. 元组比如 t (cat,猫)元组用小括号包裹和列表很像但元组属于不可变类型一旦定义完成不能直接增删或修改其中的元素。这周练习了元组解包操作例如 a,b (cat,猫) 将元组内的值拆分并赋值给不同变量。经常会将一组成对的数据存放在元组中再循环解包取出内容。虽然元组使用频率不如列表高但在存放固定不变的一组信息时会很合适。3. max、min、sum简单统计函数比如 score_list [88,72,95,60]max()用来求一组数据的最大值min()求最小值sum()计算全部数据的总和。配合列表一起使用不用自己写循环一个个累加判断。但要注意列表里面必须全部是数字才可以使用sum函数。借助这三个函数可以快速完成成绩这类数据的基础统计。3.1 定义函数def比如 def add(a, b): return a b函数用def关键字定义把一段可复用的逻辑封装起来通过参数接收输入、用return返回结果。定义好之后可以多次调用避免重复写相同代码。这周练习了简单的自定义函数比如把成绩求平均的逻辑封装成函数再配合max、min、sum一起使用让代码更清晰、更容易维护。4. 小案例实战练习这周把类型转换、元组、统计函数结合实操练习。一部分练习是元组解包把成对单词数据取出借助类型转换处理输入内容再用max、min、sum完成成绩统计小案例。将零散知识点组合在一起加深对容器和基础函数的理解。练习的时候也遇到一些小问题比如非数字内容直接用sum会报错元组试图修改元素直接抛出异常调试的过程也帮助我记住这些约束条件。5. 常见错误与排查练习过程中遇到的两个报错其实都是Python里很典型的类型约束问题。下面分别用try-except将错误捕获出来查看具体是什么类型、该怎么修复。5.1 非数字内容使用sum报错sum()要求列表里的元素全部是数字一旦混入字符串就会抛出TypeError。可以用try-except捕获并提前用isinstance()做类型检查来避免。列表 vs 元组对比对比维度列表元组语法符号方括号如 [88, 72, 95, 60]小括号如 (cat, 猫)可变性可变类型可增删或修改元素不可变类型定义后不能直接增删或修改元素常用场景存放需要频繁增删改的数据集合存放固定不变的一组信息如成对数据配合解包使用性能特点相对更重适合动态调整的数据更轻量性能略优适合固定数据sum()要求列表里的元素全部是数字一旦混入字符串就会抛出TypeError。可以用try-except捕获并提前用isinstance()做类型检查来避免。下面代码中第一段演示报错场景第二段是修复后的写法。score_list [88, 72, 95, 60] try: total sum(score_list) print(总分, total) except TypeError as e: print(报错类型TypeError) print(错误信息, e) print(修复思路先把非数字元素转成数字再求和) score_list [88, 72, 95, 60] score_list [int(x) for x in score_list] print(修复后总分, sum(score_list)) 运行结果报错类型TypeError 运行结果错误信息unsupported operand type(s) for : int and str 运行结果修复后总分3155.2 元组试图修改元素抛出异常元组是不可变类型直接对元素赋值会抛出TypeError。遇到这种情况要么把元组转成列表再修改要么重新构造一个新的元组。下面代码中第一段演示报错场景后两段分别展示两种修复方式。t (cat, 猫) try: t[0] dog except TypeError as e: print(报错类型TypeError) print(错误信息, e) print(修复思路元组不可变可转成列表修改或重建新元组) t_list list(t) t_list[0] dog print(转列表修改, tuple(t_list)) t_new (dog, t[1]) print(重建元组, t_new) 运行结果报错类型TypeError 运行结果错误信息tuple object does not support item assignment 运行结果转列表修改(dog, 猫) 运行结果重建元组(dog, 猫)