自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(86)
  • 问答 (2)
  • 收藏
  • 关注

原创 测试与调试区别

②从目的来说执行测试可以发现由于软件缺陷引起的失效。而调试是发现、 分析和修复这些缺陷的开发活动。③特殊情况下,如敏捷测试中,调试也可由测试人员进行。不满足设计/需求文档造成失效,失效执行后产生缺陷。①测试一般由测试人员进行,调试由开发人员进行。

2023-04-02 21:38:48 395 2

原创 selenium之常用定位

网页自动化常见操作

2022-08-12 15:03:01 387

原创 python模块

大家好,这里是长弓今天我们来讲解python中的模块概念 目录什么是模块使用第三方模块什么是模块要学一个东西,首先要问一个问题:这个东西是什么?那模块是什么呢?我们之前保存python代码的.py后缀文件就是模块,又有什么用呢?①使用模块,我们可以避免反复写代码,增加代码的复用性。②使用别人写的模块,我们可以快速完成项目功能的实现。③使用模块,我们可以解决函数名重复的问题,不同...

2022-03-28 13:11:44 1109 2

原创 python函数式编程

大家好,这里还还还是长弓今天我们来讲讲python中的函数式编程 函数式编程有些同学疑惑了,我们已经学了函数,为什么还要学这个函数式编程呢?两者的区别是什么呢?函数是一个语法,函数式编程是一种编程的思路是将本是CPU加减乘除的过程封装成一个个函数,调用函数的过程,更整体,更人性 函数式编程允许传入一个函数作为函数...

2022-03-25 23:50:02 4415 2

原创 python高级特性

大家好,这里是长弓前几篇我们学习了python的基础语法和函数开发应用时,我们都期望一个较高的开发效率及较少的代码量因此,今天我们来学python的高级特性 切片list与tuple切片我们之前学习了list和tuple,常常需要提取其中的元素,我们实践一下我们先看前两行,最基础的,我们构建一个新list,从L中取出元素放进去但这个方法是不可以延申的,比如我们想取出3个数据,或4个数...

2022-03-23 22:57:21 1358 8

原创 python函数

大家好,这里是长弓今天我们来讲解Python中函数的概念函数要学习函数,我们首先要了解为什么会产生函数,函数的产生是为了增加代码的复用性比如我们如果需要经常比较两个数的大小,每一次都写一个代码是不便捷的,我们希望有一个功能,可以写了一次后,之后调用这个代码就可完成此功能的实现。print('请输入两个数')a = input()b = input()if a > b: print(a)else: print(b)python内置函数

2022-03-22 21:52:47 1018

原创 python基础语法

大家好,这里还是长弓今天我们继续学习python上一篇我们讲了python的输入和输出今天我们首先了解python代码是如何运行的呢?代码如何执行——编译器有两种语言的学习经验的同学会发现,每种语言的语言可能是相似的,但都不同的。比如输出: 你真棒,学习的同学//c语言#include<stdio.h>int main(){ printf("你真棒,学习的同学"); return 0;}#pythonprint("你真棒,学习的

2022-03-21 22:19:39 14727 11

原创 整数的不同进制

大家好,这里还是长弓我们常常听到程序员一定懂二进制 那什么是二进制呢?十进制在讲二进制之前,我们先讲一个我们常用的十进制,也就是“个 十 百 千 万”我们学习的加减乘除就是基于十进制的基础上,比如4+3=7,9+8=17.9+8就是逢十进一,这就是十进制的本质。顾名思义,二进制就是逢二进一。二进制因此,对应十进制的“个 十 百 千 万”,二进制就是”0 2 4 8 16“,为2的幂函数。...

2022-03-20 14:16:33 851

原创 python基础输入与输出

大家好,这里是长弓上一篇我们讲解了python的安装和特性今天我们来学习python的基础首先我们要确认之前的安装没有问题:输入CTRL+r

2022-03-19 15:43:10 9686

原创 python了解与安装

python作为一种高级语言,什么是高级语言呢?比如我们常见的C++/C语言,就是低级语言,那两者有什么差别呢? 低级语言更接近底层,效率更高,而高级语言执行效率相对低但开发效率很高。了解了之后我们先需要安装pythonwindows下安装:64位https://www.python.org/ftp/python/3.8.0/python-3.8.0-amd64.exehttps://ww...

2022-03-18 22:02:49 658

原创 树的基本术语

