【Python 全栈测开之路】Python 基础语法精讲(三):函数、容器类型与文件处理

【深度长文】深入理解网络原理:TCP/IP 协议栈核心实战与性能调优


我的主页: 寻星探路
个人专栏: 《JAVA(SE)----如此简单!!! 》 《从青铜到王者,就差这讲数据结构!!!》
《数据库那些事!!!》 《JavaEE 初阶启程记:跟我走不踩坑》
《JavaEE 进阶:从架构到落地实战 》 《测试开发漫谈》
《测开视角・力扣算法通关》 《从 0 到 1 刷力扣:算法 + 代码双提升》
《Python 全栈测试开发之路》
没有人天生就会编程,但我生来倔强!!!

寻星探路的个人简介:


前言

在上一篇中我们掌握了流程控制。但在实际的测试开发中,为了提高代码的复用性,我们需要函数 ;为了处理大量的测试数据,我们需要列表、字典 等容器;而为了持久化存储测试结果,文件操作则是必修课。本篇将带你攻克这些核心知识点。


一、 函数:代码复用的艺术

1.1 什么是函数

函数是一段可以被重复使用的代码片段。它能提高代码的可维护性和可读性。

1.2 函数的定义与调用

  • 定义 :使用 def 关键字。
  • 形参和实参:定义时的变量叫形参,调用时传入的叫实参。
python 复制代码
def add(a, b):  # a, b 为形参
    return a + b

result = add(10, 20)  # 10, 20 为实参
print(result)

1.3 变量作用域

  • 局部变量:在函数内部定义,只能在函数内使用。
  • 全局变量 :在函数外部定义。如果要在函数内修改全局变量,需使用 global 关键字。

二、 容器类型:高效组织测试数据

2.1 列表 (List)

列表是可变的序列,可以存储不同类型的数据。

  • 创建alist = [1, 2, 3]
  • 增加append() 追加到末尾,insert() 插入到指定位置。
  • 查找 :使用 in 判断元素是否存在,使用 index() 查找索引。
  • 删除pop() 根据索引删除,remove() 根据值删除。

2.2 元组 (Tuple)

元组是不可变的序列。一旦创建,不能修改其内容。

  • 创建atuple = (1, 2, 3)
  • 作用:主要用于保护数据不被意外修改,常用于函数返回多个值。

2.3 字典 (Dict)

字典是键值对(Key-Value)结构,查找速度极快。

python 复制代码
student = {
    "id": 1,
    "name": "测开小星",
    "score": 95
}
# 查找数据
print(student["name"])
# 新增/修改
student["city"] = "北京"

三、 文件操作:数据持久化

在自动化测试中,我们需要读取 .txt.csv 配置文件,并记录测试日志。

3.1 文件的打开与关闭

使用 open() 打开文件,使用 close() 关闭文件。推荐使用 with 语句,它可以自动关闭文件,防止内存泄漏。

python 复制代码
# 使用 with 语句读取文件
with open('test.txt', 'r', encoding='utf8') as f:
    lines = f.readlines()
    for line in lines:
        print(line.strip())

3.2 读写模式

  • 'r':只读(默认)。
  • 'w':只写(会覆盖原内容)。
  • 'a':追加(在文件末尾写入)。

3.3 编码问题

处理中文文件时,务必指定 encoding='utf8',否则在不同系统(如 Windows 的 GBK 编码)下容易出现乱码。


四、 测开实战技巧

  1. 参数解包:函数返回多个值时,可以用元组接收,或者直接解包。
python 复制代码
def get_pos():
    return 100, 200
x, y = get_pos()
  1. 字典遍历 :在处理接口返回的 JSON 数据(Python 中表现为字典)时,常用 items() 遍历。
python 复制代码
for key, value in student.items():
    print(f"{key}: {value}")

五、 总结

函数、容器和文件操作是 Python 编程的中坚力量。函数封装了逻辑,容器容纳了数据,文件保存了成果。掌握了这些,你已经具备了编写复杂自动化工具的能力。


感谢阅读!如果这篇文章对你有帮助,欢迎:

  • 点赞 👍
  • 收藏
  • 关注 我的专栏,一起解锁 Python 全栈测开技能!
相关推荐
无风听海9 小时前
C# 中对象相等性判断的全面解析
开发语言·c#
且去填词9 小时前
构建基于 DeepEval 的 LLM 自动化评估流水线
运维·人工智能·python·自动化·llm·deepseek·deepeval
txinyu的博客9 小时前
函数的可重入性决定了函数的线程安全?volatile被认为是可重入关键字?
c++
逑之9 小时前
C语言笔记8:操作符
c语言·开发语言·笔记
xiaolyuh1239 小时前
【XXL-JOB】执行器 Netty服务 & Tomcat 进程+资源共用详解
java·tomcat
无限进步_9 小时前
【C语言&数据结构】相同的树:深入理解二叉树的结构与值比较
c语言·开发语言·数据结构·c++·算法·github·visual studio
dagouaofei9 小时前
不同 AI 生成 2026 年工作计划 PPT 的使用门槛对比
人工智能·python·powerpoint
IRevers9 小时前
【目标检测】深度学习目标检测损失函数总结
人工智能·pytorch·深度学习·目标检测·计算机视觉
jasnet_u9 小时前
SpringCloudAlibaba的web微服务快速搭建
java·springboot·springlcoud