尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
Python入门第三篇:函数进阶与文件操作
前两篇介绍了Python的基础语法和核心数据结构。本篇将深入讲解函数的高级用法以及如何读写文件——程序与外部世界交互的基础。一、函数参数与返回值1.1 位置参数与关键字参数函数定义时声明参数调用时可按位置传递也可按关键字传递。pythondef introduce(name, age, city北京): # 带默认值的参数必须放在最后 print(f{name}{age}岁来自{city}) introduce(张三, 25) # 位置参数 introduce(name李四, age30) # 关键字参数 introduce(王五, city上海, age28) # 混合位置参数在前1.2 可变参数不确定参数个数时使用可变参数。pythondef sum_all(*args): 接收任意数量的位置参数返回它们的和 total 0 for num in args: total num return total print(sum_all(1, 2, 3)) # 6 print(sum_all(10, 20, 30, 40)) # 100 def show_info(**kwargs): 接收任意数量的关键字参数 for key, value in kwargs.items(): print(f{key}: {value}) show_info(nameAlice, age25, jobEngineer)1.3 参数解包使用*和**在调用时解包序列和字典。pythonnumbers [1, 2, 3] print(sum_all(*numbers)) # 列表解包为位置参数 person {name: Bob, age: 30, city: 上海} show_info(**person) # 字典解包为关键字参数1.4 作用域规则函数内部可以访问外部变量但修改需要声明。pythonx 10 def func(): print(x) # 可以读取外部变量 def modify(): global x # 声明使用全局变量 x 20 modify() print(x) # 20nonlocal关键字用于嵌套函数中修改外层函数的变量。pythondef outer(): count 0 def inner(): nonlocal count count 1 return count return inner二、匿名函数lambdalambda函数是单行表达式适合作为参数传递给其他函数。pythonsquare lambda x: x ** 2 print(square(5)) # 25 # 在排序中使用 names [Alice, Bob, Charlie, David] names.sort(keylambda name: len(name)) print(names) # [Bob, Alice, David, Charlie] # 在map/filter中使用 numbers [1, 2, 3, 4, 5] squared list(map(lambda x: x**2, numbers)) evens list(filter(lambda x: x % 2 0, numbers))三、文件操作基础3.1 打开与关闭文件使用open()打开文件返回文件对象。操作完成后必须调用close()关闭。pythonf open(data.txt, r) # 读取模式 content f.read() f.close()使用with语句可以自动关闭文件是推荐的做法。pythonwith open(data.txt, r) as f: content f.read() # 离开with块后自动关闭3.2 文件读写模式模式说明r只读文件必须存在w写入文件不存在则创建存在则覆盖a追加文件不存在则创建r读写文件必须存在b二进制模式如rb、wb3.3 读取文件的方法pythonwith open(data.txt, r) as f: # 一次性读取全部内容 content f.read() # 按行读取 lines f.readlines() # 返回列表每行一个元素 # 逐行遍历 for line in f: print(line.strip())3.4 写入文件pythonwith open(output.txt, w) as f: f.write(第一行内容\n) f.write(第二行内容\n) with open(output.txt, a) as f: f.write(追加的内容\n)四、异常处理程序运行过程中会出现错误如文件不存在、类型转换失败异常处理机制可以让程序优雅地处理这些情况。4.1 try/except/else/finallypythontry: n int(input(请输入数字)) result 10 / n except ValueError: print(请输入有效的数字) except ZeroDivisionError: print(除数不能为零) except Exception as e: # 捕获其他所有异常 print(f发生错误{e}) else: print(f计算结果{result}) # 没有异常时执行 finally: print(无论是否出错都会执行) # 释放资源等清理工作4.2 自定义异常使用raise主动抛出异常也可以继承Exception创建自定义异常。pythondef withdraw(amount, balance): if amount balance: raise ValueError(余额不足) return balance - amount try: withdraw(100, 50) except ValueError as e: print(e)五、模块与导入模块是包含Python代码的文件.py文件是组织代码的基本单位。python# 导入整个模块 import math print(math.sqrt(16)) # 导入特定函数 from math import sqrt, pi print(sqrt(25)) # 导入并起别名 import datetime as dt print(dt.datetime.now()) # 导入所有内容一般不推荐因为可能覆盖已有变量名 from math import * print(sin(0))5.1if __name__ __main__当模块被直接运行时__name__值为__main__当被导入时__name__是模块名。这个特性允许同一文件既作为脚本运行也作为模块被导入。pythondef add(a, b): return a b if __name__ __main__: # 只有直接运行时才执行测试代码 print(add(3, 5)) # 8 print(add(10, 20)) # 30六、小结本篇介绍了函数的高级用法可变参数、解包、作用域、文件操作和异常处理。掌握这些内容程序就能与外部世界交互处理各种运行时错误。下一篇将介绍面向对象编程这是组织大型程序的核心思想。
RELATED

