测试基础笔记第十五天

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

文章目录

  • 一、集合
    • 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 关键字 抛出 异常对象

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/78831.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux中的shell脚本练习

1.判断字符串是否为空 #!/usr/bin/bash while : #:默认值为真 do read -p "请输入你的密码: " a pass123456 if [ -z $a ];thenecho "您输入的密码不能为空"exit 1 elseif [ $a $pass ];thenecho "登录成功"breakelseecho "您的密码输入有…

使用命令关闭Redis服务端

使用命令关闭Redis服务端。 命令 redis-cli -a 111111 -p 6379 shutdown 有些人redis的端口不是6379,那就自己查一下 参数解释: -a:Redis密码 -p:Redis端口 shutdown:关闭命令

嵌入式RTOS实战:uC/OS-III最新版移植指南(附项目源码)

文章目录 前言一、uC/OS简介二、工程移植2.1 下载ucos源码2.2 创建空白工程2.3 拷贝ucosiii源码文件2.3.1 UC-CONFIG2.3.2 UC-CPU2.3.3 UC-LIB2.3.4 UC-OS3 2.3 添加工程文件分组及路径2.4 代码首次编译2.5 源码修改2.5.1 cpu_cfg.h2.5.2 os_cpu_c.c2.5.3 lib_cfg.h2.5.4 sys.h…

TypeScript中的函数类型定义与类型约束

函数类型定义与类型约束 一、核心概念:类型别名与函数类型 1. 类型别名(Type Alias) 定义 类型别名使用 type 关键字为现有类型创建一个新名称,可以用于: 基础类型(如 string、number)&…

相机DreamCamera2录像模式适配尺寸

在开发中遇到 一个问题,相机切换视频模式时,预览时,界面不能充满屏幕两侧有黑边,客户要求修改,在此记录 一问题现象: 系统相机在视频模式下预览时如下现象如图1,期望现象如图2: 图1 …

SpringCloud组件——Gateway

一.网关 1.问题提出 我们通过Eureka,Nacos解决了服务注册,服务发现的问题,使用SpringCloud LoadBalance解决了负载均衡的问题,使用OpenFeign解决了远程调用的问题。 但是当前所有微服务的接口都是直接对外暴露的,可…

C#中构造器及属性的加载顺序

一.基本原则: 先加载静态构造函数和静态字段,后加载普通构造函数和普通字段;先加载基类再加载子类; 二.具体的加载顺序: 父类静态字段--->父类静态构造函数--->子类静态字段--->子类静态构造函数--->父类实例字段---> 父类实例构造函数--->子类实例字段-…

Python面试问题

一、Python 基础 1. Python 的特点 动态类型:变量无需声明类型。解释型语言:逐行解释执行。支持多种编程范式(面向对象、函数式、过程式)。 2. 列表(List)与元组(Tuple)的区别 特…

计算机视觉进化论:YOLOv12、YOLOv11与Darknet系YOLOv7的微调实战对比

摘要 YOLO系列作为实时目标检测领域的重要里程碑,持续引领速度与精度的平衡发展。本文围绕YOLOv7(基于Darknet框架)、YOLOv11及YOLOv12,系统、深入地对比了三款模型的架构创新、微调策略、核心技术及应用场景。我们详细解析了三者…

SQL Server 存储过程开发规范

SQL Server 存储过程开发规范(高级版) 1. 总则 1.1 目标 本规范旨在: 提高存储过程的事务一致性、异常可追踪性、错误透明度。 统一日志记录、错误码管理、链路追踪(Trace ID)。 支持复杂事务场景(嵌套…

opendds的配置

配置的使用 文档中说明有4种使用配置的方式: 环境变量 命令行参数(将覆盖环境变量中的配置) 配置文件(不会覆盖环境变量或命令行参数中的配置) 用户调用的 API(将覆盖现有配置) 这里对开发…

(Go Gin)上手Go Gin 基于Go语言开发的Web框架,本文介绍了各种路由的配置信息;包含各场景下请求参数的基本传入接收

1. 路由 gin 框架中采用的路优酷是基于httprouter做的 HttpRouter 是一个高性能的 HTTP 请求路由器,适用于 Go 语言。它的设计目标是提供高效的路由匹配和低内存占用,特别适合需要高性能和简单路由的应用场景。 主要特点 显式匹配:与其他路由…

Marin说PCB之----板材的替换注意事项

由于最近很多武林上的主流门派都需要采用将的本方案,小编所在的宗门古族也是不例外了,宗门大长老韩立现在想把之前一直在用的板材EM370Z替换成生益的Autolad3,让我去拿资料分析一下是否可以替换。下图所示是就是小编我做的一个表格关于两家板…

4月28日信息差全景:国际局势、科技突破与市场震荡一、国际政治与安全:俄乌冲突关键转折

一、国际政治与安全:俄乌冲突关键转折 1. 乌克兰反攻进展与情报差异 前线动态: 俄国防部称在顿涅茨克击退乌军三次进攻,摧毁12辆坦克;乌方则宣布在巴赫穆特南部推进2公里,双方战报存在显著差异。 信息差根源:战场信息管控导致西方媒体与俄媒报道截然不同。 国际援助: 美…

关系数据的可视化

目录 【实验目的】 【实验原理】 【实验环境】 【实验步骤】 一、安装Python所需要的第三方模块 二、实验 【实验总结】 【实验目的】 1.掌握关系数据在大数据中的应用 2.掌握关系数据可视化方法 3. python 程序实现图表 【实验原理】 在传统的观念里面&#xff0…

夏季道路安全的AI革命:节省人力、提升效率

AI夏季道路安全:用智能算法守护每一条街道 背景:夏季道路安全的挑战与机遇 夏季是道路安全事件的高发期。高温天气容易导致驾驶员疲劳、行人行为异常(如跌倒或中暑),同时,车流量增加、夜间活动频繁…

HTML标记语言_@拉钩教育【笔记】

目录 1.文本标签 2.格式化标签 3.图片标签 4.超链接标签 5.表格标签 6表单标签 6.1 6.2 6.3 7.行内框架(超链接内套一个页面) 8.多媒体标签(音/视频) 1.文本标签 2.格式化标签 3.图片标签 4.超链接标签 5.表格标签 6表单标签 6.1 6.2 6.3 7.行内框架(超链接内套一个…

Python 中调用方法内部定义的类详解(类在方法中的各种操作)

更多内容请见: python3案例和总结-专栏介绍和目录 文章目录 一、基本概念1.1 方法内部定义类概述1.2 方法内部定义类的特点1.3 替代方案二、基本使用2.1 直接在方法内部使用2.2 返回类定义供外部使用2.3 返回类的实例2.4 作为闭包使用(访问外部变量)三、高级用法3.1 动态类创…

第36课 常用快捷操作——用“鼠标右键”退出当前命令

概述 在AD 20软件中,很多的命令都是可以一直连续下去的,比方说放置一个元器件符号,如果你当中不取消的话,那就可以一直执行下去,放完一个接着放下一个,放完一个接着放下一个…… 想要退出这种连续进行的命…

FFTW3.3.10库与QT结合的使用

FFTW(Fastest Fourier Transform in the West)是世界上最快的FFT, 实测计算长度为10000的double数组, 单次运行时间在2ms左右。为了详细了解FFTW以及为编程方便,特将用户手册看了一下,并结合手册制作了以下…