news 2026/7/19 3:53:16

Python第五天学习:函数、文件操作与异常处理

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Python第五天学习:函数、文件操作与异常处理

1. Python学习第五天的关键突破点

作为一门易学难精的编程语言,Python在第五天的学习通常会遇到几个关键转折点。这个阶段的学习者已经掌握了基础语法和环境配置,开始接触更实用的编程概念。我结合自己多年的Python教学经验,总结出第五天最需要掌握的三个核心技能:函数定义与调用、文件操作基础,以及异常处理机制。

1.1 函数:代码复用的艺术

函数是Python编程中最重要的构建块之一。在第五天,我们需要彻底理解def关键字的用法:

def greet(name): """这是一个简单的问候函数""" return f"Hello, {name}!" # 函数调用 print(greet("Alice")) # 输出: Hello, Alice!

重要提示:函数文档字符串(docstring)虽然看似可有可无,但在大型项目中是必不可少的代码文档工具。建议从学习初期就养成写docstring的习惯。

函数的参数传递有几个关键细节需要注意:

  • 位置参数:按顺序匹配
  • 关键字参数:按参数名匹配
  • 默认参数:为参数提供默认值
  • 可变参数:*args和**kwargs的使用

1.2 文件操作:数据持久化的第一步

文件读写是Python与外部世界交互的基础方式。第五天应该掌握基本的文件操作模式:

模式描述文件存在文件不存在
r只读正常打开抛出错误
w写入清空内容创建新文件
a追加追加内容创建新文件
x创建抛出错误创建新文件
b二进制模式与其他模式组合使用

典型文件操作代码示例:

# 写入文件 with open('diary.txt', 'w', encoding='utf-8') as f: f.write("2023-07-20\n") f.write("今天学习了Python文件操作\n") # 读取文件 with open('diary.txt', 'r', encoding='utf-8') as f: content = f.read() print(content)

使用with语句可以确保文件正确关闭,即使在操作过程中发生异常也是如此。这是比直接使用open()/close()更Pythonic的做法。

2. 异常处理:让程序更健壮

第五天的另一个重要主题是异常处理。Python使用try-except块来捕获和处理异常:

try: age = int(input("请输入你的年龄: ")) print(f"明年你就{age + 1}岁了") except ValueError: print("请输入有效的数字!")

常见的异常类型包括:

  • ValueError:值错误
  • TypeError:类型错误
  • IndexError:索引错误
  • KeyError:键错误
  • FileNotFoundError:文件未找到错误

更完整的异常处理结构:

try: # 可能出错的代码 result = 10 / 0 except ZeroDivisionError: # 处理特定异常 print("不能除以零!") except Exception as e: # 处理其他所有异常 print(f"发生未知错误: {e}") else: # 没有异常时执行 print("计算成功!") finally: # 无论是否异常都会执行 print("程序执行完毕")

3. 第五天综合练习项目

为了巩固第五天学习的内容,我设计了一个小型通讯录管理程序,综合运用函数、文件操作和异常处理:

def add_contact(): """添加联系人""" try: name = input("输入姓名: ") phone = input("输入电话: ") with open('contacts.txt', 'a') as f: f.write(f"{name},{phone}\n") print("联系人添加成功!") except Exception as e: print(f"添加失败: {e}") def show_contacts(): """显示所有联系人""" try: with open('contacts.txt', 'r') as f: contacts = f.readlines() if not contacts: print("通讯录为空") return print("\n通讯录列表:") for i, contact in enumerate(contacts, 1): name, phone = contact.strip().split(',') print(f"{i}. {name}: {phone}") except FileNotFoundError: print("通讯录文件不存在,请先添加联系人") except Exception as e: print(f"读取失败: {e}") def main(): """主菜单""" while True: print("\n通讯录管理系统") print("1. 添加联系人") print("2. 查看联系人") print("3. 退出") choice = input("请选择操作: ") if choice == '1': add_contact() elif choice == '2': show_contacts() elif choice == '3': print("感谢使用,再见!") break else: print("无效输入,请重新选择") if __name__ == "__main__": main()

这个项目涵盖了第五天学习的核心概念:

  1. 使用函数组织代码逻辑
  2. 文件操作实现数据持久化
  3. 异常处理增强程序健壮性
  4. 基本的用户交互设计

