自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 收藏
  • 关注

原创 关于pycharm虚拟环境找不到包的问题。 No module named ‘pymysql‘

这里我是python3.8创建的虚拟环境,到python3.8存放目录中的site-packages中添加pymysql即可。因为在虚拟环境中找不到库的话,会顺着你设置的环境变量那去查找。所以python最好设置环境变量。解决办法:到系统上对应版本的python的sitepackages中添加pymysql即可。可以看到库中是有pymysql的。不知道是pycharm的问题,还是虚拟环境的原因。

2024-01-08 02:38:22 493

原创 C解决八皇后问题

这一切的根源是我们想更改第五行的皇后的位置时,没有合适的位置了,但是我们没有清空他,导致第四行皇后取舍的时候会受到它的英雄。若能放置皇后,就放置皇后,并进入下一行,然后进入第一步,直到找到最后一行的皇后被放置,然后返回。其实皇后放到最后一行,也是死路,虽然是我们要的结果,但我们并没有清除,也就是说函数返回时,他依然会发生我们前面说的低层皇后影响上一层皇后的取舍问题。就这样,程序返回到了第五行所放置皇后的下一个位置,因为该位置有皇后了,所以后面的位置都不能放皇后,所以这样一直返回到了第0行,程序结束。

2023-10-24 01:16:31 97

原创 VScode在node环境运行js失败以及乱码

检查环境变量,配置文件。都没问题就重启电脑。

2023-10-11 00:27:04 157

原创 使用python编程依次观看b友的空间视频并发布评论

【代码】使用python依次观看b友的空间视频并发布评论。

2023-06-04 15:49:16 118 1

原创 python selenium 实现页面元素捕捉及信息交互

这里涉及到多个重复元素的问题,所以取最后一个。但之所以没使用WebDriverWait等库,是因为暂时没找到对应的方法。6定义等待函数,分别是等待私信中的好友发的信息文本函数,以及等待gpt回答的元素,并返回文本及答案。5登录gpt网站,同样的手动进入回复界面并先发文几个问题,并同样获取输入框元素和发送按钮元素。2.这里以b站为例,这里使用cookie登录b站,用其他方式登录也可。7定义发送函数,分别是回复界面的和gpt发问界面的函数。3.然后进入回复界面,并跳转窗口至新打开的回复界面。

2023-05-27 00:57:01 269

原创 将文本变成词云

另外使用coleection进行词频统计的话,同次数的情况下,英文的优先级似乎更高,也能得到更直观的展示。1将上次获得的评论整理成一个词云,借助了cv2想生成某心形状的词云。很显然,并不是心形,可能是因为词太多了,根本放不过来。

2023-05-07 23:00:50 78

原创 python电影评论

header是发送请求时携带的头部信息,里面包含一些相应的参数告诉网站一些客户端的相关信息,我们这里提供header是为了使python更像人为的,而非机器,从而尽量避免网站的反爬措施。因为这些库都是放在国外的,所以我们使用国内的镜像源提高下载速度,这里用的是清华的镜像。可以看到这里的昵称是标签a里面的文本,而标签a是包括在上一级的class属性名为comment-info的sapn标签中,而这一标签又是包含在id为comments的dive中的。这里我们要获取评论人的昵称,评论内容,评论分数。

2023-05-04 21:26:48 303

原创 Vue实现购物车功能

2使用JS方法获取所有的button元素,为其绑定点击事件,然后其中为偶数的的button添加判断条件,当其绑定的商品数量为1时,按钮的disable属性为true,每次点击的时候就触发一次,仅作用于当前按钮。2不需要获取所有的button元素并为偶数的添加判断条件,只需要将其判断传递的参数是否为"-"符号,以及button所在行的数量是否为1即可。同时挑选出所有的标签元素,选择为偶数的元素,为其添加判断该条件,当该行所在的商品数量为1时,减按钮失效。同时,商品的总价应发生变化。一个变量来记录商品总价格。

2022-09-17 11:32:12 806 1

原创 Mybatis环境搭建(仅供参考)

之后在maven中创建一个名为repository的文件夹作为本地仓库,然后修改上述代码的本地仓库路径即可(在顶部,很容易看到)。之后的build则是引入src/main/resources和src/main/java的文件。如果没报错且正确输出了数据库中的数据,则说明mybatis环境的搭建是成功了的。8再在main中的java下创建com.itheima.pojo包,然后在其中创建实体类。其中的mappers中的UserMapper.xml映射文件可更换为自己命名的映射文件。提取码:vw99。

2022-09-13 22:02:15 406

原创 Vue实现简单计算器

数据:1.一个one变量保存第一个值2.一个two变量保存第二值3.一个str变量用于记录用户点击过的键4.一个run变量记录运算类型5.一个sum变量记录运算最终值方法:1.一个接受用户点击过的字符的方法,并将点击过的字符放在str中,该值要一直显示再文本框中直到结果出现,最后一个=直接调用计算方法2.将str中的字符串分割,使得前值赋给one变量,后值赋给two变量,运算类型赋值给run。注意是字符串转换为数字型,除了运算符。3.一个根据运算类型执行对应运算的方法,并将结果显示

