自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(81)
  • 资源 (2)
  • 收藏
  • 关注

原创 写好ChatGPT提示词原则之:清晰且具体(clear & specific)

ChatGPT 的优势在于它允许用户跨越机器学习和深度学习的复杂门槛,直接利用已经训练好的模型。然而,即便是这些先进的大型语言模型也面临着上下文理解和模型固有局限性的挑战。为了最大化这些大型语言模型(LLM)的潜力,关键在于编写有效的提示词。适当的提示不仅引导模型正确理解需求,还能防止模型产生误导性或无关的输出。以下提示词中,务必要将你所要做得就是如何描述清楚你的处境(上下文)和具体的问题(需要gpt帮你做的事情)。

2023-12-17 03:00:30 2006 1

原创 ChatGPT使用:一个发包机器人的提示词

这是一个简单的应用,目的是达到了,可以通过提前给出提示词,然后判断用户的输入而输出函数名和参数。但是,是存在问题的,这里一定要说明,否则可能会出现误导:1. gpt本身已经支持调用本地函数。不用特意指明函数名和参数,gpt返回中会根据函数描述自带一个函数,具体不在这里展开,可以去查资料或者看后续文章;2. 英文prompt比中文好用。英文prompt表现一直比中文好,但是无法量化衡量,建议最开始可以使用中文,如果已经比较合适于自己的任务,不必要换英文;

2023-12-15 21:11:03 647

原创 go vscode运行go出现go: go.mod file not found in current directory报错

刚刚配置好的vscode环境中运行go语言,会出现这个go: go.mod file not found in current directory解决办法,在cmd环境中输入go env -w GO111MODULE=off此时再在vscode中启动,就会正常运行

2022-02-11 16:46:52 1432

原创 python windows下创建和使用虚拟环境

Windows下创建虚拟环境首先创建虚拟环境使用的文件夹直接新建一个文件夹后进入,在文件夹内部按住shift并按右键,可以看到打开命令行的选项,进入命令行,同时这个命令行也会显示在当前目录。使用pip安装pip3 install virtualenv安装成功后,可以直接使用命令创建虚拟环境virtualenv demo如果需要指定python的版本或者位置,可以添加选项...

2022-01-23 15:56:14 9817 1

原创 面试题12:矩阵中的路径

