文章目录
- 前言
- 一、元组(tuple)
- 1.元组特点
- 2. 常用操作示例
- 二、函数
- 1. 什么是函数
- 2. 分类
- 三、变量作用域
- 四、数据类型转换
- 五、文件操作
- 1. 打开模式
- 2. 基础读写
- 六、递归(简单理解)
- 总结
前言
在掌握了变量、分支 if、while 循环、break 与 continue 等 Python 基础语法之后,我们继续学习元组、函数、作用域、数据类型转换、文件操作以及递归。这部分内容是从基础语句过渡到模块化编程、读写外部文件的关键,为后续学习面向对象、爬虫、数据分析打下基础。学习中我会结合小案例练习,理解代码复用、数据存储与函数自调用的思想。
一、元组(tuple)
1.元组特点
元组属于序列容器,和列表很像,**核心区别:元组不可变,一旦定义不能修改里面的元素,不能增、删、改元素,只能读取。
定义:使用小括号(),元素用逗号隔开;只有一个元素时,后面必须加逗号(10,)
支持索引取值、切片、for 循环遍历、len()求长度
适用场景:存放不希望被修改的数据,比如坐标、固定配置信息,相比列表更安全。
2. 常用操作示例
# 定义元组t1=(1,2,3,4)# 索引取值print(t1[0])# 切片print(t1[1:3])# 遍历foriint1:print(i)# 元组不可修改,下面代码会报错# t1[0] = 100**补充:**元组里面如果嵌套了列表,列表内部的数据是可以修改的,只是元组本身不能替换里面的子元素。
二、函数
1. 什么是函数
函数就是封装好的一段可重复调用的代码块,作用是代码复用、简化结构、方便维护,避免大量重复写相同代码。
关键字:def用来定义函数
结构:
def函数名(参数):函数体(代码)return返回值调用:函数名(传入数据)
2. 分类
1.无参函数:不需要传入数据
2.有参函数:调用时传入参数,函数内部接收使用
3.有返回值函数:return把结果返回给调用处;没有写 return,默认返回None
简单示例
# 定义求和函数defadd(a,b):res=a+breturnres# 调用result=add(3,5)print(result)三、变量作用域
作用域指变量能生效、能被访问到的范围,分为局部变量和全局变量。
- 局部变量:定义在函数内部,只能在函数里面使用,函数执行结束变量自动销毁。
- 全局变量:定义在函数外部,整个文件都可以访问。
global关键字:在函数内部声明要修改全局变量。
示例:
num=100# 全局变量deftest():globalnum num=200# 修改全局变量a=10# 局部变量print(a)test()print(num)注意:不推荐大量使用 global,容易造成代码混乱,优先使用参数和返回值传递数据。
四、数据类型转换
Python 不同数据类型之间可以互相转换,常用内置函数:
int():转整数,字符串必须是数字格式才能转float():转浮点数str():转为字符串,几乎所有类型都可以转tuple():把列表、可迭代对象转为元组list():把元组、可迭代对象转为列表
示例:
s="66"n=int(s)print(n,type(n))t=(1,2,3)l=list(t)print(l)注意:转换不是原地修改,会生成一个新的数据;格式不匹配会抛出报错(比如int("abc"))。
五、文件操作
Python 可以读写电脑上的文件(txt 等),核心使用open()函数。
1. 打开模式
r只读(默认):只能读,文件不存在报错w只写:写入内容,文件不存在则创建;会清空原有内容a追加:在文件末尾添加内容,不会清空旧内容rb / wb二进制模式,用来读图片、视频等
2. 基础读写
推荐with open()写法,它会自动关闭文件,不用手动写 close (),更安全。
# 写入文件withopen("test.txt","w",encoding="utf-8")asf:f.write("Hello Python文件操作")# 读取文件withopen("test.txt","r",encoding="utf-8")asf:content=f.read()print(content)要点:读写中文一定要指定encoding="utf-8",否则容易乱码;read()一次性读取全部内容,readline()读取一行。
六、递归(简单理解)
递归就是函数自己调用自己。
递归两个必要条件:
- 基线条件(终止条件):满足条件就停止递归,否则无限调用,报错栈溢出
- 递归条件:把大问题拆成规模更小的同类型问题
示例:
deffactorial(n):# 基线条件ifn==1:return1# 递归调用,自己调用自己returnn*factorial(n-1)print(factorial(5))注意:递归思路简洁,但是有调用深度限制,大量计算时效率不如循环。适合树、分治类问题。
总结
本次学习了元组、函数、变量作用域、类型转换、文件读写和递归:
元组是不可变序列,适合存储固定数据;函数实现代码封装复用,参数、返回值是数据传递的核心;作用域区分全局和局部变量,理清变量的访问范围;类型转换可以灵活切换数据格式;文件操作可以让程序和本地文件交互,持久化保存数据;递归是函数特殊用法,通过自调用拆分问题。
这部分内容把代码从简单顺序、循环语句,升级为模块化、可持久化的程序。接下来我会继续学习列表高级操作、字典集合、异常处理、模块,向更完整的项目开发方向学习。