- 博客(46)
- 收藏
- 关注
原创 测试工具开发(上)--前端开发
在测试的工作中,有时候会利用脚本去构造一些数据,我们希望能有一个前端界面加上功能按钮可以一键操作去构造我们需要的数据,现在测试的系统,业务数据需要引用一些基础数据,现在我们先写点简单的工具来构造这些基础数据,这样的话我们在回归的过程中相对可以节省一些时间,工具的实质其实就是提效,话不多说,开始吧。
2022-10-10 09:35:24 456
原创 力扣算法题:2的幂--Easy
给你一个整数 n,请你判断该整数是否是 2 的幂次方。如果是,返回 true ;否则,返回 false 。如果存在一个整数 x 使得 n == 2x ,则认为 n 是 2 的幂次方。示例 1:输入:n = 1输出:true解释:20 = 1示例 2:输入:n = 16输出:true解释:24 = 16示例 3:输入:n = 3输出:false示例 4:输入:n = 4输出:true示例 5:输入:n = 5输出:false提示:-231 <= n <= 2
2022-05-27 16:10:55 220
原创 力扣算法题:有效的完全平方数--Easy
给定一个 正整数 num ,编写一个函数,如果 num 是一个完全平方数,则返回 true ,否则返回 false 。进阶:不要 使用任何内置的库函数,如 sqrt 。示例 1:输入:num = 16输出:true示例 2:输入:num = 14输出:false提示:1 <= num <= 2^31 - 1来源:力扣(LeetCode)解题思路:如果用内置函数来做,会很简单,进阶的方式是不用内置函数,这个我还没去想,先用内置函数去做吧,就将目标数平方根后的数转为int类型
2022-05-27 15:38:50 179
原创 Python--字典的操作
字典是python中的一种数据结构,称为映射,字典的作用和列表类似,都是用来存储对象的容器,列表存储数据的性能很好,但是查询数据的性能很差,字典中每一个元素都有一个唯一的名字,通过这个唯一的名字可以快速的查找到指定的元素,在查询元素的时候,字典的效率是非常快的。字典中的每个对象都有一个唯一的名字,这个名字被称为key,通过key可以快速的查询value,这个对象称为value。新建一个空字典dic=dict()dic={}字典的值可以是任意对象,字典的键是任意的不可变对象且不能重复。创建新的字典
2022-05-09 20:51:26 917
原创 力扣算法题:存在重复元素II
给你一个整数数组 nums 和一个整数 k ,判断数组中是否存在两个 不同的索引 i 和 j ,满足 nums[i] == nums[j] 且 abs(i - j) <= k 。如果存在,返回 true ;否则,返回 false 。示例 1:输入:nums = [1,2,3,1], k = 3输出:true示例 2:输入:nums = [1,0,1,1], k = 1输出:true示例 3:输入:nums = [1,2,3,1,2,3], k = 2输出:false提示:1 &l
2022-05-06 20:32:31 275
原创 Python--列表的操作
列表是python中的一种数据结构,英文是list定义一个空列表有两种方法list_new = list()new_list = []#⚠️这两种定义方式都是可以的定义一个非空列表,列表中的元素是任意的,元素可以是任何类型list_new = [1,'hello',[1,3],False,{'name':'william'},{1,4},(3,5)]切片获取元素print(list_new[2:5])#打印结果:[[1, 3], False, {'name': 'william'}]
2022-05-06 15:10:53 964
原创 力扣算法题:重复的数字
给你一个整数数组 nums 。如果任一值在数组中出现 至少两次 ,返回 true ;如果数组中每个元素互不相同,返回 false 。示例 1:输入:nums = [1,2,3,1]输出:true示例 2:输入:nums = [1,2,3,4]输出:false示例 3:输入:nums = [1,1,1,3,3,4,3,2,4,2]输出:true提示:1 <= nums.length <= 105-109 <= nums[i] <= 109来源:力扣(LeetC
2022-05-05 20:42:11 686
原创 Python--字符串的操作
str 字符串对应的方法字符串一旦定义,其中的元素就不能更改string='hello world'⚠️将所有小写字母转为大写字母,转换后的新字符串和原字符串的内存地址是不一样的`print(string.upper())` #打印结果:HELLO WORLD⚠️将大写字母转为小写是用lower(),转换后的新字符串和原字符串的内存地址是不一样的string1="HELLO WORLD"print(string1.lower()) #打印结果:hello world统计字符串中某个
2022-05-05 20:03:03 671
原创 Python--类属性、实例方法、类方法、静态方法
class A: #定义一个类 # 类属性,直接在类中定义的属性是类属性 # 类属性可以通过类或者是类的实例都可以访问到 # 类属性只能通过类对象来修改,无法通过实例对象修改 count = 0 # 实例属性,通过实例对象添加的属性属于实例属性 # 实例属性只能通过实例对象来访问和修改,类对象无法访问修改 def __init__(self, name): self.name = 'william' # 实例方法
2022-05-02 23:45:11 504
原创 Python--模块化
模块化模块化指将一个完整的程序分解为一个一个小的模块;通过将模块组合,来搭建一个完整的程序;不采用模块化,统一将所有的代码编写到一个文件中;采用模块化,将程序分别编写到多个文件中;模块化的优点1、方便开发 2、方便维护 3、模块可以复用;在python中一个py文件就是一个模块,要想创建模块,实际上就是创建一个python文件;注意:模块名要符合标识符的规范在一个模块中引入外部模块1、import 模块名2、import 模块名 as 模块别名可以引入同一个模块多次,但是模块的实例只会
2022-05-01 20:01:48 714
原创 Python内置函数--isinstance()、issubclass()
isinstance()、issubclass()介绍python中有两个内置函数,可能不是很常用,但是还是要知道这两个内置函数是干嘛用的#用来检查一个对象是否是一个类的实例isinstance(__0bj,__class_or_tuple)#用来检查一个类是否是另一个类的子类issubclass(__cls,__class_or_tuple) ...
2022-05-01 14:48:11 652
原创 Python3--property装饰器(面向对象三大特性之封装)
class Person: def __init__(self,name,age): self._name = name self._age = age #proper装饰器,用来将一个get方法,**转换为对象的属性** #添加为property装饰器以后,我们就可以像调用属性一样使用get方法 #使用property装饰的方法,方法名必须和属性名是一样的 @property def name(self,name): return self._name #setter方法的装饰
2022-04-30 19:33:56 305
原创 力扣算法题:验证回文串
给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串。示例 1:输入: “A man, a plan, a canal: Panama”输出: true解释:“amanaplanacanalpanama” 是回文串示例 2:输入: “race a car”输出: false解释:“raceacar” 不是回文串来源:力扣(LeetCode)class Solution: def isPalindrome(
2022-04-30 15:24:28 327
原创 力扣算法题:只出现一次的数字
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,1]输出: 1示例 2:输入: [4,1,2,1,2]输出: 4来源:力扣(LeetCode)解题思路:不增加内存空间的情况下,将目标数组使用内置函数sort()进行排序,根据题目可知,数组中的元素个数一定是是奇数个,那就考虑当元素个数为1时的情况和元素大于1时的情况即可,当元素个数为1个时
2022-04-30 15:13:08 328
原创 力扣算法题:爬楼梯
假设你正在爬楼梯。需要 n 阶你才能到达楼顶。#### 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?示例 1:输入:n = 2输出:2解释:有两种方法可以爬到楼顶。1 阶 + 1 阶2 阶示例 2:输入:n = 3输出:3解释:有三种方法可以爬到楼顶。1 阶 + 1 阶 + 1 阶1 阶 + 2 阶2 阶 + 1 阶来源:力扣(LeetCode)解题思路:当n=1时,方法有1种当n=2时,方法有2种当n=3时,方法有3种当n=4时,方法有5
2022-04-28 21:43:06 165
原创 力扣算法题:X的平方根
给你一个非负整数 x ,计算并返回 x 的 算术平方根 。由于返回类型是整数,结果只保留 整数部分 ,小数部分将被 舍去 。注意:不允许使用任何内置指数函数和算符,例如 pow(x, 0.5) 或者 x ** 0.5 。来源:力扣(LeetCode)解题思路:这题是看题解,这里使用了二分查找的方法,使用双指针class Solution: def mySqrt(self, x: int) -> int: #x的平方根一定在0到x之间的数,那就利用二分查找来找到这个数,先定义最
2022-04-28 21:25:41 325
原创 力扣算法题:二进制求和
给你两个二进制字符串,返回它们的和(用二进制表示)。输入为 非空 字符串且只包含数字 1 和 0。解题思路:先将两个二进制数转为十进制,再将相加后得出的十进制数转化为二进制。二进制转为十进制:int(a,2)这里的a是二进制字符串十进制转为二进制1:bin(a)这里的a是十进制数,如果使用bin()这个函数,转为的二进制为“0bxxxxxx”,这里我们需要格式化一下。十进制转为二进制2:‘{:b}’.format(a)这样就转化后的二进制就是不带0b前缀的了。class Solution:
2022-04-28 20:55:03 256
原创 力扣算法题:加一
题目:给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。来源:力扣(LeetCode)我的解题思路:考虑到数组的长度,非空数组最少也有一个元素,数组中会有一个元素、有两个元素、有三个元素,甚至有更多的元素,当然有一个元素的时候非常好处理,直接判断元素是否是9然后再处理即可,因为只有元素是9时加了1之后会变成10,而数组只能存储单个数字,所以要对元素为9时做进一步处理
2022-04-27 14:52:43 368
原创 力扣算法题:最后一个单词的长度
题目:给你一个字符串 s,由若干单词组成,单词前后用一些空格字符隔开。返回字符串中 最后一个 单词的长度。单词 是指仅由字母组成、不包含任何空格字符的最大子字符串。class Solution: def lengthOfLastWord(self, s: str) -> int: new_s = s.strip().split(" ") return len(new_s[-1])先使用strip()方法将字符串的首尾空格字符去掉,再使用split()
2022-04-27 12:48:44 134
原创 力扣算法题:最大子数组合
给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。子数组 是数组中的一个连续部分作者:LeetCode-Solution链接:https://leetcode-cn.com/problems/maximum-subarray/solution/zui-da-zi-xu-he-by-leetcode-solution/来源:力扣(LeetCode)著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。#根据java题解变化而来,
2022-04-26 15:30:44 224
原创 力扣算法题:移除元素--双指针解法
给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。来源:力扣(LeetCode)题目解决方法来自力扣的题解,非个人解答。class Solution: def removeElement(self, nums: List[int], val: int) -> int:
2022-04-24 21:35:34 221
原创 力扣算法题:有效的括号-使用哈希表解决
class Solution: def isValid(self, s: str) -> bool: if len(s)%2!=0: return False #定义一个哈希map,键为右括号,值为左括号 pairs = { ")":"(", "]":"[", "}":"{" } #定义一个空列表也可以写作stack=l
2022-04-24 20:04:43 283
原创 力扣算法题:最长公共前缀-横向扫描
class Solution: def longestCommonPrefix(self, strs: List[str]) -> str: if not strs: return "" #定义前缀为数组中第一个字符串,并计算数组长度赋值给count prefix, count = strs[0], len(strs) #遍历余下的数组元素 for i in range(1,count): #通过l
2022-04-23 16:53:36 257
原创 力扣算法题:罗马数转整数
class Solution: SYMBOL_VALUES = { 'I':1, 'V':5, 'X':10, 'L':50, 'C':100, 'D':500, 'M':1000, } def romanToInt(self, s: str) -> int: #先定义一
2022-04-23 15:44:58 266
原创 macos设置终端pip安装包在pycharm中使用
macos设置终端pip安装包在pycharm中使用当python和作为IDE的pycharm环境都好了之后,需要在终端现将python加入系统环境变量,步骤如下:vim .bash_profile在这个配置文件的最后将python加入系统环境变量export PATH=$PATH:/Library/Frameworks/Python.framework/Versions/3.7/bin然后保存退出并在终端执行source .bash_profile使设置生效接着打开pycharm先在pych
2022-04-17 19:45:34 1643
原创 MySQL:SQL语句中出现的offset的作用
在刷Leetcode的sql题目https://leetcode-cn.com/problems/second-highest-salary/select (select distinct salary from Employee order by salary desc limit 1 offset 1 ) as SecondHighestSalary;这里出现了offset,在以往面试中问到的sql题目,基本都是连接,去重,排序,没有使用过offset,查找了下这个offset的用法,意思是跳过
2022-03-08 19:29:09 1351
原创 MySQL中的DATEFDIFF函数
MySQL中的DATEFDIFF函数获取两个日期的时间间隔为1天:datediff(w1.recordDate,w2.recordDate)=1select w1.id from Weather w1,Weather w2 where datediff(w1.recordDate,w2.recordDate)=1 and w1.Temperature > w2.Temperature;
2022-03-08 18:01:26 3237
原创 vue3+django+elementplus 前后端分离项目开发实例(上):后端开发
声明一下,此次开发使用的是macOS系统,以下所有操作实例都是在macOS中进行一、后端开发(1)使用了python比较著名的一个web开发框架-Django框架,在接口设计中使用了Django下的restframework框架需要安装的模块:第一步:我的电脑装的是pyton3以及pip3,所在在终端安装django使用如下命令 pip3 install django第二步:pip3 install djangorestframework. //序列化使用,为了将对象转化为json数据传给
2022-02-19 19:36:02 4046 1
原创 本地开发项目配置只访问到本地环境
本地开发项目配置只访问到本地环境背景内部的一个自动化测试平台需要加上一些功能模块,需要在本地进行开发,但是在访问本地环境后跳出来登录界面,是需要钉钉账号登陆的,钉钉账号登录之后就又跳转到了远程服务,而不是本地。解决方法方法一:获取远程服务的登录token,放在本地服务的请求中加入token后请求背景内部的一个自动化测试平台需要加上一些功能模块,需要在本地进行开发,但是在访问本地环境后跳出来登录界面,是需要钉钉账号登陆的,钉钉账号登录之后就又跳转到了远程服务,而不是本地。解决方法方法一:获取远程服务的
2022-01-11 15:46:07 378
原创 算法--12.堆排序前传-树与二叉树
什么是树?树是一种数据结构。 比如:目录结构树是一种可以递归定义的数据结构树是由n个节点组成的集合:1、如果n=0,那这就是一棵空树2、如果n>0,那存在1个节点作为树的根节点,其他节点可以分为m个集合,每个集合本身又是一棵树重要概念根节点、叶子节点树的深度(高度)树的度孩子节点/父节点子树什么是二叉树二叉树:度不超过2的树每个节点最多有两个孩子节点两个孩子节点被区分为左孩子节点和右孩子节点如下图满二叉树与完全二叉树满二叉树:一个二叉树,如
2021-06-08 10:16:53 103
原创 算法--11.快速排序
# -*- coding:utf-8 -*-# @Time :2021/5/28 14:42# @Author :wangwei# @Software :PyCharmdef partition(li,left,right): tmp = li[left] while left < right: while left < right and li[right]>=tmp:#从右面找比tmp小的数 right -=
2021-05-31 10:28:54 93
原创 算法--10.插入排序
插入排序以扑克牌为例进行讲解初始时手里(有序区)只有一张牌每次(从无序区)摸一张牌,插入到手里已有牌的正确位置如下图:假设我们现在手里有这样几张牌[2,1,5,3,7,9,8,4,6],2是我们手里的牌,而2后面的牌是我们要依次去摸的牌,规定我们每次只能摸一张牌,且手里的牌和摸到的牌需要根据从小到达顺序排列好,那么我们将实际问题以代码的形式展示:def insert_sort(li): for i in range(1,len(li)):#摸到的牌的下标,摸牌的次数
2021-05-25 22:39:47 95
原创 算法--9.选择排序(Select sort)
选择排序什么是选择排序一趟排序记录最小的数,放到第一个位置再一趟排序记录列表无序区最小的数,放到第二位置…算法关键点:有序区和无序区最小数的位置,记录无序区最小数的位置,默认的无序区的第一个数为最小数,通过后面的数和前面的数比较,最后更新最小数的位置,继续遍历完之后就会保存成一个有序的数列。实际举例def select_sort(li): for i in range(len(li)-1): min_location = i for j in ran
2021-05-23 14:09:43 134
原创 算法--8.冒泡排序(Bubble Sort)
什么是冒泡排序?冒泡排序(Bubble Sort)列表每两个相邻的数,如果前面比后面大,则交换这两个数一趟排序完成后,则无需区减少一个数,有序区增加一个数代码关键点:趟、无序区范围举例图中是一个列表,列表中的元素排序以及对应的索引如图所示:当进行第i趟的排序时无序区的范围(target_list[0,n-i],元素是n-i个,无序区最后一个数的索引是n-i-1)需要进行排序的趟数:len(target_list)-1解析:第0趟排序第0个元素是7,此时指针指在7的位置,比第1个元素
2021-05-16 12:56:59 139
原创 算法--7.列表排序
什么是排序?排序:将一组“无序”的记录列表调整为“有序”的记录列表。什么是列表排序?列表排序:将无序列表变为有序列表输入:列表输出:有序列表排序的种类升序降序内置排序函数sort()常见排序算法一般:冒泡排序、选择排序、插入排序常用:快速排序、堆排序、归并排序其他:希尔排序、计数排序、基数排序...
2021-05-16 11:23:28 139
原创 算法--6.二分查找(Binary search)
什么叫二分查找?二分查找:又叫折半查找,从有序列表的初始候选区lis[0,n]开始(初始候选区中的元素就是列表中的所有元素),通过对待查找的值与候选区中间值的比较,可以使候选区减少一半。二分查找实例二分查找的实例:在列表[1,2,3,4,5,6,7,8,9]中找出3所在的索引。通过代码运行的截图可以看出该列表的元素3的索引位置是2。def binary_search(target_list, target_value): left = 0 right = len(target_li
2021-05-15 23:03:05 330
原创 算法--5.顺序查找
什么是查找?在一些数据元素中,通过一定的方法找出与给定的关键字相同的数据的过程。什么是列表查找?列表查找也可以叫做线性表查找,就是从列表中查找元素输入:列表,待查找元素输出:元素下标(当元素不存在时返回None什么是内置列表查找函数?index()什么是顺序查找?顺序查找(Linear Search):也叫线性查找,从列表第一个元素开始,顺序进行搜索,直到找到元素或搜索到元素列表的最后一个元素为止。下面使用代码来展示一下顺序查找:def linear_search(target_l
2021-05-14 12:50:39 308
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人