当前位置: 首页 > news >正文

测试基础笔记第十五天

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 一、集合
    • 1.集合的定义
    • 二、使用集合列表去重
  • 导包
  • 二、函数
    • 1.函数介绍
    • 2.定义函数
    • 3.调用函数
    • 4.函数实现登录案例
    • 5.函数的返回值
  • 三、模块和包
    • 1.模块的概念(Module)
    • 2.模块的导入方式-import
    • 3.模块的导入方式-from...import
    • 3.模块的导入顺序
    • 4.__name__ 属性
    • 5.包(Package)
    • 6.包操作案例
    • 7.断言
  • 四、异常
    • 1.捕获异常
    • 2.捕获特定异常类型
    • 3.捕获未知类型异常
    • 4.异常捕获完整语法
    • 5.抛出异常


一、集合

1.集合的定义

  • 说明:集合中的数据是没有重复的, 主要应用列表中的数据去重
  • 在这里插入图片描述

二、使用集合列表去重

  • 1.使用随机数生成 10 个 1-20 之间的随机数
  • 2.对列表中的数据进行去重

导包

import random
#实现
test_data = []
for i in range(11):
item = random.randint(1, 20)
test_data.append(item)
print(test_data)
print(set(test_data))

二、函数

1.函数介绍

  • 说明:把具有独立功能的代码块组织为一个小模块,在需要的时候调用
  • 在这里插入图片描述
  • 作用:对具备相同逻辑的代码进行封装, 提高代码的编写效率, 实现对代码的重用

2.定义函数

  • 语法:def 函数名(参数1, 参数2…):
    函数封装的代码,可以使用传递进来的参数
    pass
  • 说明:

1.def是英文define 的缩写
2. 函数名最好能够表达函数内部封装的代码的功能, 方便
后续的获取调用[见名知意]
3. 函数名命名遵循标识符命名规则: 字母, 数字, 下划线, 不
能以数字开头, 不用使用系统关键字
4. 定义时候的参数称为形式参数,简称形参

3.调用函数

  • 语法:函数名(参数1, 参数2…):
  • 说法:
  1. 只定义函数, 不调用函数, 函数永远不会被执行
  2. 不能将 函数调用 放在 函数定义 的上方,否则将会出现错误
  3. 函数调用时的参数称为实际参数,简称实参

4.函数实现登录案例

  • 需求:当手机号为”13488888888”,输出“账号成功”;否则“账号错误”
  • 在这里插入图片描述

5.函数的返回值

  • 语法:def 函数名(参数…):

    return xxx
  • 说明:如果想在函数调用处获取函数定义内部的某个数据, 需要使用 return 关键字返回结果
  • 错误样例:没有返回值的函数,在函数调用处获取的结果都是None

def demo():
name = “admin”
print(name) # admin
result = demo()
print(result) # None

  • 注意事项:
    • return 关键字可以将函数定义内部的任意数据, 返回给函数调用处
    • return 关键字也可以单独使用, 表示提前结束函数调用, 但不返回任何数据

def demo():
name = “admin”
return name
print(name) # 注意:return 表示返回,后续的代码都不会被执行
result = demo()
print(result) # admin

三、模块和包

1.模块的概念(Module)

