【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 全栈测开技能!
相关推荐
程序员清洒18 小时前
CANN模型安全:从对抗防御到隐私保护的全栈安全实战
人工智能·深度学习·安全
island131418 小时前
CANN ops-nn 算子库深度解析:神经网络计算引擎的底层架构、硬件映射与融合优化机制
人工智能·神经网络·架构
小白|18 小时前
CANN与实时音视频AI:构建低延迟智能通信系统的全栈实践
人工智能·实时音视频
Anastasiozzzz18 小时前
Java Lambda 揭秘:从匿名内部类到底层原理的深度解析
java·开发语言
Kiyra18 小时前
作为后端开发你不得不知的 AI 知识——Prompt(提示词)
人工智能·prompt
缺点内向18 小时前
C#: 告别繁琐!轻松移除Word文档中的文本与图片水印
c#·自动化·word·.net
骇客野人18 小时前
通过脚本推送Docker镜像
java·docker·容器
艾莉丝努力练剑18 小时前
实时视频流处理:利用ops-cv构建高性能CV应用
人工智能·cann
程序猿追18 小时前
深度解析CANN ops-nn仓库 神经网络算子的性能优化与实践
人工智能·神经网络·性能优化
刘琦沛在进步18 小时前
【C / C++】引用和函数重载的介绍
c语言·开发语言·c++