【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 全栈测开技能!
相关推荐
大龄程序员狗哥7 小时前
第47篇:使用Speech-to-Text API快速构建语音应用(操作教程)
人工智能
KKKlucifer7 小时前
数据安全合规自动化:策略落地、审计追溯与风险闭环技术解析
人工智能·安全
m0_748554817 小时前
golang如何实现用户订阅偏好管理_golang用户订阅偏好管理实现总结
jvm·数据库·python
RWKV元始智能8 小时前
RWKV超并发项目教程,RWKV-LM训练提速40%
人工智能·rnn·深度学习·自然语言处理·开源
dyj0958 小时前
Dify - (一)、本地部署Dify+聊天助手/Agent
人工智能·docker·容器
lee_curry8 小时前
第四章 jvm中的垃圾回收器
java·jvm·垃圾收集器
墨染天姬8 小时前
【AI】Hermes的GEPA算法
人工智能·算法
小超同学你好8 小时前
OpenClaw 深度解析系列 · 第8篇:Learning & Adaptation(学习与自适应)
人工智能·语言模型·chatgpt
紫微AI8 小时前
前端文本测量成了卡死一切创新的最后瓶颈,pretext实现突破了
前端·人工智能·typescript
weixin_520649878 小时前
WinForm数据展示组件ListView
c#