相关推荐

计算机考试-文字 /表格/演示-东方仙盟

计算机考试-文字 /表格/演示-东方仙盟

1.文字2.表格3.演示

📅 2026/9/5 9:25:15
终极解决方案:如何在Windows系统一键安装苹果USB和移动设备以太网驱动

终极解决方案:如何在Windows系统一键安装苹果USB和移动设备以太网驱动

终极解决方案:如何在Windows系统一键安装苹果USB和移动设备以太网驱动 【免费下载链接】Apple-Mobile-Drivers-Installer Powershell script to easily install Apple USB and Mobile Device Ethernet (USB Tethering) drivers on Windows! 项目地址: https://git…

📅 2026/9/19 16:33:14
专注时钟排行榜功能:如何与好友一起提升专注力?

专注时钟排行榜功能:如何与好友一起提升专注力?

专注时钟排行榜功能:如何与好友一起提升专注力? 【免费下载链接】WXminiprogram-Focus-clock 微信小程序【专注时钟】;时间规划/效率工具类/毕业设计/课设/入门 项目地址: https://gitcode.com/gh_mirrors/wx/WXminiprogram-Focus-clock …

📅 2026/9/19 7:10:52
MORE NEWS

更多资讯

📰

全球十大净水器排名实战项目性能优化避坑指南

全球十大净水器排名实战项目性能优化避坑指南 配置环境就卡半天,代码跑不动,内存直接爆掉。 别急着怪电脑配置低,大概率是你没搞懂底层数据流转的阻塞点。 我在做 实战项目 时,常拿 全球十大净水器排名…

📰

页游乐园性能瓶颈拆解:3步保姆级教程搞定卡顿

页游乐园性能瓶颈拆解:3步保姆级教程搞定卡顿 版本升级后 API 全变了,你的页游乐园项目还在用旧代码硬扛?别慌。这份保姆级教程不玩虚的,直接带你从底层原理到落地代码,把“页游乐园”这种高交互、多组件场景下的性能瓶颈一次性掐灭。…

📰

别被八个雅鹿源码解析劝退:3步搞定晋升与学时

别被八个雅鹿源码解析劝退:3步搞定晋升与学时 官方文档堆成山,翻两页就头晕,这是不是你的日常?别慌,咱们不整虚的。 今天拆解 八个雅鹿 ,不讲晦涩理论,只说人话。 你刚入行时,是不是也被那些长篇大论的规范劝退过?…

📰

周字怎么写好看速查手册:3种渲染方案性能实测

周字怎么写好看速查手册:3种渲染方案性能实测 官方文档翻了三遍还是觉得太厚,抓不住重点?做前端或者全栈的朋友都知道,处理“周字怎么写好看”这类涉及字体渲染、字形优化的需求时,往往要在多种技术方案里纠结半天。今天这篇速查手册,不聊虚的,直接上…

📰

3步搞定yy杨图解,高频面试题实战项目从零搭建

3步搞定yy杨图解,高频面试题实战项目从零搭建 官方文档往往冗长枯燥,读完还是抓不住核心逻辑。很多高频面试题看似简单,实则考察对底层原理的理解。本文将结合yy杨图解原理,通过一个从零搭建的实战项目,带你把抽象概念变成可运行的代码。…

📰

台历怎么做性能慢?一文搞懂3个核心优化点

台历怎么做性能慢?一文搞懂3个核心优化点 报错一堆看不懂 StackTrace?别慌,这种堆栈信息看着吓人,其实就是程序在喊疼。很多开发者一看到红色异常就头大,觉得是玄学,其实都是性能瓶颈在作祟。今天我们就拿“台历怎么做”这个典型业务场景,…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