- 博客(191)
- 资源 (1)
- 收藏
- 关注
原创 mac安装yarn
对于国内用户来讲,不友好的就是网速的问题,经常断,make install太慢。特点:专业(伪),命令不太好记,网速确实比第一种好很多。命令短,可以很快的操作。第一种:使用homebrew进行安装操作。第二种:使用脚本命令。
2024-01-21 19:46:38
862
原创 MOJO中导入python模块
在Mojo中使用Python时不需要担心内存管理问题。一切都可以正常工作,因为Mojo从一开始就是为Python设计的。例如,有一个名为mypython.py的Python文件。
2024-01-15 23:26:50
670
原创 MOJO交互
Mojo不仅非常适合编写高性能代码,而且还允许我们利用庞大的Python库和工具生态系统。有了无缝的Python互操作性,Mojo可以使用Python做它擅长的事情,尤其是gui,而不会牺牲关键代码的性能。让我们以经典的Mandelbrot集合算法为例,在Mojo中实现它。本教程展示了Mojo的两个方面。首先,它表明Mojo可以用于为不规则应用程序开发快速程序。它还展示了如何利用Python来可视化结果。
2024-01-15 23:12:20
445
原创 MOJO基础语法
尽管Mojo仍在开发中,还不是Python的完整超集,但我们已经构建了一种机制,可以按原样导入Python模块,因此您可以立即利用现有的Python代码。另一种选择是将参数声明为owned,这为函数提供了值的完全所有权(它是可变的并且保证唯一的)。方法可以使用python中的def 方法声明,也引入了fn 关键字声明方法,这两者使用方式会有一些区别。fn声明的方法中,可以不用声明变量类型,可以自动推断变量的类型,如下图case。虽然在函数体中声明的变量不需要类型,但fn函数的参数和返回值需要类型。
2024-01-14 22:19:53
833
原创 MOJO语言的诞生
传统的编译器技术如LLVM和GCC并不适合现有深度学习编程语言的发展迭代,无法完全支持现代芯片架构。如今,专用机器学习加速器的标准技术是MLIR。MLIR是一个相对较新的开源编译器基础架构,最初由Google(其主要负责人转到Modular)启动,已在机器学习加速器社区广泛应用。MLIR的优势在于它能够构建领域特定编译器,特别是用于不是传统CPU和GPU的奇怪领域,例如AI ASIC、量子计算系统、FPGA和定制硅。
2024-01-14 20:35:58
430
原创 Iterator和ListIterator
Iterator接口是对collection进行迭代的迭代器,ListIterator接口是其子接口。它们都是遍历集合的工具。Collection依赖于Iterator,其实现类必须实现iterator()函数,返回一个Iterator对象.ListIterator是专门遍历List而存在的。
2022-11-06 16:12:28
205
原创 List类使用
ArrayLIst是一个其容量可以动态增长的动态数组,继承了AbstractList,实现了List、RandomAccess, Cloneable, java.io.Serializable。ArrayList的操作不是线性安全的,一般在单线程中使用。多线程中一般使用Vector或者CopyOnWriteArrayList。LinkedList是一个继承于AbstractSequentialList的双向链表。它也可以被当作堆栈、队列或双端队列进行操作。
2022-11-06 11:00:42
365
原创 final关键字
final可以用来修饰:类、方法、变量final修饰类:此类不可被继承。final修饰方法:此方法不可被重写。final修饰变量:此时的“变量”可视为常量final修饰属性。可以考虑赋值的位置有:显式初始化,代码块中赋值,构造器中初始化。final修饰形参。表明此形参是常量,调用方法时,给常量形参赋值一个实参,一旦赋值以后,只能在方法体内使用此形参,但不能进行重新赋值。用来修饰属性:全局常量。
2022-10-23 21:59:35
97
原创 abstract-抽象类和抽象方法
abstract关键字可以修饰:类,方法被修饰的类称为抽象类该类不能实例化抽象类中一定有构造器,便于子类实例化时调用。实际开发中,一般会提供抽象类的子类,让子类实例化。被修饰的方法称为抽象方法抽象方法只有方法的生命,没有方法体。包含抽象方法的类一定是抽象类;但是,抽象类不一定包含抽象方法。子类重写了抽象父类所有的抽象方法后,才可以实例化;子类若没有重写父类所有抽象方法,需要使用abstract关键字修饰。
2022-10-23 21:51:30
172
原创 toString()方法
toString()方法在Object类中定义,返回值是String,返回类名和它的引用地址。在进行String与其它类型数据集的连接操作时,自动调用toString()方法。可以根据需要在用户自定义类型中重写toString()方法。如String类重写了toString()方法,返回字符串的值。//相当于System.out.println(s1.toString());基本数据类型转换为String类型时,调用了对应包装类的toString()方法。
2022-10-23 20:54:10
433
原创 JDBC连接不上本地数据库
突然想到,pom.xml文件里面的mysql驱动依赖包和idea 中database的驱动版本不一致,改为一致,问题解决。更换回原来的5版本后测试连接成功,看来JDBC连接数据库报错不是驱动版本的问题。mysql驱动从5切换到8.0.21版本后,连接数据库报错。查询本地数据库版本为8.0.20。
2022-09-10 23:11:50
784
原创 第三方工具与框架集成
BDD:行为驱动开发,也称验收测试驱动开发(ATDD)。基于用户Story 敏捷测试或实例化需求。CI:持续集成框架python中很多工具可以实现BDD,有两个主要的工具是Behave和Lettuce。编写feature文件原则:GWT(Given-When-Then)feature文件场景大纲中的step需要分别进行定义。step定义文件保存在feature文件所在路径的子目录steps下。例如:环境配置运行feature之前,需要创建一个环境配置文件,配置Behave常用配置,以及step之
2022-06-13 21:26:30
176
原创 Selenium WebDriver的高级特性
通过WebDriver的ActionChains类实现。通过ActionChains类,模拟同时按下shift+n键。鼠标事件move_to_element()可以将光标从当前位置移动到指定位置。双击操作double_click方法实现双击。鼠标拖动通过drag_and_drop()实现鼠标的拖放操作。调用JavaScriptWebDriver类包含的相关方法如下:当测试脚本找不到“promo_banner”元素时,程序就调用save_screenshot()方法来自动截屏,并
2022-06-13 09:11:10
803
原创 Page Object与数据驱动测试
即根据业务逻辑将测试数据从测试脚本中拆分出来,使其成为独立的变参,实现测试脚本在不同数据集合下高度复用的目的。python中的ddt库科技将测试中的变量参数化,其包含一组类和方法用于数据驱动测试。将之前淘宝登录的例子数据驱动化通过外部文件数据驱动1.通过csv文件传入数据2.通过excel文件传入数据xlrd:读Excel文件库xlwd:写Excel文件库openpyxl:提供了Excel读写功能page Object模式在设计测试时,把元素和方法按照页面抽象出来,分离成一定的对象,然后
2022-06-11 16:56:29
291
原创 移动端测试
基于Node.js实现的开源自动化测试框架,可以测试基于IOS、Android和Firefox OS平台的原生与混合的应用。该框架使用Selenium WebDriver,在执行测试时用于和Selenium Server通信的是JSON Wire Protocol。在Selenium 2中,Appium将取代iphoneDriver和AndroidDriver API,并用于测试移动互联网应用程序。安装Appium。地址:http://appium.io/Appium启动后的URL和端口默认是htt
2022-06-11 16:04:58
264
原创 selenium的跨浏览器测试
远程测试的重要组件,可以通过RemoteWebDriver类通过特定的端口监听selenium根据测试脚本所下达的命令。Selenium Standalone Server 几乎支持所有的浏览器,包括基于Appium支持移动平台。Selenium Standalone Server依赖JRE6以上的环境运行,其自身也是有Java语言开发。下载地址:http://docs.seleniumhq.org/ download/Selenium Standalone Server能以不同的模式或角色启动。在远
2022-06-11 15:33:09
264
原创 元素等待机制
很多测试场景下,我们需要是脚本的运行速度和程序的响应速度保持一致。因此,WebDriver提供了隐式等待和显示等待两种机制。对于解决由于网络延迟或利用Ajax动态加载元素所导致的程序响应时间不一致,是非常有效的。设置了隐式等待时间后,WebDriver会在一定时间内持续检测和搜寻DOM,以便于查找一个或多个不是立即加载成功并可用的元素。一般情况下,隐式等待的默认超时时间设置为0。超时仍未找到元素,则会抛出NoSuchElementException的异常。显示等待比隐式等待具备更好的操控性。显示等待
2022-06-10 15:42:12
114
原创 Selenium的各类API方法
WebDriver提供很多与浏览器交互的功能和设置。可以通过WebDriver的功能和方法实现与浏览器窗口、警告、框架和弹出窗口的交互。同时也提供了自动化操作浏览器导航栏、设置cookie、截屏等方便测试的特性。WebDriver通过方法实现与浏览器窗口、网页和页面元素的交互。WebElement可以实现与网站页面元素的交互。包括文本框、文本域、按钮、单选框、多选框、表格、行、列和div等。WebElement提供了一些功能、属性和方法实现与页面元素的交互。WebDriver提供了特定的Select类
2022-06-10 14:36:17
322
原创 selenium的页面元素定位方法find_element
通过元素的ID属性值来定位元素。通过元素的name属性值来定位元素。通过元素的class名来定位元素。通过元素的tag name来定位元素。通过xpath来定位元素。通过css选择器来定位元素。通过元素标签对之间的文本信息来定位元素。通过元素标签对之间的部分文本信息来定位元素。通过元素的ID属性值来定位一组元素。通过元素的name属性值来定位一组元素。通过元素的class名来定位一组元素。通过元素的tag name来定位一组元素。通过xpath来定位一组元素。通过css选择器来定位一组元素。通过元素标签对之
2022-06-09 15:36:59
4844
原创 unittest单元测试框架
unittest也称为PyUnit,是借鉴Java中JUnit框架产生。unittest使我们具备创建测试用例、测试套件、测试夹具的能力。一般情况下,unittest测试可以分为以下三部分:
2022-06-08 20:57:10
400
原创 isalpha()方法介绍
介绍str.isalpha()实现的是如果字符串至少有一个字符并且所有字符都是字母则返回 True,否则返回 False。应用:例如ACM算法中有一道排序题:编写一个程序,将输入字符串中的字符按如下规则排序。规则 1 :英文字母从 A 到 Z 排列,不区分大小写。如,输入: Type 输出: epTy规则 2 :同一个英文字母的大小写同时存在时,按照输入顺序排列。如,输入: BabA 输出: aABb规则 3 :非英文字母的其它字符保持原来的位置。如,输入: By?e 输出: Be?y
2022-05-31 11:01:54
3715
原创 python的split()方法妙用
例如ACM模式下一道密码合格验证的算法题:题目:密码要求:1.长度超过8位2.包括大小写字母.数字.其它符号,以上四种至少三种3.不能有长度大于2的包含公共元素的子串重复 (注:其他符号不含空格或换行)数据范围:输入的字符串长度满足 1 \le n \le 100 \1≤n≤100输入描述:一组字符串。输出描述:如果符合要求输出:OK,否则输出NG示例:输入021Abc9000021Abc9Abc1021ABC9000021$bc9000输出OKNGNGOK代
2022-05-30 22:32:07
674
1
原创 python字典排序
按照key排序直接调用 sorted(iterable,key,reverse)1.仅输出键:>>> test_dict = {'a':1, 's':5, 'd':2, 'f':3}>>> sorted(test_dict.keys())['a', 'd', 'f', 's']2.键值同时输出>>> sorted(test_dict.items(), key=lambda item:item[0])[('a', 1), ('d', 2)
2022-05-30 17:25:43
87
原创 压测并发数的确定
压测目的测试多用户并发访问同一个应用、模块、数据的情况下是否会产生隐藏的并发问题,例如:内存泄漏、线程锁、资源争用问题。并发数的确认方法一:根据泊松分布计算得到C=NL/TQ=C+3*C\sqrt CC参数解释:C:平均并发用户数N:登陆会话的数量L:登陆会话的平均长度T:考察的时间段长度Q:并发用户峰值数方法二:经验获取每天访问系统用户数的10%作为平均的并发用户数。最大的并发用户数乘上一个值,2或者3。...
2022-05-29 16:15:31
1740
原创 76.二叉树的最近公共祖先
文章目录题目思路代码题目思路代码class Solution: def lowestCommonAncestor(self, root: TreeNode, p: TreeNode, q: TreeNode) -> TreeNode: if not root or root == p or root == q: return root left = self.lowestCommonAncestor(root.left, p, q
2022-05-26 10:26:31
66
原创 75.二叉搜索树额最近公共祖先
文章目录题目思路代码题目给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”思路迭代:1.循环搜索: 当节点 root 为空时跳出;当 p, q都在 root 的 右子树 中,则遍历至 root.right ;否则,当 p, q都在 root 的 左子树中,则遍历至 root.left ;否则
2022-05-26 10:16:49
70
原创 74.股票的最大利润
文章目录题目思路代码题目假设把某股票的价格按照时间先后顺序存储在数组中,请问买卖该股票一次可能获得的最大利润是多少?输入: [7,1,5,3,6,4]输出: 5解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。注意利润不能是 7-1 = 6, 因为卖出价格需要大于买入价格。思路贪心算法:维护一个买入的最小值,和一个卖出时的利润最大值即可。代码class Solution: def maxProfit
2022-05-26 09:12:35
126
原创 定义二维数组
文章目录错误示范方法一方法二错误示范arr=[[0]*5]*5问题:每行之间的元素会存在依赖,例如改变的arr[0][0]值的同时,arr[1][0]也会受到影响。正确方法方法一arr=[[0]*5 for i in range(5)]方法二使用numpy库import numpyarr=numpy.zeros((5,5))...
2022-05-21 16:57:51
90
原创 73.丑数
文章目录题目思路代码题目我们把只包含质因子 2、3 和 5 的数称作丑数(Ugly Number)。求按从小到大的顺序的第 n 个丑数。思路动态规划代码class Solution: def nthUglyNumber(self, n: int) -> int: dp = [0] * (n + 1) dp[1] = 1 p2 = p3 = p5 = 1 for i in range(2, n + 1):
2022-05-20 09:01:22
90
原创 72.最长不含重复字符的子字符串
文章目录题目思路代码题目思路滑动窗口思路:可以用两个指针分别指向子串的左侧和右侧,每次左指针移动一格,右指针同时往右遍历,非重复元素添加到列表中,否则记录位置,跳出遍历。最后将每次记录的非重复子串的长度与前一次记录的最大值作比较,保留较大值。代码class Solution: def lengthOfLongestSubstring(self, s: str) -> int: # 哈希集合,记录每个字符是否出现过 occ = set()
2022-05-20 08:26:43
68
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人