l 每一个以 .py 结尾的 Python 代码文件都是一个模块
l 模块名 同样也是一个 标识符 , 需要符合标识符的命名规则
l 在模块中定义的 全局变量函数 都是提供给外界直接使用的 工具
l 模块就好比是工具包, 要想使用这个工具包中的工具, 就需要先 `导入模块
在这里插入图片描述

2.模块的导入方式-import

  • 语法:

import 模块名1, 模块名2
建议:在导入模块时,每个导入独占一行
import 模块名1
import 模块名2
如果模块的名字太长,可以使用 as 指定模块的名称,以方便在代码中的使用
import 模块名1 as 模块别名

  • 使用方式:导入之后,通过 模块名. 使用模块提供的工具(全局变量、函数、类)
  • 注意:模块别名应该符合大驼峰命名法

3.模块的导入方式-from…import

  • 如果希望 从某一个模块 中,导入 部分 工具,就可以使用 from … import 的方式
  • import 模块名 是 一次性 把模块中 所有工具全部导入,并且通过 模块名/别名 访问
  • 语法:

#从 模块 导入 某一个工具
from 模块名1 import 工具名

  • 使用方式:不需要通过 模块名.调用,可以直接使用模块提供的工具(全局变量、函数、类)
  • 注意事项:
  1. 允许一行导入多个工具名: from 模块名 import 工具名1, 工具名2
  2. 如果两个模块, 存在同名的工具, 那么后导入模块的工具, 会覆盖掉先导入的工具

3.模块的导入顺序

  • Python 解释器在导入模块时的顺序是:
  1. 查找当前目录下指定模块名的文件, 如果有就直接导入
  2. 当前目录下如果没有, 则再查找系统目录下的模块
  • 注意:给模块名时, 务必不要和系统模块重名, 否则会直接影响系统模块的导入!

4.name 属性

  • 语法:

#根据 name 判断是否执行下方代码
if name == “main”:
pass

  • 作用: 处于该条件下的代码, 只有是在当前模块内执行时, 才会被运行
  • 原理: Python 内置属性 name 的主要作用是记录一个字符串信息
    l 当被其他模块导入后运行时, name 属性值为模块名
    l 当在模块内运行时, name 属性值为 _main
  • 注意:一般情况下, 都需要将模块内的调试代码置于该条件下, 以防止被其他模块导入后, 调试代码也参与执行

5.包(Package)

  • 说明:包:(Package)是一个包含多个模块的特殊目录
  • l 目录下有一个特殊的文件 __init__.py
    l 包名 的命名方式和 变量名 一致
    l 作用:python文件较多时,方便分目录管理维护
  • 提示:提示:在 PyCharm 中支持直接创建包, 工程根目录上鼠标右键 -> New -> PythonPackage
  • 常用寻包方式在这里插入图片描述

6.包操作案例

  • login.py

#/api/login.py
def login(phone):
if phone == “13488888888”:
return “账号正确”
else:
return “账号错误”

  • test_login.py

#导包
from api.login import login
#调用
print(login(“13488888888”))
#断言 assert
assert “账号正确666” == login(“13488888888”)
在这里插入图片描述

7.断言

  • 说明:断言:自动判断实际结果和预期结果
  • 用法:
    ① 断言相等:assert 预期结果 == 实际结果
    ② 断言包含:assert 预期结果 in 实际结果
  • 结果:
    通过PASS: 不显示
    失败FAIL: 报错并提示“AssertionError”

四、异常

1.捕获异常

  • 语法:

try:
#尝试执行的代码
except:
#出现异常时执行的代码
基本语法格式

  • 说明:
    try:尝试,下方编写要尝试代码,不确定是否能够正常执行的代码
    lexcept:如果有异常捕获,下方编写捕获到异常,处理失败的代码

2.捕获特定异常类型

  • 语法:

try:
#尝试执行的代码
except 异常类型:
#出现异常时执行的代码
语法格式

  • 注意:
  1. 捕获特定异常类型, 能够实现仅在特定异常类型出现时, 代码再做
    对应的处理
  2. 具体的异常类型可以先行从代码执行的报错信息中获取, 在设置捕获异常操作
  • 在这里插入图片描述

3.捕获未知类型异常

  • 语法:

try:
#尝试执行的代码
except Exception as e:
#出现异常时执行的代码
print(‘异常信息为: {}’.format(e))

  • 说明:
    l 如果希望程序无论出现任何错误,都不会因为Python解释器抛出异
    常而被终止,可以捕获 Exception
    l except Exception as e: e表示捕获到的异常对象,记录异常的错
    误信息,e为惯用变量名,可以自定义

4.异常捕获完整语法

  • 语法:

try:
#尝试执行的代码
pass
except 错误类型1:
#针对错误类型1,对应的代码处理
pass
except 错误类型2:
#针对错误类型2,对应的代码处理
pass
except Exception as e:
#打印错误信息
print(e)
finally:
#无论是否有异常,都会执行的代码
pass

  • 说明:finally: 无论是否出现异常都会执行

5.抛出异常

  • 语法:

#创建异常对象
ex = Exception(“异常描述信息”)
#抛出异常对象
raise ex

  • Python 中提供了一个 Exception 异常类
  • 在开发时,如果满足特定业务需求时希望抛出异常,可以:
  1. 创建 一个 Exception类 的 对象
  2. 使用 raise 关键字 抛出 异常对象

相关文章:

  • AI日报 - 2025年04月29日
  • esm使用-包括esmfold和embedding
  • 阿里开源图生动画模型AnimateAnyone2
  • auto(x) decay copy
  • await和async
  • 2025年保安员证考试题库及答案
  • 【quantity】4 Duration 类型及其实现(time.rs)
  • C22-作业练习之最大公约数与最小公倍数
  • 如何开发动态贴纸功能?一体化美颜SDK的技术实现思路与实战方案
  • ZYNQ-自定义呼吸灯IP核以及PS-PL数据发送接收
  • Easy系列PLC高速计数器比较指令
  • 跟着文档学Vuex(一):什么是Vuex
  • 小智项目架构分析
  • uniapp实现统一添加后端请求Header方法
  • 如何评价 DeepSeek 的 DeepSeek-V3 模型?
  • OpenAvatarChat要解决UnicodeDecodeError
  • 云服务器主动防御策略与自动化防护(下)
  • MySQL最新版9.3.0安装教程
  • 【C++游戏引擎开发】第28篇:OpenGL异步加载纹理技术详解
  • Python分支结构全面解析与实战应用指南
  • 王毅出席金砖国家外长会晤
  • 长三角铁路“五一”假期运输今启动:预计发送旅客量增6%,5月1日当天有望创新高
  • 借助AI应用,自闭症人群开始有可能真正“读懂他人”
  • 核电开闸!国常会核准10台新机组,拉动超2000亿投资,新项目花落谁家?
  • “下山虎”张名扬一回合摘下“狮心”:你们再嘘一个给我听听
  • 魔都眼·上海车展⑥|周六客流超13.5万人次,创开展新高