剑指 Offer 12. 矩阵中的路径给定一个m x n 二维字符网格board 和一个字符串单词word 。如果word 存在于网格中,返回 true ;否则,返回 false 。单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。例如,在下面的 3×4 的矩阵中包含单词 "ABCCED"(单词中的字母已标出)。示例 1:输入:board = [["A","B","C","E"]...

2021-12-05 16:44:00 260

原创 面试题11:旋转数组的最小数字

剑指 Offer 11. 旋转数组的最小数字把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如,数组[3,4,5,1,2] 为 [1,2,3,4,5] 的一个旋转,该数组的最小值为1。示例 1:输入:[3,4,5,1,2]输出:1示例 2:输入:[2,2,2,0,1]输出:0这道题,表面上看起来很简单,直接遍历就可以得出最小值,时间复杂度为O(n)也刚刚好感觉不是很高,面试官就会提示你,是不...

2021-11-26 11:12:17 100

原创 面试题10-2:青蛙跳台阶问题

剑指 Offer 10- II. 青蛙跳台阶问题​​​​​​一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 n级的台阶总共有多少种跳法。答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。示例 1:输入:n = 2输出:2示例 2:输入:n = 7输出:21示例 3:输入:n = 0输出:1提示:0 <= n <= 100这道题与之前的斐波那契数列相似,重点不是解法,而是如何总.

2021-11-25 18:25:26 248

原创 面试题10-1:斐波那契数列

剑指 Offer 10- I. 斐波那契数列写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项(即 F(N))。斐波那契数列的定义如下:F(0) = 0,F(1)= 1F(N) = F(N - 1) + F(N - 2), 其中 N > 1.斐波那契数列由 0 和 1 开始,之后的斐波那契数就是由之前的两数相加而得出。答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。示例 1:输入:n = ...

2021-11-25 17:38:03 242

原创 面试题9:用两个栈实现队列

剑指 Offer 09. 用两个栈实现队列用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead操作返回 -1 )示例 1:输入:["CQueue","appendTail","deleteHead","deleteHead"][[],[3],[],[]]输出:[null,null,3,-1]示例 2:输入:["CQueue","de.

2021-11-25 16:58:24 123

原创 面试题7:重建二叉树

剑指 Offer 07. 重建二叉树输入某二叉树的前序遍历和中序遍历的结果,请构建该二叉树并返回其根节点。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。示例 1:Input: preorder = [3,9,20,15,7], inorder = [9,3,15,20,7]Output: [3,9,20,null,null,15,7]示例 2:Input: preorder = [-1], inorder = [-1]Output: [-1]限制:0 .

2021-11-23 23:55:35 216

原创 链表与树 python

链表与树是面试中出现频率最高的数据结构。链表之所以频率比较高,是因为在面试那中时长控制下,时间上是不允许面试官有太多的时间考察算法题,所以一些高难度的算法题一般都是说出一些思路或者写出核心算法就好,而难度太低的数组和字符串考察难度太低而被很多面试官选择性的放弃,再说链表这种数据结构,结构简单,但是可以考察的点会很多,简单点的像写出链表的插入和删除方法,难点的直接一道相关算法题,但是整体的代码量都不是很大,难度也不会很简单。整体来说之所以面试考察的比较频繁,就是因为代码量少而精,有一定难度从而有了一定

2021-11-22 21:10:17 1014

原创 面试题6:从尾到头打印链表

剑指 Offer 06. 从尾到头打印链表输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。示例 1:输入:head = [1,3,2]输出:[2,3,1]限制:0 <= 链表长度 <= 10000链表是单向链表,从头到尾直接遍历一遍即可,而从尾到头就有点难度了。一般解法就是使用栈来作为缓存,这样时间复杂度可以是O(n),但是用到了额外的栈,从而使得空间复杂度为O(n);另一种解法就是反转链表后遍历,从而不用使用到栈,空间复杂度可以降低到O(1

2021-11-22 20:54:20 509

原创 数组与字符串 python

数组和字符串是两种最基本的数据结构。这两种数据结构相似点在于使用连续的内存存储,在面试中属于比较简单的题,一般专门考察数组和字符串出现的概率不是很大,但是会出现在面试题中作为其中一种解体方法或者作为解体中的一个步骤。数组最简单的数据结构,一块连续的内存存储所有的数据,所以可以根据下标在O(1)时间内读写任意数据,时间效率很高,也可以用这点来实现一个简单的哈希表:把数组的下标设置成key,对应的值设置成value。数组有一维数组和多维数组,简单的数据结构算法题不一定简单,比如这道题面试题3:数

2021-11-22 14:24:40 714

原创 面试题5:替换空格

剑指 Offer 05. 替换空格请实现一个函数,把字符串 s 中的每个空格替换成"%20"。示例 1:输入:s = "We are happy."输出:"We%20are%20happy."限制:0 <= s 的长度 <= 10000这道题题意很简单,就是替换所有的空格,不过不是等量替换,而是将一个字符替换成三个字符,如果是c语言的话,就要重新分配新的空间,而且后面的字符要全部后移,难点就来了,如果直接从前到后遍历,遍历到一个空格就扩展一次,后移一次,替换一次。当

2021-11-22 10:56:00 612

原创 面试题4:二维数组中的查找

剑指 Offer 04. 二维数组中的查找在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个高效的函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。现有矩阵 matrix 如下:[ [1, 4, 7, 11, 15], [2, 5, 8, 12, 19], [3, 6, 9, 16, 22], [10, 13, 14, 17, 24], [18, 21, 23, 26, 30]...

2021-11-21 23:02:43 392

原创 面试题3:数组中重复的数字

剑指 Offer 03. 数组中重复的数字题目:找出数组中重复的数字。在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。示例 1:输入:[2, 3, 1, 0, 2, 5, 3]输出:2 或 3 2 <= n <= 100000解题:首先分析好题目,长度为n,范围为0~n-1,也就是不重复的情况下刚刚好有所有数字,但是重复的

2021-11-18 00:21:17 271

原创 队列和栈 python

队列的特点是先进先出,这个特性套用python来实现的话,list最为方便创建一个队列queue = list()向队列中插入一个数据 这里插入一个数字1queue.append(1)队列中出一个数据 使用pop可以指定下标,所以指定下标0为队列中第一个数据queue.pop(0)...

2021-11-17 00:03:49 946

原创 数据结构基础 python

以下是python语言实现对应的一些基础的数据结构,面试时虽然不会直接考,但是很多数据结构由于平时不用,比如红黑树等,很多人甚至从来也没写过这些基础数据结构在对应语言中怎么写队列:队列的特性就是先进先出,在python中可以用数组来作为队列使用。初始化队列:queue = list()进队列:queue.append(i)出队列:queue.pop(0)进队列时不用判断,出队列时得先判断队列是否不为空,否则会报错。栈:栈的特性是先入后出,在python中可.

2021-11-11 00:52:27 1198

原创 递归与非递归 python

面试题中很多都涉及到递归与非递归,比如二分法,冒泡,归并,快排,二叉树前中后遍历等等,建议能直接给出非递归形式,如果面试官想要看到递归形式也能熟练的写出来。典型的面试题比如说:汉诺塔问题,斐波那契数列等递归是什么?和循环的区别答:递归从字面意思理解是自己调用自己,实际上递归是将问题逐渐分解减小,但是和原问题有着相同解法的问题,并且存在一个问题的出口。循环就是重复执行同一段代码打一个比方吧,从前有座山,山里有座庙,庙里有个老和尚和小和尚,老和尚对小和尚说,从前有座山,山里有座庙,庙里有

2021-11-09 21:04:08 1705

原创 归并排序 python

归并排序的思想就是先递归拆分当前的数组,然后再进行排序递归的算法实现如下:def merge(nums_l,nums_r): l,r = 0,0 new_nums = list() while(l<len(nums_l) and r<len(nums_r)): if nums_l[l] <= nums_r[r]: new_nums.append(nums_l[l]) l = l+1

2021-11-09 09:29:15 244

原创 快速排序 python

使用快排对数组进行排序递归法def quickSort(nums,low,pre): if low >= pre: return nums i = low j = pre pivot = nums[low] while(i < j): while(i<j and nums[j] >= pivot): j = j - 1 nums[i],nums[j]=nums[j

2021-11-08 19:22:31 87

原创 冒泡排序 python

冒泡排序的python实现def bubbleSort(nums): arr = nums[:] if len(arr) > 1: for i in range(len(arr)): for j in range(len(arr) - i - 1): if arr[j] > arr[j+1]: arr[j],arr[j+1] = arr[j+1],arr[j]

2021-11-08 11:22:23 585

原创 二分查找 Python

二分法可以求有序数组中是否存在该值# -*- coding:utf-8 -*-nums0 = [0,1,1,1,2,3,4,5,6]nums1 = [0]nums2 = [1]nums3 = []nums4 = [1,2,3]i = 0j = 6def BinarySearch(nums,value): left = 0 right = len(nums) - 1 while (left <= right): middle = i

2021-11-06 18:41:04 153

原创 python操作mongodb基础

安装环境首先安装对应的libpip install pymongo连接对应的mongodb数据库mongo_ip = "127.0.0.1"mongo_port = 27017myclient = pymongo.MongoClient("mongodb://%s:%s/" % (mongo_ip,mongo_port))连接对应的表(如果不存在即临时创建)db = myclient["db_test"]table = db_test["test_table"]tab

2021-09-08 09:19:26 368

原创 Linux 安装&启动&卸载mongodb

Linux下安装mongodb:1. 先更新下sudo apt-get update2. 安装mongodbsudo apt install mongodb一般要几百兆的安装下载,而且安装完成后会自启动3. 查看是否启动完成sudo systemctl status mongodb这里如果都是success之类的没有出现error,就可以看作正常启动了这里也可以看出来mongodb实际上是一个systemctl类服务,也就是可以支持以下命令来控制其状态启动

2021-09-06 09:44:09 3163 2

原创 Linux qt6安装

首先qt目前正常安装的话,需要先在官网注册一个账号,邮箱激活下,记住账号密码就好,这个是目前qt安装必须的。目前安装的方式有两种,推荐大家使用在线联网安装(官网已不提供.exe.dmg.run等编译好的直接安装对应版本的版本安装包)1.通过官网下载一个开源版本压缩包,自己花个几个小时编译下,大佬觉得这个好用的话地址在这里http://download.qt.io/archive/qt/2.在线联网安装,这个目前很多软件都是这种安装方式,比如vs等,这种安装方式的好处在于下载器的版本可以.

2021-08-18 15:46:33 5432

原创 树莓派_安装k3s集群

集群:多台计算机可以使用k8s组成计算机集群,解决一台计算机不够用的事情。分布式相比集群:相比于分布式来说,集群所解决的问题是一台电脑同时做同一件事能力不够,需要多台电脑做同一件事来解决,比如网站服务器,需要很多计算机处理相同的一件事。分布式则是用多台电脑解决多个问题,更多的用处是将一件事拆分成多个可以同步进行的事务,放在多个计算机上同时执行。所以分布式和集群相似点应该是都有多个计算机。k8s vs k3s:一般集群都会使用k8s对集群进行管理和控制,但是在树莓派这种arm芯片,算力

2021-07-13 14:18:36 1900 3

原创 树莓派_查看系统版本

查看树莓派版本:cat /proc/device-tree/model一般会直接输出这个Raspberry Pi 4 Model B Rev 1.4查看对应的Linux系统版本:lsb_release -a这个一般会输出这个No LSB modules are available.Distributor ID: RaspbianDescription: Raspbian GNU/Linux 10 (buster)Release: 10Cod...

2021-07-07 13:35:12 9163

原创 Qt 6安装及VS2019相关配置

Qt6下载Qt目前已经由原来的整包下载转为在线下载安装,所以需要下载这个安装包软件这个是清华大学镜像站,由于是在线安装,安装时再选Qt版本的策略,所以这个安装包软件不在区分版本,具体Qt的版本在安装时选择选择合适的系统版本下载即可。https://mirrors.tuna.tsinghua.edu.cn/qt/official_releases/online_installers/Qt6安装安装时注册一个账户,前面的选项默认即可到这步时也是默认,建议新手不要乱选接下来

2021-05-25 17:32:42 7908 18

原创 pyqt5 绘图paintEvent

pyqt支持一些简单的画图操作,比如画点或者画线等一些简单的操作。首先是原理,就是重写paintEvent()方法实现画图(可能接触pyqt不久的话对这种实现方式感觉有点奇怪,建议先别管背后的原理,不是说就不学原理了,先会用再去关注原理,前期可以完成任务,学会原理后出现问题后,定位相关问题也比较容易)pyqt对这种画图操作并不是提供一个直接使用的方法,而是需要重写一个方法,并且具体调用的过程也隐藏了起来,这就让新手和后面定位问题带来了些许麻烦。以下是demo画点首先是需要import的

2021-04-26 17:46:09 7086 4

原创 pyqt5 设置背景颜色

pyqt新建的窗口可以设置下背景颜色,这样做的好处就是好看,以及布局出现问题时人肉debug。使用函数:setStyleSheet()示例:self.right_widget.setStyleSheet('''QWidget{background-color:rgb(245, 245, 245);}''')这个函数的作用在表现上非常强大,比如说背景颜色,字体,边框等等,因而参数也比较多,这里设置背景颜色的话对应的参数就是background-color后面的rgb就是具体的参数比如

2021-04-23 17:51:27 21951 5

原创 pyqt5 设置窗口标题及窗口图标

pyqt中设置窗口标题使用函数:setWindowTitle这个函数来自QtWidgets,使用时需继承self.setWindowTitle("重设窗口名称") # 设置窗口名设置下窗口图标使用函数:setWindowIcon这个函数来自QtWidgets,使用时需继承self.setWindowIcon(QtGui.QIcon("./img/sys-user.png")) ...

2021-04-23 17:04:50 5921 3

原创 pyqt5 设置窗口大小

使用函数:resize这个函数是QtWidgets中的一个函数,在创建一个窗口时可以使用这个函数设置下窗口基础的大小,也就是窗口出现时的大小创建窗口时继承QtWidgets即可使用self.resize(960,700)这个函数比较基础,设置好大小即可。使用函数为:setFixedSize使用这个函数的话不能最大化窗口(窗口最大化的按钮会变成灰色),默认不可进行缩小放大,即窗口为确定大小。这个函数是QtWidgets中的一个函数,在创建一个窗口时可以使用这个函数设置下窗口.

2021-04-23 15:55:16 16238 2

原创 pyqt5 基础通用demo

首先是pyqt最基础开发环境python2pip install python-qt5python3pip install PyQt5安装成功后试用下以下demo# coding = utf-8from PyQt5 import QtCore,QtGui,QtWidgetsimport sysclass MainUi(QtWidgets.QMainWindow): def __init__(self): super(MainUi,self)._

2021-04-23 15:15:26 1523

原创 pyqt pyinstaller与nuitka打包踩坑

首先是打包工具的选择:目前主流工具是选用pyinstaller和最近比较火的nuitka,其他的几个工具比较没什么特点,要么比pyinstaller打包的坑多资料少,要么没有nuitka的打包的安全性和速度快。pyinstaller首先尝试了pyinstaller,这个工具建议第一次打exe时使用,因为这个工具使用比较简单,资料全,你碰到的几乎所有的打包错误都有前人碰到过,已经有相关的解决办法,所以推荐使用,唯一的问题就是运行之后到显示第一个界面时间有点长。这个打包出现的坑不多,基本的安装和

2020-08-24 12:44:29 4334 4

原创 pyqt5 基础使用之pyinstaller打包

使用pyqt制作完成的软件,一般都是需要打包成exe后才能给别人使用,因为使用者的环境中可能没有相关的运行环境,比如pyqt运行需要pip安装多种pyqt包,甚至于用户环境中都没有python环境,此时就需要将python脚本打包成相应的exe格式。以下就是相关的简单使用。pyinstaller的安装:pyinstaller安装是非常简单的,直接用pip安装即可pip install pyinstaller这里要注意的是,如果系统中python2和python3共存的情况下,建议只安装一种

2020-08-24 11:59:15 1231

原创 pyqt5 布局管理

pyqt的布局管理,应该算是pyqt中入门的基础,是掌握pyqt界面设计中的基础中的基础,掌握后能够快速进行界面设计及相关软件的开发。pyqt的布局分类:1. 绝对布局:这种布局就是没有布局,一般新手上来随便在qt designer中随便放置控件的布局就是这个,简称没有布局。实际上这种布局就是以像素为基本单位,以相对坐标确定每个控件的基本位置,如果不使用qt designer的话,使用这种布局需要掌握俩个函数:move(),这个函数是放置每个空间的位置,两个参数,一个是x轴一个是y轴,原

2020-08-21 00:21:44 793

原创 python configparser增删改查

configparser是一种配置文件解析器。以下是该模块的基本使用方法:初始化:首先要import该模块:import configparser

2020-08-20 19:11:01 2670

原创 pyqt5 窗口添加阴影特效

一般显示的窗口都会有明显的边界或者阴影,比如说chrome也有一个淡淡的阴影。窗口添加阴影的好处有很多,比如说让用户能够明显的区分各个窗口,也可以让界面看起来更加的美观和直接。接下来就说说pyqt里面是如何添加这个窗口阴影的。QtWidgets.QGraphicsDropShadowEffect# 添加阴影self.effect_shadow = QtWidgets.QGraphicsDropShadowEffect(self)self.effect_shadow.setOffse

2020-08-16 15:42:00 5838 6

原创 pyqt5 QThread多线程示例

新手在使用pyqt开发界面时,想要使用sleep函数或者其他耗时操作,会发现窗口卡死,显示未相应这种情况。这种情况是因为pyqt在执行这个操作时,使用的是单线程,线程被阻塞导致的,所以这个时候就需要使用pyqt的qthread。有人想到用python自带的threading来进行多线程控制,这个也不是不可以,也能够解决相关问题,不过好像qthread是真线程,而且思想上也更加接近qt的信号和槽机制,比较适合在pyqt编程时使用。下面就说下这个qthread如何使用,也是一个小demo,尽量一

2020-08-12 12:59:01 2083

share_dir.rar

快速建立网络文件共享 使用方法: 1. 将 share_dir.exe 放入自己想要分享的文件的同级目录; 2. 双击运行,开始分享(会打开一个终端); 工具会自动打开默认的浏览器并自动打开分享的地址,复制该地址发送给需要分享的人,分享结束后直接关闭打开的终端即可关闭共享; 核心代码就一行,我加了多线程; 如果自己电脑装有python可以直接运行如下(没有多线程,一次只能下一个文件): 进入自己需要分享的文件夹,shift + 右键 ,选择 在此处打开Powershell窗口,按照自己的python版本输入以下命令: 1. python3 python -m http.server 8000 2. python2 python -m SimpleHTTPServer 浏览器输入http://localhost:8000/ 就可以

2020-06-16

空空如也

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

TA关注的人

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