测试基础笔记第十五天
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 一、集合
- 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…):
- 说法:
- 只定义函数, 不调用函数, 函数永远不会被执行
- 不能将 函数调用 放在 函数定义 的上方,否则将会出现错误
- 函数调用时的参数称为实际参数,简称实参
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 工具名
- 使用方式:不需要通过 模块名.调用,可以直接使用模块提供的工具(全局变量、函数、类)
- 注意事项:
- 允许一行导入多个工具名: from 模块名 import 工具名1, 工具名2
- 如果两个模块, 存在同名的工具, 那么后导入模块的工具, 会覆盖掉先导入的工具
3.模块的导入顺序
- Python 解释器在导入模块时的顺序是:
- 查找当前目录下指定模块名的文件, 如果有就直接导入
- 当前目录下如果没有, 则再查找系统目录下的模块
- 注意:给模块名时, 务必不要和系统模块重名, 否则会直接影响系统模块的导入!
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 异常类型:
#出现异常时执行的代码
语法格式
- 注意:
- 捕获特定异常类型, 能够实现仅在特定异常类型出现时, 代码再做
对应的处理 - 具体的异常类型可以先行从代码执行的报错信息中获取, 在设置捕获异常操作
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 异常类
- 在开发时,如果满足特定业务需求时希望抛出异常,可以:
- 创建 一个 Exception类 的 对象
- 使用 raise 关键字 抛出 异常对象
相关文章:
测试基础笔记第十五天
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一、集合1.集合的定义二、使用集合列表去重 导包二、函数1.函数介绍2.定义函数3.调用函数4.函数实现登录案例5.函数的返回值 三、模块和包1.模块的概念(Module)2.模…...
【专题四】前缀和(3)
📝前言说明: 本专栏主要记录本人的基础算法学习以及LeetCode刷题记录,按专题划分每题主要记录:(1)本人解法 本人屎山代码;(2)优质解法 优质代码;ÿ…...
STM32 USB配置详解
STM32 USB配置详解 一、USB基础概念 1.1 USB简介 USB (Universal Serial Bus) 是一种用于计算机与外部设备连接的串行总线标准,具有热插拔、即插即用等特点。STM32微控制器内置了多种USB接口,可实现各类USB应用。 1.2 USB速度等级 Low Speed (LS): …...
2025年Mapbox零基础入门教程(1)地图初始化
什么是mapbox? mapbox是一个地图框架,不仅提供前端渲染能力,还具备后端服务接口能力。 相较于openlayers,它可构建二维和三维地图,并支持优化导航路线和位置查询等功能。 开发中使用mapbox需引入库文件并设置token&…...
课外知识:你需要了解的Python类对象里面的__getattr__方法
你需要了解的Python类对象中的__getattr__方法 一、__getattr__基础概念 1. 方法定义 def __getattr__(self, name: str) -> Any:"""当访问不存在的属性时触发"""2. 核心特性 动态属性处理:拦截未定义的属性访问按需触发&…...
openGauss新特性 | DataKit支持PostgreSQL到openGauss的迁移能力
Postgresql-\>openGauss迁移工具debezium-connector-postgres 可获得性 本特性自openGauss 7.0.0-RC1版本开始引入。 特性简介 debezium-connector-postgres工具是一个基于Java语言的Postgresql到openGauss的复制工具。该工具提供了初始全量数据及对象(视图、…...
【前端】跟进新趋势- PWA WebAssembly
不定期更新及补充实战。建议关注收藏点赞。 目录 PWA(渐进式 Web 应用,Progressive Web App)WebAssembly(WASM) PWA(渐进式 Web 应用,Progressive Web App) PWA 是一种提升 Web 应用…...
C++学习:六个月从基础到就业——模板编程:SFINAE原则
C学习:六个月从基础到就业——模板编程:SFINAE原则 本文是我C学习之旅系列的第三十六篇技术文章,也是第二阶段"C进阶特性"的第十四篇,主要介绍C模板编程中的SFINAE原则。查看完整系列目录了解更多内容。 目录 C学习之…...
完美解决.NET Framework 4.0 中 System.Drawing 库不支持 WebP 格式的图像处理
如果你想在 .NET Framework 4.0 中使用 ImageMagick 处理图片,可以通过 Magick.NET 库来实现。Magick.NET 是 ImageMagick 的 .NET 封装,可以用来读取、写入、编辑图像。 以下是如何使用 Magick.NET 来处理图像并提取图像的宽度和高度。 步骤ÿ…...
网络基础概念:从菜鸟到入门
前言:快递小哥的故事 想象一下你要给朋友寄个礼物,这个过程其实和网络通信非常相似: 1. 你需要知道朋友的”地址“(IP地址) 2. 要注明是送到他家大门还是物业代收(端口号) 3. 要选择快递公司并…...
优先队列和单调队列(双端队列实现的)
这里写自定义目录标题 一、优先队列与单调队列二、优先队列2.1 概念2.2 增删查 判空2.3 示例代码 三、双端队列四、单调队列4.1 单调递增队列4.2 单调递减队列 一、优先队列与单调队列 二、优先队列 2.1 概念 一种特殊的队列,它与普通队列的主要区别在于元素的出…...
设计模式(状态模式)
概述 在实际的软件开发中,状态模式并不是很常用,但是在能够用到的场景里,它可以发挥很大的作用。从这一点上来看,它有点像我们之前讲到的组合模式。 状态模式一般用来实现状态机,而状态机常用在游戏、工作流引擎等系统…...
安卓基础(get和set)
在 Java 中,get 和 set 方法是面向对象编程中 封装(Encapsulation) 的核心实现,用于安全地访问和修改类的私有字段(private 成员变量)。它们的核心作用是 控制对数据的访问,…...
机器人灵巧操作新突破,力感知技术让机械手更精准
在机器人的发展历程中,让机器人实现灵活操作一直是科研人员努力攻克的难题。 我们这篇文章给大家带来一份新的工作:DexForce 链接:[2501.10356] DexForce: Extracting Force-informed Actions from Kinesthetic Demonstrations for Dextero…...
八大排序——直接插入排序/希尔排序
八大排序——直接插入排序/希尔排序 目录 一、直接插入排序 二、希尔排序 一、直接插入排序 每一趟从待排序序列中取第一个值,将其插入到已排序好的序列中,对已排序好的序列,从右到左依次和待插入值比较,如果大于则向后挪&…...
8、HTTPD服务--ab压力测试
一、ab压力测试 # ab ‐c 100 ‐n 1000 http://vedio.linux.com/index.html 2 This is ApacheBench, Version 2.3 <$Revision: 1430300 $> 3 Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ 4 Licensed to The Apache Software Foundation,…...
node.js 实战——mongoDB
MongoDB MongoDB 简介 MongoDB 是一种基于文档型 (document-oriented) 的 NoSQL 数据库,使用类 JSON 的 BSON 格式存储数据,自然支持复杂数据结构。它特别适合需要快速变化、大量数据处理和高应用扩展性的场景。 MongoDB 特性: 无法表、无…...
C语言学习路线
以下是一份综合多个优质资源的C语言学习路线规划,结合2025年最新技术趋势和工程实践需求,分为三个阶段系统推进: 一、入门阶段(1-2个月) 目标:掌握基础语法,能编写简单程序ÿ…...
飞凌嵌入式T527核心板获得【OpenHarmony生态产品兼容性证书】
近日,飞凌嵌入式FET527-C核心板通过OpenHarmony 4.1 Release版本兼容测评,获得【OpenHarmony生态产品兼容性证书】。 飞凌嵌入式FET527-C核心板搭载全志T527系列全国产高性能处理器,集成8个ARM Cortex-A55核心,并内置RISC-V核和DS…...
Mioty|采用报文分割(Telegram Splitting)以提高抗干扰能力的无线通信技术
1、什么是Mioty 在物联网(IoT)快速发展的背景下,低功耗广域网(LPWAN)技术成为连接海量设备的关键。LPWAN具有低功耗、低成本、广覆盖和强抗干扰能力等特点,使其特别适用于大规模、远距离、低数据速率的IoT…...
WPF 程序监控硬件设备状态变化的实现方案
以下是一个完整的 C# WPF 程序实现方案,用于监控硬件设备状态变化(基于设备 SDK API)。我们将分步骤实现,包含状态轮询、事件通知、UI 绑定和错误处理。 1. 项目结构设计 HardwareMonitor/ ├── Models/ # 数据模…...
利用Python打印有符号十进制数的二进制原码、反码、补码
有时候手动计算有符号十进制数的二进制原码、反码、补码是一件挺麻烦的事情。 下面是一个段Python 代码,它可以接收一个 16 位有符号十进制数的输入,然后输出其对应的二进制原码、反码和补码: def decimal_to_binary(decimal_num):# 检查输入…...
STM32裸机编程架构与思路
STM32作为广泛应用的微控制器系列,其强大的功能和灵活的编程方式使其成为嵌入式系统开发的优选。裸机编程(bare-metal programming)指的是在没有操作系统支持的情况下,直接对硬件进行编程。这种方式虽然较为底层,但能够…...
Eureka 深度解析:从原理到部署的全场景实践
一、Eureka 核心原理与架构设计 1. 核心定位与组件模型 Eureka 是 Netflix 开源的服务发现(Service Discovery)组件,作为 Spring Cloud 微服务体系的核心基础设施,其核心目标是解决分布式系统中服务实例动态管理与跨服务通信解耦…...
有哪些和PPT自动生成有关的MCP项目?
随着AI技术的快速发展, Model Context Protocol(MCP) 作为一种连接大型语言模型(LLMs)与外部工具的开放协议,正在重塑自动化办公领域。在PPT自动生成场景中,MCP通过标准化接口实现了AI模型与设计工具、数据源的无缝整合。以下从技术框架、项目案例、应用场景三个维度展开…...
经典数仓架构深度解析与演进:从离线处理到新型架构对比
经典数仓架构深度解析与演进:从离线处理到新型架构对比 在数据驱动决策的时代,经典数仓作为企业数据管理与分析的核心基础设施,承载着从数据存储到价值挖掘的重要使命。本文将深入剖析经典数仓的架构、数据处理流程、主流架构模式及其对比&a…...
[Python开发] 如何用 VSCode 编写和管理 Python 项目(从 PyCharm 转向)
在 Python 开发领域,PyCharm 一直是广受欢迎的 IDE,但其远程开发功能(如远程 SSH 调试)仅在付费版中提供。为了适应服务器部署需求,很多开发者开始将目光转向更加轻量、灵活且免费扩展能力强的 VSCode。本篇文章将详细介绍,从 PyCharm 转向 VSCode 后,如何高效搭建和管理…...
系统架构-架构评估
质量属性 性能 指系统的响应能力 指标:响应时间、吞吐量等。 设计策略:优先级队列、增加计算资源、减少计算开销、引入并发机制、采用资源调度 可靠性 在意外或错误使用的情况下维持软件系统的功能特性 指标:MTTF、MTBF、MTTR 设计策…...
使用 MQTT - C 访问 IoTDA 平台:一个完整的嵌入式示例
引言 在物联网(IoT)开发领域,设备与平台之间的通信至关重要。MQTT 作为一种轻量级的消息传输协议,因其高效、可靠的特性,在物联网场景中得到了广泛应用。华为的 IoTDA(IoT Device Access)平台为…...
Leetcode594.最长和谐子序列
目录 题目算法标签: 滑动窗口, 哈希表思路滑动窗口代码哈希表代码 题目 594. 最长和谐子序列 算法标签: 滑动窗口, 哈希表 思路 先将数组进行排序, 检查两个相邻的但是不相等的数字的差值是否是 1 1 1, 如果是 1 1 1更新答案 滑动窗口代码 #include <algorithm> #i…...
如何在idea中编写spark程序
在 IntelliJ IDEA 中编写 Spark 程序的详细指南 在大数据处理领域,Apache Spark 凭借其强大的分布式计算能力,成为了众多开发者的首选工具。而 IntelliJ IDEA 作为一款功能强大的集成开发环境(IDE),为编写 Spark 程序…...
人工智能数学基础(一):人工智能与数学
在人工智能领域,数学是不可或缺的基石。无论是算法的设计、模型的训练还是结果的评估,都离不开数学的支持。接下来,我将带大家深入了解人工智能数学基础,包括微积分、线性代数、概率论、数理统计和最优化理论,并通过 P…...
Android Studio 安装 Continue插件
1、Android 插件Studio中安装Continue 2、从本地盘符安装 3、安装后发现Continue为空 Android studio中 Help -> Find Action->Choose Boot Java 设置 4、配置DeepSeek 参考https://juejin.cn/post/7464122534546407461...
【C++】类和对象(4)
目录 1. 类型转换 非explicit的单参数构造函数 示例 explicit的单参数构造函数 示例 不同版本的行为 示例 (单参数) 示例(多参数且其余参数有默认值 ) 示例(多参数且无默认值) 2. static成员变量…...
微信jdk 前端vue获取流程1、
参考链接: 企业微信的JSSDK,调用及使用方法_企业微信jssdk-CSDN博客 1、引用 <script src"//res.wx.qq.com/open/js/jweixin-1.2.0.js"></script> <script src"https://res.wx.qq.com/open/js/jweixin-1.2.0.js" referrerpolic…...
Linux进程7-signal信号处理方式验证、可重入函数举例、信号集函数验证、信号集阻塞验证
目录 1. signal函数 1.1进程接收到信号后的处理方式 1.2 signal 函数 1.2.1 signal 函数默认处理 1.2.2 signal 函数忽略处理 1.2.3 signal 函数自定义处理 1.2.4 signal 函数返回值 2.可重入函数 2.1如何判断函数是否可重入 2.2自定义信号处理函数举例 2.2.1 sle…...
使用Python在excel里创建柱状图
一、前言 通过使用Python的openpyxl库,在excel里创建柱状图。openpyxl库提供了创建Excel图表的功能,包括柱状图(Bar Chart)。 二、程序展示 1、导入相关模块,新建excel 新建excel后,在excel的第一列创建一些数据。 import op…...
计算机视觉进化论:YOLOv12、YOLOv11与Darknet系YOLOv7的微调实战对比
摘要 YOLO系列作为实时目标检测领域的重要里程碑,持续引领速度与精度的平衡发展。本文围绕YOLOv7(基于Darknet框架)、YOLOv11及YOLOv12,系统、深入地对比了三款模型的架构创新、微调策略、核心技术及应用场景。我们详细解析了三者…...
湖北理元理律师事务所:债务管理领域的平台化创新探索
随着中国居民负债率攀升至62%(央行2023年数据),债务管理从个体需求演变为社会性课题。湖北理元理律师事务所通过“法律科技金融”的融合模式,构建了国内首个全链条债务管理平台,其服务逻辑与行业价值值得深度剖析。 平…...
沐曦玩转 LMDeploy、XTuner 和 InternLM3
学习链接: https://aicarrier.feishu.cn/wiki/O84LwkiBriUU0NkDwurcSufhnVb 一 LMDeploy推理及验证 1.1 下载LMDeploy # 安装addict软件包 pip install addict mmengine mmengine-lite fire accelerate0.32.1 nvidia-ml-py# 解决LMDeploy对tranformers版本要求的…...
【Java面试笔记:进阶】26.如何监控和诊断JVM堆内和堆外内存使用?
监控和诊断JVM内存使用是优化性能和解决内存问题的关键。 1.JVM内存监控与诊断方法 1.图形化工具 JConsole:提供图形化界面,可直接连接到Java进程,查看内存使用情况。VisualVM:功能强大的图形化工具,但注意从Oracle JDK 9开始不再包含在JDK安装包中。Java Mission Contr…...
阿里云服务器云盘扩容
在阿里云服务器上在线扩容了云盘后,如果服务器内部查看容量没有变化,可能是由于分区和文件系统未正确扩展。以下是详细的解决步骤: 1. 确认扩容是否成功 在阿里云控制台检查磁盘容量是否已显示扩容后的新大小。如果控制台显示已扩容&#x…...
【ESP32】st7735s + LVGL移植
LVGL的移植 使用版本1、创建工程2、开始移植2.1、文件准备2.2、修改代码2.3、SDK配置编辑器 3、测试 使用版本 LVGL版本:8.3 链接点这里ESPIDF版本:4.4.8lvgl_esp32_drivers: 链接点这里ESP32型号:ESP32S3 1、创建工程 默认都会…...
Jackson 使用方法详解
Jackson 是 Java 生态中最流行的 JSON 处理库,也是 Spring Boot 的默认 JSON 解析器。它提供了高性能的 JSON 序列化(对象 → JSON)和反序列化(JSON → 对象)功能。以下是 Jackson 的全面使用指南。 1. 基础依赖 Mave…...
TensorFlow深度学习框架:从入门到精通的完整指南
🌟 TensorFlow核心优势 TensorFlow作为Google开发的顶级深度学习框架,具有三大独特优势: 工业级部署能力:支持从移动端到服务器的全平台部署完善的工具链:包含TensorBoard、TF Lite、TF.js等完整生态强大的社区支持&…...
Java 入门宝典--注释、关键字、数据类型、变量常量、类型转换
作者:IvanCodes 发布时间:2025年4月28日🐣 专栏:Java教程 哈喽,各位 CSDN 的小伙伴们!👋 这部分内容虽然基础,但 极其重要,是后续学习所有高级特性的基石。准备好了吗&…...
【含文档+PPT+源码】基于微信小程序的旅游论坛系统的设计与实现
项目介绍 本课程演示的是一款基于微信小程序的旅游论坛系统的设计与实现,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的 Java 学习者。 1.包含:项目源码、项目文档、数据库脚本、软件工具等所有资料 2.带你从零开始部署运行本套系统 …...
Android开发,实现一个简约又好看的登录页
文章目录 1. 编写布局文件2.设计要点说明3. 效果图4. 关于作者其它项目视频教程介绍 1. 编写布局文件 编写activity.login.xml 布局文件 <?xml version"1.0" encoding"utf-8"?> <androidx.appcompat.widget.LinearLayoutCompat xmlns:android…...
一种改进的YOLOv11网络,用于无人机视角下的小目标检测
大家读完觉得有帮助记得关注和点赞!!! 摘要 随着无人机(UAV)和计算机视觉技术的快速发展,从无人机视角进行目标检测已成为一个重要的研究领域。然而,无人机图像中目标像素占比极小、物体尺度变…...
linux离线安装zsh
下载zsh 下载仓库后解压 下载地址:https://github.com/zsh-users/zsh 离线安装 安装方法见INSTALL文件 ./configure --prefix[/usr/local] make make install...