4. 常见问题与调试技巧

在第五天的学习过程中,有几个常见问题值得特别注意:

4.1 函数变量作用域混淆

x = 10 # 全局变量 def func(): x = 20 # 局部变量 print(x) # 输出20 func() print(x) # 输出10

如果需要修改全局变量,需要使用global关键字:

x = 10 def func(): global x x = 20 func() print(x) # 输出20

4.2 文件路径问题

新手常遇到文件找不到的错误,主要是因为相对路径和绝对路径的理解不足。建议:

  1. 使用绝对路径确保准确性
  2. 或者使用os.path模块处理路径
import os # 获取当前脚本所在目录 current_dir = os.path.dirname(os.path.abspath(__file__)) file_path = os.path.join(current_dir, 'data.txt') with open(file_path, 'r') as f: content = f.read()

4.3 异常处理过度使用

虽然异常处理很重要,但不应滥用。例如,不要用异常处理来代替常规条件判断:

# 不好的做法 try: if x > 0: print("正数") except: pass # 更好的做法 if isinstance(x, (int, float)): if x > 0: print("正数") else: print("x不是数字")

5. 第五天后的学习建议

完成第五天的学习后,建议按照以下路线继续深入:

  1. 模块和包管理:学习如何组织大型项目

    • import语句的使用
    • 创建自己的模块
    • 理解__name__ == "main"的意义
  2. 面向对象编程:Python的核心范式

    • 类和对象的概念
    • 继承和多态
    • 特殊方法(init, __str__等)
  3. 常用内置模块

    • os和sys:系统操作
    • datetime:日期时间处理
    • json:数据序列化
    • re:正则表达式
  4. 虚拟环境管理

    • venv模块的使用
    • 理解隔离环境的重要性
    • 项目依赖管理

第五天的学习是Python入门的关键转折点,从这里开始,你将从语法学习转向实际应用开发。坚持每天练习,尝试用Python解决实际问题,是提高编程能力的最佳途径。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/19 3:53:13

深入学LangChain 官方文档(四):Structured Output 结构化输出

深入学LangChain官方文档(四):Structured Output 结构化输出 本篇对应的官方文档 LangChain Structured Output:支撑 Agent 场景中的 response_format、两种执行策略、schema 校验、structured_response 和错误处理主线。Models -…

作者头像 李华
网站建设 2026/7/19 3:52:20

JavaScript 函数 this 全解

文章目录 一、this 是什么?二、四条铁律:this 绑定规则1. 默认绑定 —— 独立函数调用2. 隐式绑定 —— 作为对象方法调用3. 显式绑定 —— call、apply、bind4. new 绑定 —— 构造函数调用 三、箭头函数的 this四、this 绑定优先级五、常见场景实战1. …

作者头像 李华
网站建设 2026/7/19 3:51:26

Airflow云原生ELT实战:MWAA+Redshift+dbt架构落地指南

1. 项目概述:当Airflow离开本地服务器,真正扎根云原生环境“Airflow is on the Cloud”不是一句口号,而是过去三年我亲手推动的五个核心数据平台迁移项目中,最常被客户在立项会上反复确认的一句话。它背后藏着一个现实困境&#x…

作者头像 李华
网站建设 2026/7/19 3:49:49

Python hashlib模块:安全哈希与消息摘要详解

1. Python hashlib模块概述 hashlib是Python标准库中用于安全哈希和消息摘要的模块。它提供了多种加密哈希算法的通用接口,包括SHA系列、MD5以及更现代的BLAKE2算法。这个模块在数据完整性验证、密码存储、数字签名等场景中扮演着关键角色。 我第一次接触hashlib是…

作者头像 李华
网站建设 2026/7/19 3:49:44

Flask用户登录系统:密码安全与会话管理实践

1. 用户登录系统概述在Web应用开发中,用户登录系统是最基础也是最重要的功能模块之一。一个完整的用户登录系统需要处理用户认证、会话管理、密码安全等多个关键环节。使用Flask框架构建用户登录系统时,通常会结合Flask-Login、Werkzeug等扩展来实现这些…

作者头像 李华