- 博客(38)
- 收藏
- 关注
原创 初识python
Python(英式发音:/ˈpaɪθən/;美式发音:/ˈpaɪθɑːn/)是由荷兰人吉多·范罗苏姆(Guido von Rossum)发明的一种编程语言,是目前世界上最受欢迎和拥有最多用户的编程语言。Python 强调代码的可读性和语法的简洁性,相较于 C、C++、Java 这些同样影响深远的编程语言,Python 让使用者能够用更少的代码表达自己的意图。
2025-06-23 14:57:32
35
原创 (1)python+selenium自动化测试 - 环境搭建
选择安装的属性,Documentation、pip、tcl/tk and IDLE 必须安装,tcl/tk and IDLE是Python环境的开发环境窗口,pip用来安装numpy等package。,掌握python基本的语法和一个IDE来进行开发,这里通过详细的讲解,介绍怎么搭建python3和selenium3开发环境,并提供一个基本入门的代码,后续逐步提供系列实践文章。还有一种安装方式,在线安装,在cmd输入 python -m pip install selenium,然后回车,自动安装。
2025-06-19 15:50:01
43
原创 pytest
pytest是一个非常灵活且强大的测试框架,它支持简单的的单元从而使 到复杂的功能测试,显著特点是其简单的语法,可以无需继承TestCase类直接使用函数来编写测试用例,并通过assert语句进行断言,还支持参数化、丰富的插件系统。
2025-06-17 14:18:13
418
原创 C++八股文(四)
weak_ptr设计的目的只是为了配合shared_ptr而引入的一种智能指针,配合shared_ptr工作,它只可以从一个shared_ptr或者另一个weak_ptr对象构造,它的构造和析构不会引起计数的增加或减少。此时,智能指针就派上了用场。并且,由于该类型智能指针在实现上采用的是引用计数机制,即便有一个 shared_ptr 指针放弃了堆内存的“使用权”(引用计数减 1),也不会影响其他指向同一堆内存的 shared_ptr 指针(只有引用计数为 0 时,堆内存才会被自动释放)。
2025-06-17 14:17:15
821
原创 C++八股文(三)
面向对象是一种编程思想,把一切东西看成是一个个对象,比如人、耳机、鼠标、水杯等,他们各自都有属性,比如:耳机是白色的,鼠标是黑色的,水杯是圆柱形的等等,把这些对象拥有的属性变量和操作这些属性变量的函数打包成一个类来表示;面向过程和面向对象的区别面向过程:根据业务逻辑从上到下写代码面向对象:将数据与函数绑定到一起,进行封装,这样能够更快速的开发程序,减少了重复代码的重写过程只定义了析构函数,编译器将自动为我们生成拷贝构造函数和默认构造函数。
2025-06-17 14:15:45
886
原创 C++八股文(二)
操作系统首先创建相应的进程并分配私有的进程空间,然后操作系统的加载器负责把可执行文件的数据段和代码段映射到进程的虚拟内存空间中。(2)加载器读取该动态链接库的导入符号表和导出符号表,比较应用程序要求的导入符号是否匹配该库的导出符号。第二:将分配的内存的指针以链表的形式自行管理,使用完毕之后从链表中删除,程序结束时可检查改链表。第一:良好的编码习惯,使用了内存分配的函数,一旦使用完毕,要记得使用其相应的函数释放掉。(3)针对该库的导入符号表,查找对应的依赖的动态链接库,如有跳转,则跳到3。
2025-06-16 11:06:42
704
原创 C++八股文(一)
概念:函数指针就是指向函数的指针变量。每一个函数都有一个入口地址,该入口地址就是函数指针所指向的地址。f = &func;回调(callback)。我们调用别人提供的 API函数(Application Programming Interface,应用程序编程接口),称为Call;如果别人的库里面调用我们的函数,就叫Callback。//以库函数qsort排序函数为例,它的原型如下:void qsort(void *base,//void*类型,代表原始数组。
2025-06-16 10:57:40
875
原创 json基本概念
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,非常适合在前后端通信中使用。Python 提供了内置的json模块来处理 JSON 数据。本文将详细讲解如何从[JSON 字符串](字符串&spm=1001.2101.3001.7020)中提取数据的各种操作,涵盖基础、进阶以及一些最佳实践。
2025-06-13 16:27:30
213
原创 Linux 基本常用指令(个人记录 持续更新)
查看linux服务器磁盘容量 df -h。查看G卡状态 nvidia-smi。查看进程状态 top。
2025-06-11 17:54:40
172
原创 C++ 精简知识点
重写(overwrite):非标准说法,常指覆盖(override)或隐藏基类函数(如派生类定义同名非虚函数)。重载(overload):同一作用域,函数名相同,参数(类型 / 个数 / 顺序)不同,编译期决议。覆盖(override):派生类重写基类虚函数,函数签名(名、参数、返回)完全一致,运行期多态。:优先写框架(类定义、函数模板结构),再补细节(构造函数、虚函数、智能指针)。:抓关键词(如 “虚函数表”“引用计数”“拷贝场景”),按点作答。虚表指针(vptr):对象构造时,vptr 指向类的虚表。
2025-06-11 11:17:32
692
原创 八股文——JVM
程序计数器:线程私有的,每个线程一份,内部保存字节码的行号。用于记录正在执行的字节码指令的地址。每个线程都有自己的程序计数器,确保线程切换时能够继续执行未完成的任务。Java堆是 JVM 中用于存储所有对象和数组的内存区域。线程共享的区域。当堆中没有内存空间可分配给实例,也无法再扩展时,则抛出OutOfMemoryError异常。它被分为:年轻代(存储新创建的对象),被划分为三部分:Eden区:大多数新对象的分配区域;
2025-06-09 17:18:14
1215
原创 掌握 Selenium 与 Python:从浏览器操控到自动化测试的全攻略
掌握 Selenium 与 Python:从浏览器操控到自动化测试的全攻略 一、为什么自动化测试成为开发必备技能?当你需要反复测试一个电商网站的购物流程时,手动点击 “加入购物车 - 结算 - 支付” 可能需要数十分钟;而自动化测试能让程序在 30 秒内完成全流程验证 —— 这就是 Selenium+Python 组合的魔力。据 Stack Overflow 2024 报告显示,68% 的开发者使用自动化测试工具,其中 Selenium 以 42% 的占有率位居榜首,成为 Web 应用测试的 “瑞士军刀”
2025-06-09 16:50:14
955
原创 python爬虫
相比其他动态脚本语言,如perl,shell,python的urllib2包提供了较为完整的访问网页文档的API。和Google等,作为一个辅助人们检索信息的工具也存在着一定的局限性,通用搜索引擎的目标是尽可能大的网络覆盖率,返回的结果包含大量用户不关心的网页,为了解决上述问题,定向抓取相关网页资源的爬虫应运而生。网站:网站是共享唯一域名的相互链接的网页的集合。因为python的脚本特性,python易于配置,对字符的处理也非常灵活,加上python有丰富的网络抓取模块,所以两者经常联系在一起。
2025-06-09 16:34:50
740
原创 AI原生应用实战:用户画像建模的7种机器学习方法
本文旨在系统介绍用户画像建模的机器学习方法,涵盖从数据收集到模型部署的全流程。我们将重点讨论7种最具实践价值的方法,并通过实际案例展示其应用效果。
2025-06-09 15:55:09
990
原创 使用python进行图像处理—图像变换(6)
图像变换是指改变图像的几何形状或空间位置的操作。常见的几何变换包括平移、旋转、缩放、剪切(shear)以及更复杂的仿射变换和透视变换。这些变换在图像配准、图像校正、创建特效等场景中非常有用。
2025-06-09 15:33:04
892
原创 使用python进行图像处理—图像滤波(5)
除了在空间域进行滤波,图像处理也可以在频域进行。通过傅里叶变换,可以将图像从空间域转换到频域,表示图像中不同频率成分的强度。在频域中,高频成分对应于图像的细节、噪声和边缘,低频成分对应于图像的平滑区域和整体结构。对图像进行傅里叶变换。在频域中设计一个滤波器(一个与频域图像相同大小的掩模),根据需要抑制或增强特定频率成分。将频域图像与滤波器相乘(逐元素相乘)。对结果进行逆傅里叶变换,将图像转换回空间域。
2025-06-09 15:28:54
845
1
原创 使用python进行图像处理—像素级操作与图像算术(4)
利用NumPy,我们可以轻松地对图像进行各种像素级的算术运算,从而实现图像的加法、减法、乘法等,这些操作在图像处理中有多种用途,例如图像融合、背景去除、水印添加、对比度调整等。
2025-06-09 15:26:05
1076
原创 使用python进行图像处理—图像标识与NumPy(3)
在Python中进行更复杂的图像处理时,我们通常需要访问和操作图像的像素数据。最常见和高效的方式是将图像数据转换为NumPy数组。NumPy是Python中用于科学计算的核心库,提供了高性能的多维数组对象和大量的数学函数。Pillow图像对象和NumPy数组之间可以方便地相互转换。
2025-06-09 15:24:22
1082
原创 使用python进行图像处理——(1、2)
更高的分辨率意味着图像包含更多的像素,细节更丰富,但也占用更大的存储空间和需要更多的处理能力。另一个相关的概念是DPI (Dots Per Inch)或PPI (Pixels Per Inch),这通常用于描述图像在物理介质(如打印)上的密度,影响打印质量。RGB (Red, Green, Blue):这是最常用的颜色空间,基于红、绿、蓝三原色的加色混合原理。# 例如,从 (50, 30) 开始,裁剪一个宽100,高80的区域,则右下角坐标是 (50+100, 30+80) = (150, 110)
2025-05-26 16:47:08
816
原创 pyrhon爬虫详解——(4)
正则表达式(英语:Regular Expression,在代码中常简写为regex、regexp或RE),是计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串。在其他语言中,我们也经常会接触到正则表达式。BeautifulSoup库,重html文档中筛选我们想要的数据,但这些数据可能还有很多更细致的内容,比如,我们取到的是不是我们想要的链接、是不是我们需要提取的邮箱数据等等,为了更细致精确的提取数据,那么正则来了。
2025-05-26 16:17:46
315
原创 pyrhon爬虫详解——(3)
Beautiful Soup 官方定义:是一个可以从HTML或XML文件中提取数据的Python库.它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式.Beautiful Soup会帮你节省数小时甚至数天的工作时间。(官网文档:https://www.crummy.com/software/BeautifulSoup/bs4/doc.zh/)
2025-05-26 16:15:29
829
原创 pyrhon爬虫详解——(2)
所有HTTP响应的第一行都是状态行,依次是当前HTTP版本号,3位数字组成的状态代码,以及描述状态的短语,彼此由空格分隔。状态代码的第一个数字代表当前响应的类型:1xx消息——请求已被服务器接收,继续处理2xx成功——请求已成功被服务器接收、理解、并接受3xx重定向——需要后续操作才能完成这一请求4xx请求错误——4xx类的状态码用于看起来客户端有错误的情况下,请求含有词法错误或者无法被执行。
2025-05-26 15:55:25
1354
原创 pyrhon爬虫详解——(1)
早在1989年,网络发明人蒂姆·伯纳斯 - 李(Tim Berners-Lee)就提出了网站的三大支柱:1)URL ,跟踪Web文档的地址系统2)HTTP,一个传输协议,以便在给定URL时查找文档3)HTML, 允许嵌入超链接的文档格式在Web之前,很难访问文档并从一个文档跳转到另一个文档。WWW(World Wide Web,万维网)简称为3W,使用统一资源定位符(URL)来标志WWW上的各种文档。完整的工作流程如下∶。
2025-05-26 15:38:24
1559
原创 Pycharm Debug调试
在Watches窗口中,单击加号,输入期望查看的变量名称,例如这里输入delay,然后回车。我试了三个变量,这里我们看到这三个变量目前都是没被定义的,我们可以在控制台里给它定义,也可以通过执行下一步,利用代码中的赋值来定义。单击左侧工具栏中的命令符按钮,显示Python的命令提示符(在这里,问题又来了,新版的pycharm的那个图标又换了,而且还隐藏的很深,这是怕别人找到了吗。调试开始,并且在第一个断点处停止,断点所在的行变为蓝色,说明Pycharm已经击中了这个断点,但尚未执行这行代码。
2025-05-23 17:12:04
1146
1
原创 Selenium安装WebDriver最新Chrome驱动(含116/117/118/119)
由于有些chromedriver版本在上述链接中找不到对应的版本,可以在下面链接中的版本号(119.0.6045.105)替换成自己需要的版本号,已经验证过啦,亲测有效。1、 点击我的电脑/此电脑>>右键点击属性>>点击高级系统设置>>环境变量>>系统变量。2、 点击系统变量中的path,点击新增,并将chrome的安装目复制填入后,点击确定。2、发现登陆后还是闪退, 但是版本号都是对应的,可能是因为driver的。,可以看到117 Stable 稳定版本以及更高版本的测试版。,便可直接下载压缩包。
2024-05-30 09:30:00
1458
原创 python通过cron设置定时任务
每个jobstore都会绑定一个alias,scheduler在Add Job时,根据指定的jobstore在scheduler中找到相应的jobstore,并将job添加到jobstore中。Executor的种类会根据不同的调度来选择,如果选择AsyncIO作为调度的库,那么选择AsyncIOExecutor,如果选择tornado作为调度的库,选择TornadoExecutor,如果选择启动进程作为调度,选择ThreadPoolExecutor或者ProcessPoolExecutor都可以。
2024-05-29 10:00:00
2511
原创 python处理SQLite数据库
数据库非常重要,程序的数据增删改查需要数据库支持。python处理数据库非常简单。而且不同类型的数据库处理逻辑方式大同小异。本文以sqlite数据库为例,介绍一下python操作数据库的方法。python sqlite3 官方文档注:Python操作mysqlite可以参照python&mysql基本使用。
2024-05-28 14:56:50
976
原创 uiautomation实现自动化
那么捕获窗口就用:uiautomation.WindowControl。那么捕获窗口就用:uiautomation.TextControl。复选控件:uiautomation.ComboBoxControl。那么捕获窗口就用:uiautomation.XxxControl。程序窗口:uiautomation.WindowControl。输入窗口:uiautomation.EditControl。文本:uiautomation.TextControl。Uiautomation元素的属性。
2024-05-28 14:41:22
1553
原创 Pycharm报错:Error:failed to find libmagic. Check your installation
现在python-magic就可以正常使用了。然后在官网可以下载64位对应安装包。卸载python-magic。
2024-04-24 10:00:00
1246
1
原创 Windows系统简介(二)
方式1:直接在Path中添加,设置完成后重新启动dos命令窗口即可- 方式2:新建环境变量,在Path中引用变量值- 新建环境变量- 在Path中引用变量值。
2024-04-24 00:00:00
2898
原创 Pycharm报错:ReadTimeoutError: HTTPSConnectionPool(host=‘files.pythonhosted.org‘, port=443): Read timed
pip --default-timeout=1000 install -U 模块名。下载方法同上,将镜像网站的地址进行替换即可。除此之外,还可以利用以下镜像网站来进行下载。
2024-04-23 13:31:48
798
原创 Windows系统简介(一)
方式二:打开dos命令窗口(win+r打开运行窗口,输入cmd确定即可),输入命令:ipconfig。方式一:点击右下角网络图标,选择网络和Internet设置,选择属性,查看ipv4地址。2.卸载,打开控制面板——程序和功能——选择应用程序点击右键进行卸载。1.安装,直接运行安装程序即可。管理系统的进程和服务。
2024-04-23 11:14:19
178
原创 类和实例化
class是关键字,表示要创建类,className为类名称。类里面可以有属性和方法,属性在类的外面可以看成是变量,方法就是在类中定义的函数。对象则是一个类的真实表现。创建一个对象,在类名后面加上括号即可。_new()_,用于创建对象,在实例化时首先调用new方法返回一个对象。类的内置方法,也叫魔法方法,我们需要掌握几个常用的内置方法。_del_(),用于销毁对象,在对象生命周期结束时自动调用。_init_(),用于初始化对象,在实例化时自动调用。通俗的说,类就是一个对象的模板。例1:声明一个学生类。
2023-06-07 14:47:42
96
1
原创 面向对象的基本概念
程序世界的思想从何而来,一般是来自然界中,我们已经熟悉面向过程,来自于我们做事情的过程,这个过程往往只是自然界中的小部分。需求变更是从有了计算机解决问题开始就有了,只是需求变化的频率高低而已,尤其现在互联网行业,需求一年好几次的变化,光打折一点,就可以产生很多需求,如:春节促销,各种节假日,外加商家搞得节日,年中促销,光棍节等,每一个节日的打折的方案不一样,一套代码如何应对这么高频率的折扣呢?在面向过程中,我们会写很多的函数,还定义了很多的全局变量和局部变量,一切的行为都是函数为基础的。
2023-06-07 14:00:23
74
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人