2022-09-06 23:37:46 1106

原创 解决eclipse更新与多个jdk导致的错误,代码无法运行

之后选择要安装的JRE版本。3. 之后再选择Java Complier 下拉选择对应的jdk版本就行了。

2022-06-02 20:18:05 248

原创 java实现高效抽取不重复的二维数组坐标

如何实现高效不重复高效不重复如何生成不重复的二维数组坐标高效随机数的选取要实现不重复的话,有两种办法。第一种,设置一个集合域,待选取的随机数与集合域内已有数进行比较,若集合内已有此数,则重复此步骤,直到集合域内无此待选取随机数。第二种,将已经选取的随机数排除在下一次选取的范围之外,也就是每次选取之后就要收缩随机数的值域。要实现高效的话,每段代码的的执行时间应该都是有利与程序的进行的。第一种方法的话要是与集合域内的数有相同的,则会浪费该代码的执行时间。而第二种方法采取了收缩值域的方法,也就是每一次获

2022-04-17 16:59:24 1315

原创 二维数组实现基数排序(c语言)

1.原理,基数排序是基于输入序列元素的键值来进行排序的,也是利用桶排序的思想,在确定的有限个桶内,按照基数的键值划分到不同的桶中,在该种排序中,输入序列的键值是有多个的,根据条件的不同,键值也不同。而且每次比较的键值的优先级也不一样。假设输入序列都是正整形元素的话,我们可以以个位数,十位数,百位数等分别进行三次划分元素进桶操作。而且当完成一轮的进桶操作之后,要将桶中元素依次放出并覆盖原输入序列。2.算法分析,要有确定的有限个桶来存储对应元素。这里我们采取二维数组keys_table[10][100]来充当

2022-02-09 16:09:10 985

原创 C语言实现桶排序

1.原理,由映射函数分配初始元素的键值,然后将这些元素放入对应键值的桶中,并对桶中的数据进行排序。然后依次将每个桶中的元素分出得到排好序的序列。2.桶排序不是基于比较的排序。将N个待排序的元素放入桶中只需要O(n)时间。后续则是对桶中元素的排序,所以当桶越多的时候,桶中的元素会越少,所采取的基于比较的排序算法的时间则会大大减少。所以,这里我们就可确定了一个重点,即是桶的数量必须是有限个的,可以经过一系列运算得到具体数目的。3.桶的实现形式,我们以结构体数组存储单链表实现。以结构体数组的数组单元来春初链

2022-02-05 16:25:10 2552

原创 改进后的超自然合并排序算法

作者我的初衷是想编写一个自底向上的合并算法,但每次都要给排序函数子序列段的首尾坐标或者长度,还要分子序列段是奇数还是偶数,太麻烦了。于是我就想能不能事先存储要合并的各个要合并的子序列段的首尾坐标,然后两两配对之后删除在合并中第二个子序列段的相关信息,并给该次合并的第一个调子序列段调整尾坐标,使其表示合并后的新的子序列段。我是想用链表来存储,但一想到要分出两个值域去存储首尾坐标的话,加入数组很大,那么该链表至少也要跟数组这么大。典型的是利用空间换时间,而且转换效率还低。如图:于是我想转换另一种思路,链表的.

2021-12-04 19:09:39 303

原创 超详细解决自然合并排序问题

自然合并排序的原理:对于初始给定的数组a = {4,8,3,7,1,5,2,6};其中存在四个子序列段,分别是{4,8},{3,7},{1,5},{2,6}。然后将子序列段两两合并,如{3,4,7,8},{1,2,5,6}等更大的子序列段,直到子序列段为1。怎么确定一个子序列段?有两种方式,获取子序列段的首元素坐标和尾元素坐标,或获取首尾元素坐标之1和子序列段的长度,因为首尾元素坐标之差的绝对值就是子序列长度,这里我们采取第二种方式。那怎么获取子序列段的首坐标和长度呢?首先定义两个整型变量,分别记录首.

2021-12-03 20:14:19 782

原创 快速排序算法

冒泡排序:把元素看成一系列的气泡,小的在下,大的再上,再上升期间要相邻的气泡进行比对,大的数往上冒泡。最好的情况下(整个序列是已经排好序的),但仍要进行1/2 n2(等差数列的和)次比较,所以最好情况下的时间复杂度是O(n2),最坏情况下是整个数列完全为逆序,比较和交换都要进行1/2 n2次,总次数是n2次,时间复杂度是O(n2),平均复杂的也是O(n2)。插入排序,对一个序列(一开始里面包含的数只有1个)已经排好的序列插入一个数(假设在数组中从小到大排),序列外的元素首先与最大值比较,比最大值大的话存.

2021-11-25 23:27:07 292

原创 循环数组实现队列

队列:只允许在表尾(队尾)插入和在表首(队首)删除的表(也就是队首标只在插入入时变化,队尾标只在删除时变化)。又叫后进先出(LIFO)表。用数组循环实现队列,首先想象数组中的单元排列成一个圆,数组的头部和尾部相邻,而表在占用其中任意连续的一部分数组单元空间(而队尾队首标永远大于0且根据增加和删除的次数自加,所以这里存在一个数组越界问题)。接下来用Front指向表中元素的前一个位置,用Last指向表中元素的最后一个所在的数组位置。无论怎么安排Last和Front的初始指向位置,他俩的相对位置关系在表满和表.