首先我们需要知道树的概念:树是包含n个结点的有限集合。节点的度:指节点所拥有的子树个数。树的度:树内个节点的度的最大值。叶子节点:指度为0的结点。分支节点:指度不为0的结点。结点的层次:从根算起,根结点的层次为1,逐层加1.树的深度:树中的最大层次。有序树和无序树:取决于我们是否认定它为有序,如果按照有序来看,两颗树中的元素,位置都相同才认为是相同的;无序树只需要元素相同即可。森林:互不相交树的集合。...

2022-03-05 17:52:37 522

原创 明天面试,半夜睡不着复习下STL底层实现

序列容器1.stringclass string{ string(const char* str = ""){ if(str == nulptr){ assert(false); return; } _str = new char[strlen(str) + 1]; strcpy(_str,str); } string(const string& s) :_str(new char[strlen(s.

2022-02-21 02:43:25 148 1

原创 vim,makefile,gdb工具讲解

一.vim1.vim是什么呢?我们初学c语言时,多半要学习vs(visual studio)工具,这个工具中我们编辑代码或者调试代码来说都是可以在这一个软件中完成的,它是一个多功能的软件。而Linux中我们需要学习多个工具来实现这整个流程,vim是用来编辑代码的工具。2.vim的多模式?vim工具中有多个模式,共10几个模式,为了实现不同场景下的代码编辑,我们最常用的有正常(命令)模式,插入模式和末行模式三个模式。正常模式我们可以对已有代码进行删除,拷贝移动(yy拷贝dd剪贴p粘贴)

2022-02-20 15:34:42 874 1

原创 2.剑指 Offer 10- I. 斐波那契数列(C++)

链接:力扣方法:使用递归然后来看代码class Solution {public: int fib(int n) { int mod = 1000000007; if(n<2) { return n; } else{ return ((fib(n-1)+fib(n-2))%mod); } }};最终能跑过小一半用例

2022-01-16 21:40:20 276 1

原创 C语言——程序的编译与链接

翻译环境和执行环境C语言的实现需要两种环境:把源代码转换为可执行的机器指令的翻译环境。 用于实际执行代码的执行环境。那什么是编译与链接呢?翻译环境中:一个个源文件通过编译器转化为目标文件,多个目标文件再通过链接器形成一个可执行程序。(翻译过程如图)再细分,编译过程同样分为几个阶段。1.预处理 gcc -E test.c -o test.i 2.编译gcc -S test.c 3.汇编gcc -c test.c我们先来看看执行环境做了什么,然后详细了解上...

2021-12-26 15:39:58 704 1

原创 数据结构初阶——排序

1.排序的概念排序就是使一串数据按照特定的规律比较,进行排列出来的操作。常见的排序算法//排序实现的接口void InsertSort(int* a,int n); //插入排序void ShellSort(int* a,int n); //希尔排序void SelectSort(int* a, int n); // 选择排序void AdjustDwon(int* a, int n, int root);void HeapSort(int* a, in.

2021-12-19 17:02:08 1098 1

原创 MySQL——事务管理

当不控制创建,更新,读取,删除时,会出现什么问题?需要在购买后及时更新数据,避免发生错误。什么是事务?事务是一组数据库操作语句(DML),一组要么全部成功,要么全部失败。事务是多个操作构成的实现一个事情的整体。一个MySQL数据库,肯定不是一个事务在运行,所以当出现冲突时,那些执行一半的sql语句组成的事务,应该怎么办呢?备注:sql语句:DDL(定义数据库对象,表与列), DML(用于操作数据库表中的记录数据), DQL(查询数据), DCL(定义访问权限和安.

2021-12-17 20:56:06 1473

原创 MySQL——用户管理

如果我们只使用root用户,会存在安全隐患。1.用户1.用户信息MySQL中的用户,都储存在系统数据库mysql的user表中。host: 表示这个用户可以从哪个主机登陆,如果是localhost,表示只能从本机登陆 user: 用户名 authentication_string: 用户密码通过password函数加密后的2.创建用户create user '用户名'@'登陆主机/ip' identified by '密码';3.删除用户drop .

2021-12-16 15:52:06 971

原创 MySQL——视图特性

视图是一个虚拟表,其内容由查询定义。1.基本使用create view 视图名 as select语句;//创建视图语法不论修改视图,还是基表数据都会彼此影响删除视图

2021-12-16 09:43:28 611

原创 MySQL——索引

1.倘若没有索引索引可以提高一个海量数据的检索数据常见索引有四种,主键索引,唯一索引,普通索引,全文索引海量数据查询其中某一数据很耗时,需要创建索引。alter table 表名add index(字段);2.认识磁盘MySQL和磁盘MySQL给用户提供储存服务,而储存的数据存放在磁盘这个外设中。扇区数据本质存放在磁盘的扇区中,数据库文件很大,一定需要占据多个扇区。定位扇区..

2021-12-15 11:17:31 368

原创 MySQL——表的内连和外连

1.内连接内连接是使用where子句对两表形成的笛卡尔积进行筛选。

2021-12-14 11:15:32 377

原创 MySQL——内置函数

1.日期函数

2021-12-13 10:58:04 445

原创 MySQL——表的增删查改

增删查改CRUD:Create(创建),Retrieve(读取),Update(更新),Delete(删除)一.Create创建一个表用来保存学生信息1.单行数据 + 全列插入2.多行数据 + 指定列插入3.插入否则更新当主键或唯一键发生冲突,可以选择进行同步更新操作语法:INSERT INTO students (id, sn, name) VALUES (1, 1, 'zhang')ON DUPLICATE KEY UPDATE sn = 1, na...

2021-12-13 09:36:19 546

原创 MySQL——表的约束

约束最关键的数据类型,但是为了更好的保证数据的合法性,我们需要了解一些额外的约束。1.空属性我们先来看它的实操,再来讲解语法。比如我们需要创建一个表包含班级名和班主任名,那我们加了not null 后有什么变化呢?我们创建一个mytb2来对比一下。我们可以看出加了后属性不为空,不加字段为空。2.默认值表中某一数据可能经常的会使用一个值,我们可以把它设置为默认值,需要时直接使用就好。比如我们创建person1表,表中包含姓名年龄性别。我们可以...

2021-12-12 10:08:06 319

原创 MySQL——表的操作

目录创建表修改表删除表创建表创建表的语法CREATE TABLE table_name (field1 datatype,field2 datatype,field3 datatype) character set 字符集 collate 校验规则 engine 存储引擎;field 表示列名 datatype 表示列的类型 character set 字符集,如果没有指定字符集,则以所在数据库的字符集为准 collate 校验规则,如果没有指定校验规则,则以所

2021-12-11 14:53:02 75

原创 MySQL——数据类型

数据类型分类数值类型文本二进制类型时间日期string类型

2021-12-11 14:46:26 457

原创 MYSQL—数据类型

写好了,手机发不了,稍后更新

2021-12-10 21:14:57 301

原创 MySQL——库的操作

创建数据库我们先来看数据库创建的语法:CREATE DATABASE [IF NOT EXISTS] db_name [create_specification [, create_specification] ...]create_specification:[DEFAULT] CHARACTER SET charset_name[DEFAULT] COLLATE collation_name大写的表示关键字 [] 是可选项 CHARACTER SET: 指定数据库采用的字符集

2021-12-09 09:20:32 313

原创 MySQL——数据库基础

目录一.什么是数据库二.主流数据库三.基本使用一.什么是数据库文件保存数据有如下几点缺点文件的安全性问题 文件不利于数据查询和管理 文件不利于存储海量数据 文件在程序中控制不方便因此为了解决以上问题,更有效的管理数据,数据库应运而生。二.主流数据库SQL Sever: 微软的产品,.Net程序员的最爱,中大型项目。 Oracle: 甲骨文产品,适合大型项目,复杂的业务逻辑,并发一般来说不如MySQL。 MySQL:世界上最受欢迎的数据库,属于甲骨文,并

2021-12-08 19:30:20 375

原创 STL总结

一.STL的本质STL是标准模板库,是高效的C++程序库,增加了代码的复用率,使开发更高效。二.STL的六大组件容器STL的容器,可以分为序列式容器和关联式容器。算法算法:问题的求解步骤,以有限的步骤,解决数学或逻辑中的问题。STL中通用算法总共有70多个,主要包含:排序,查找,排列组合,数据移动,拷贝,删除,比较组合,运算等。...

2021-12-07 09:53:13 809

原创 C++类型转换

目录一.C语言中的类型转换二.为什么C++需要四种类型转换三.C++强制类型转换一.C语言中的类型转换当运算符左右类型不同,就需要类型转化。C语言有两种类型转换:隐式类型转换和显示类型转换。隐式类型转化是编译器在编译阶段自动进行,能转就转,不能转就编译失败。显示类型转化需要程序员自己处理。int main(){ //隐式类型转换 int i = 1; double d = i; printf("%d,%.2f\n",i,d);

2021-12-06 16:17:38 470

原创 C++智能指针

目录一.为什么需要智能指针二.内存泄漏三.智能指针的使用及原理一.为什么需要智能指针1.动态申请的空间,没有释放就会存在内存泄漏的问题。2.如果在malloc和free之间存在抛异常,那么还是会造成内存泄漏。二.内存泄漏内存泄漏概念及其危害内存泄漏是动态开辟后未释放已经不再使用的内存,失去了对该段内存的控制,造成了空间的浪费。长期运行的程序出现动态内存会使程序相映越来越慢,最终卡死。void MemoryLeaks(){// 1.内存申请了忘记释

2021-12-05 21:55:33 286

原创 C++异常

一.C语言传统的处理错误的方式传统的错误处理机制1.终止程序,如assert。2.返回错误码,需要程序员自己去查找对应的错误。二.C++异常概念异常是一种处理错误的方式,当一个函数发现自己无法从护理的错误就抛出异常,让调用者处理这个错误。throw: 当问题出现时,程序会抛出一个异常。这是通过使用 throw 关键字来完成的。catch: 在您想要处理问题的地方,通过异常处理程序捕获异常.catch 关键字用于捕获异常,可以有多个catch进行捕获。try: try 块中的代码

2021-12-05 20:44:28 78

原创 C++11

简介,规定了C++的语法,相比于C++98新增了新语法使开发更高效,因此我们要学习它新增的规定。

2021-12-05 15:45:49 678

原创 哈希表概念

哈希概念哈希是为了实现快速查找的一种方法,时间复杂度为O(1),通过哈希函数将元素的储存位置与它的关键码之间建立一一映射的关系,因次可以快速找到该元素。比如储存数据集合,{1,2,3,4,5,8}哈希函数设置为hash(key) = key%capacity,capacity是储存空间的大小。(此时capacity为10)但我们会发现当插入,11,21,1这些元素时,会映射到相同的哈希地址,这种情况叫做哈希冲突。为了解决这一问题,我们需要设置合理的哈希函数。哈希冲突的解决有两种.

2021-12-03 17:56:12 157

原创 15.二叉搜索树

二叉搜索树概念二叉搜索树需要具备以下性质:若它的左子树不为空,则左子树上所有节点的值都小于根节点的值若它的右子树不为空,则右子树上所有节点的值都大于根节点的值它的左右子树也分别为二叉搜索树按照概念可知如图就是二叉搜索树。二叉搜索树的实现template<class T>struct BSTNode{ BSTNode(const T& data = T()) :_pLeft(nullptr),_pRight(nullptr),_d.

2021-11-29 11:04:10 81

原创 14.C++多态

目录多态概念多态的构成抽象类多态的原理多态概念什么是多态呢?就是针对不同对象时对同一个方法接口产生不同的结果。就好像抢手气红包,不同人(对象)抢红包(方法接口)抢到的钱不同(不同的结果)。多态的构成多态的构成需要满足两个条件:1. 必须通过基类的指针或者引用调用虚函数2. 被调用的函数必须是虚函数,且派生类必须对基类的虚函数进行重写class PersonA{public: virtual void LuckmMoney() {

2021-11-28 16:12:05 181 1

原创 10.list常见接口及底层实现

目录1.list常见接口使用2.list模拟实现1.list常见接口使用//list构造std::list<int> l1; // 构造空的l1std::list<int> l2 (4,100); // l2中放4个值为100的元素std::list<int> l3 (l2.begin(), l2.end()); // 用l2的[begin(), end())左闭右开的区间构造l3std::list<int> l4 (l3); /

2021-11-26 16:22:37 892 1

原创 9.vector接口及底层实现

1.vector常见接口及样例1.1vector常见的构造接口及样例使用(constructor)构造函数声明 接口说明vector()(重点) 无参构造vector(size_type n, const value_type&...

2021-11-26 13:51:55 455

原创 构造函数和拷贝函数调用顺序

构造函数和拷贝函数调用顺序Class A;Class B;void F() { A a; B b;}//我们定义了a,b两个类,那么a,b构造函数的调用顺序和析构函数的顺序是怎样的呢?构造顺序是按照语句的顺序进行构造,因此构造函数调用的顺序是先调用a,后调用b。析构是程序结束时进行的操作,顺序和构造相反,因此为b,a。整体的顺序是ab构造,然后ba析构。下面我们单看析构顺序C c;int main(){A a;B b;static D.

2021-11-22 17:34:49 638

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除