2021-11-16 23:59:22 764

原创 指针实现栈

栈:是一种特殊的表,只在表头进行插入和删除。表首称为栈顶,表尾称为栈底。遵循先进后出原则。因为只在表土进行插入和删除,只记录了表头,所以查找也是从表头开始的。这些都是一些特殊化的表,所以关键理解表就掌握了这些特殊化的表了。代码如下:`#include<stdio.h>#include<stdlib.h>typedef int ListItem;typedef struct snode *Snode;typedef struct snode{ListItem ele.

2021-11-16 21:46:04 633

原创 C语言实现双链表

整体与单链表循环差异不大,关键是前增加的一个指针域,可以实现不同方向的循坏,在一些条件下来寻找最适合的循环方向可以有效减少查找的时间。这是它的优越性。也就是弥补了单链表查找速度慢的缺点。本文采用了书中的设置哨兵的做法,方便添加表头。代码如下:...

2021-11-15 21:19:38 1283

原创 单循环链表(C语言)

单向循环链表(C语言)实质:将表尾的next指向头部的Head,以此完成表的循环。查找优化:从表尾开始查找,这样查找表尾和表头的时间会大大缩短。避免了以表土为起点时,查找表尾需要O(n)时间来查找。整个表建立在指针实现表的基础上增加了表尾Last元素,和表头Head元素。...

2021-11-14 11:00:00 725

原创 游标实现表(C语言)

游标实习表(C语言)理解:游标实现表的实质是,用数组存储表的单元,表的单元包括元素域和next域(仿指针域),next域是用来指向表的下一个单元在数组中存储的的位置。怎么确定一个表的开头和结尾:假如数组的子集是称为单元,表的子集称为元素。首先我们要知道删除操作是进行的覆盖,而表头是表的起始点,所以无法覆盖,也就无法进行删除操作,所以一般来说,表头的一般在数组中的位置是固定的,往往是数组的第一个位置,除非你将表头的next域抹去,使其指向为空的数组单元或指向本身(此时表头变为原本表的第二个元素),

2021-11-13 16:55:03 624

原创 指针实现表(C语言)

用指针实现链表我的理解:指针实现的链表表类似一个数组,但又没有数组的固定大小,且在物理上不相邻。图示:表的几种操作1 创建节点:使用malloc函数,用法为(指针类型*)malloc(sizeof(指针类型)),并返回为分配的内存的地址。2插入节点(表尾插入):利用指针pr寻找表尾,找到后将地址赋给节点p,再对p节点中的数据域和指针域进行操作。3:删除节点:将要删除的节点前一个节点的指针域指向要删除节点的指针域。4:表的删除:每个节点free一次。#include

2021-10-31 15:19:37 171

原创 解决n行n列的数组的横向求和与纵向求和

规律1:横向求和,在对数组中的元素输入时,可在每一行的输入结尾统计一次行的和。纵向求和即字面意思。问题不难,直接上代码#include<stdio.h>main(){ int i,j,cnt,cnt1,c,N,M; printf("请输入行数和列数"); scanf("%d%d",&N,&M); int a[N][M]; for(i=0;i<(N-1);i++){ printf("请输入第%d个学生的各科成绩\n",i+1); cnt=0; fo

2021-03-20 22:11:32 828 1

原创 解决字符的正方形输出问题

字符的正方形输出笔者认为:程序的核心是算法,算法的核心是问题中蕴含的规律。而找到最简单的那一条,可以使程序更加简单。那现在我们来看一下题目:题目要点为顺时针输出,而且是正方形。由于输出的不可逆性,所以我们确定必须是一行接一行来进行字符的输出的。顺时针是比较容易的,我们只要确定输出的数组元素的下标就好了。关键是正方形,还有数组的长度并不满足刚好为正方形的情况下我们想要在循环中输出靠末尾的数字是毫无头绪的。对此我们必须对数组进行割断。通过观察发现,满足正方形的元素个数都是4的倍数。所以对于那些

2021-03-20 00:06:52 1338 1

原创 八仙祝寿问题(约瑟夫环问题)

八仙祝寿问题:八仙都要给王母煮熟,但是先后问题没有解决。于是太上老君出了一个主意,八位神仙围成一圈,按0~7编号,由零号开始进行1到3的报数,报到3的出列,然后由他相邻的下一位进行1到3的报数。重复此过程,那么出列的顺序就是被煮的顺序。原理:报道3的位置上的人都要出列这个很简单只要i%3==0;就可以了。问题在于数组中的元素是从零开始的,怎么解决这个问题呢。很简单,只要我们将i换成i+1再取余就可以了。现在来确定一下八仙的先后拜寿顺序由于二维数组本身是由一维数组构成的,所以我们可以用单一的下标

2021-03-18 20:13:47 161 1

空空如也

空空如也

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

TA关注的人

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