自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(61)
  • 问答 (1)
  • 收藏
  • 关注

原创 python修饰器

修饰器的概念和作用什么是修饰器修饰器又叫装饰器,本身也是一个函数,是在原有的函数或者是方法上增添一些额外的功能。修饰器的作用概括的讲,装饰器的作用就是为已经存在的对象添加额外的功能。比如说这个函数是注册的功能,但有时候这个用户在执行这个操作的时候,他是已注册的用户,我这个函数已经写好了,不想动它了,那么我们就可以通过修饰器来给这个函数增加一个登录的功能。它经常用于有切面需求的场景,比如:插入日志、性能测试、事务处理、缓存、权限校验等场景。装饰器是解决这类问题的绝佳设计,有了装饰器,我们就可

2021-11-17 20:40:43 1796

转载 蓝桥杯--单词分析

题目描述小蓝正在学习一门神奇的语言,这门语言中的单词都是由小写英文字母组 成,有些单词很长,远远超过正常英文单词的长度。小蓝学了很长时间也记不住一些单词,他准备不再完全记忆这些单词,而是根据单词中哪个字母出现得最多来分辨单词。现在,请你帮助小蓝,给了一个单词后,帮助他找到出现最多的字母和这 个字母出现的次数。输入描述输入一行包含一个单词,单词只由小写英文字母组成。对于所有的评测用例,输入的单词长度不超过 1000。输出描述输出两行,第一行包含一个英文字母,表示单词中出现得最多的字母是哪 个。如

2021-11-16 21:34:24 204

原创 system使用

头文件stdlib.h函数原型int system(const char * command)函数功能执行 dos(windows系统) 或 shell(Linux/Unix系统) 命令,参数字符串command为命令名。另,在windows系统下参数字符串不区分大小写说明在windows系统中,system函数直接在控制台调用一个command命令。在Linux/Unix系统中,system函数会调用fork函数产生子进程,由子进程来执行command命令,命令执行完后随即返

2021-11-16 21:26:44 602

原创 bug纠错--数组越界访问

#include<stdio.h>int main(){ int i=0; int a[3]={0}; for(;i<=3;i++){ a[i]=0; printf("hello world\n"); } return 0;}错因对 数组 a 进行了越界访问,而访问的地址正是 变量 i 在内存中的地址,在第四次循环时又将 变量i 的值置为 0 ,因此程序会陷入无限循环...

2021-11-16 21:25:44 234

原创 Windows下Mysql压缩包版安装

MySQL版本Mysql-8.0.26安装环境Windows10专业版重要的事情说三遍:管理员模式下运行!!!管理员模式下运行!!!管理员模式下运行!!!安装步骤1.配置环境变量将解压后的Mysql的bin目录添加到Path环境变量中(环境变量还不会配的请自行百度)2.在解压后的 MySQL 的 bin 目录下新建配置文件 my.ini(该文件实际为txt文件),内容如下[mysqld]basedir=D:\mysql-8.0.26-winx64\mysql-8.0.2

2021-11-11 21:29:21 1052

原创 Windows下cmd命令

开胃小菜shutdown -s -t 60 -c -f各参数的意思:-s 动作为关机-r 为重启-a 为取消关机-t 60 延迟60秒关机-c “想要显示的注释”-f 关机时强制关闭所有程序而不显示任何警告。示例shutdown -s -t 60解释:表示系统会在 60 秒后关机,可用 shutdown -a 解除常用命令ping www.g.cn# 最常见的用法,判断本机能否连接互联网ping -l 2000 -t 192.168.1.1# 指定每次以2000by

2021-10-23 11:04:34 131

原创 打印金字塔

人生就像一座金字塔程序实现#include<stdio.h>void fu(int n){ char origin='A'; for(int i=0;i<n;i++){ for(int j=0;j<n-1-i;j++) printf(" "); for(int j=0;j<=i;j++) printf("%c",'A'+j); for(int j=0;j<i;j++

2021-10-23 10:54:50 74

原创 等价关系C语言实现

数学定义设 R 是集合 A 上的一个二元关系,若R满足:​ 自反性:∀ a ∈A, => (a, a) ∈ R​ 对称性:(a, b) ∈R∧ a ≠ b => (b, a)∈R​ 传递性:(a, b)∈R,(b, c)∈R =>(a, c)∈R则称R是定义在A上的一个等价关系。设R是一个等价关系,若(a, b) ∈ R,则称a等价于b,记作 a ~ b程序实现#include<stdio.h>#define N 6/*是否自反*/int fu1

2021-10-23 10:36:50 1443

原创 C语言实现笛卡尔积

简介笛卡尔乘积是指在数学中,两个集合 X 和 Y 的笛卡尔积(Cartesian product),又称直积,表示为 X×Y,第一个对象是 X 的成员而第二个对象是* Y的所有可能有序对的其中一个成员假设集合A={a, b},集合B={0, 1, 2},则两个集合的笛卡尔积为{(a, 0), (a, 1), (a, 2), (b, 0), (b, 1), (b, 2)}。类似的例子有,如果A表示某学校学生的集合,B表示该学校所有课程的集合,则A与B的笛卡尔积表示所有可能的选课情况。A表示所有声母的集合

2021-10-04 20:03:44 3219

原创 Python将图片转化为视频和将视频转化为图片

核心函数简介cv2.VideoWriter()VideoWriter(filename, fourcc, fps, frameSize[, isColor]) -> <VideoWriter object>第一个参数是要保存的文件的路径fourcc 指定编码器fps 要保存的视频的帧率frameSize 要保存的文件的画面尺寸isColor 指示是黑白画面还是彩色的画面,默认为彩色cv2.VideoWriter_fourcc()fourcc = cv2.VideoW

2021-09-26 20:48:18 887

原创 a[2]与2[a]的区别

假设声明了一个数组int a[8];以下两种访问是等效的,即2[a]a[2]原因这和编译器访问数组时的计算方式有关,假设访问 a[2] ,编译器的计算方式如下:*(a+2)而在访问 2[a] 时,计算方式如下:*(2+(a))化简后相当于*(2+a)总结a[2] 与 2[a] 之所以相同,是因为C实现下标的方法。虽然对编译器来说,这两种方式并无差别。但是我们应该避免2[a]这种写法,因为它会大大影响程序的可读性...

2021-09-26 19:04:41 627

原创 C语言可变参数--借助stdarg.h

C语言可变参数–借助stdarg.h简介stdarg.h 头文件定义了一个变量类型 va_list 和三个宏,这三个宏可用于在参数个数未知(即参数个数可变)时获取函数中的参数。可变参数的函数通在参数列表的末尾是使用省略号(,…)定义的。使用模板 int val=0; int i=0; va_list ap; /*定义一个va_list*/ va_start(ap, num_args);/*开始,num_args为要计算的参数的个数*/ for(i = 0; i

2021-09-25 15:35:04 92

原创 快慢指针总结

快慢指针定义快慢指针中的快慢指的是移动的步长,即每次向前移动速度的快慢。例如可以让快指针每次沿链表向前移动2,慢指针每次向前移动1次。快慢指针的快慢只是相对而言快慢指针示例判断单链表是否存在环如果链表存在环,就好像操场的跑道是一个环形一样。此时让快慢指针都从链表头开始遍历,快指针每次向前移动两个位置,慢指针每次向前移动一个位置;如果快指针到达NULL,说明链表以NULL为结尾,没有环。如果快指针追上慢指针,则表示有环。代码如下:#include<stdio.h>#includ

2021-09-19 21:13:51 512

原创 qsort()--快速排序函数

函数详情函数原型void qsort( void *base, size_t nmemb, size_t size, int (*compar)(const void *, const void *) );头文件:<stdlib.h>函数功能​ qsort()函数的功能是对数组进行排序,数组有nmemb个元素,每个元素大小为size。各参数含义​参数base : base指向数组的起始地址,通常该位置传入的是一个数组名参数n

2021-09-18 19:52:03 90

原创 unsign int 与 int

就如同int a;一样,int 也能被其它的修饰符修饰。除void类型外,基本数据类型之前都可以加各种类型修饰符,类型修饰符有如下四种:signed----有符号,可修饰char、int。int是默认有符号的。unsigned-----无符号,修饰int 、char,short等long------长型,修饰int 、double等short------短型,修饰int我们主要来看一下signed和unsigned与int之间的联系与区别。什么叫做有符号,什么叫做无符号这个问题其实很简单,

2021-09-18 19:07:01 673

原创 C语言sizeof与strlen详解

https://blog.csdn.net/chuxinchangcun/article/details/120219122?spm=1001.2014.3001.5501注意strlen() 与 sizeof 的返回类型均为 size_tsizeof()返回类型造成的坑int i ; //全局变量未初始化系统默认为0int main(){ i--; //i变成-1 if(i > sizeof(i)) { printf(">\n"); .

2021-09-18 18:45:14 96

原创 Anaconda安装及使用

以Windows10环境为例,介绍Anaconda的下载及使用Anaconda介绍Anaconda指的是一个开源的Python发行版本,其包含了conda、Python等180多个科学包及其依赖项。[1] 因为包含了大量的科学包,Anaconda 的下载文件比较大(约 531MB),如果只需要某些包,或者需要节省带宽或存储空间,也可以使用Miniconda这个较小的发行版(仅包含conda和Python)其内置:Anaconda Navigtor :用于管理工具包和环境的图形用户界面.

2021-09-11 21:57:32 163

原创 pip常用命令汇总及常用源

pip --version # 显示版本和路径pip --help #获取帮助pip install -U pip #升级pippip install SomePackage #最新版本pip install SomePackage==1.0.4 #指定版本pip install SomePackage>=1.0.4 #最小版本pip install --upgrade SomePackage #升级包,通过使用==,>=, <=, >, < 来指定一个版本号

2021-09-11 20:31:37 612

原创 反转单链表

反转单链表头插法逆序,尾插法顺序#include<stdio.h>#include<time.h>#include<stdlib.h>typedef struct node{ int data; struct node *next;}node;/*产生随机链表*/ node *creatnode(int n){ srand(time(NULL)); node *head=(node *)malloc(sizeof(node)); head-

2021-09-04 18:36:26 59

原创 Java环境安装

Java环境安装1.下载 jdk – Java软件开发工具包2.在系统环境变量中添加 JAVA_HOME ,其值为 jdk 的保存路径3.在系统环境变量 Path 中添加两条值%JAVA_HOME%\bin%JAVA_HOME%\jre\bin3.单击保存注:若要删除 Java 环境,要记得删除上面添加的内容...

2021-09-04 18:15:18 56

原创 数制、码制、进制转换

数制、码制、进制转换数码数码,即单位数字,作用有两方面:表示不同数量的大小表示不同的事物码制为了便于记忆和查找,在编制代码时总要遵循一定的规则,而这些规则就称为码制。每个人都可以根据自己的需要选定编码规则,编制出一组代码。考虑到信息交换的需要,还必须制定一些大家共同使用的通用代码。例如ASCII码(美国信息交换标准代码)。进制转换对于整数部分,采用除留余数法,即以要转换成的进制为除数。除基取余,逆序排列对于小数部分,乘基取整,正序排列注意:对于小数部分,有精度限制...

2021-08-30 18:36:40 303

原创 关于C中的 * 与 & 的理解

在 C 中:* 号作为运算符时,是双目运算符,表示两个数的相乘* 号用于定义指针时,是指针定义符,表示定义一个指针在指针变量前加 * 号,是间接访问运算符,表示访问指针变量所指向的那个值在变量前加取 & 符,表示取得该变量的地址理解在C中,变量名其实就是一串数字,而计算机能识别的也只能是数字。只是因为计算机对这串数字处理的指令不同,而导致了不同的结果。例如:对与 123434 这串数字,计算机可以将这串数字当成一个值,直接与其他数值进行四则运算;也可以把这串数字当成地址

2021-08-27 10:29:12 1096

原创 Python高阶函数map() 、reduce()、filter()、sorted()

Python高阶函数Python内置了一些高阶函数。map()map()函数接收两个参数,一个是函数,一个是 Iterable ,map 将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator 返回>>> def f(x):... return x * x...>>> r = map(f, [1, 2, 3, 4, 5, 6, 7, 8, 9])>>> list(r)[1, 4, 9, 16, 25, 36

2021-08-26 10:26:40 56

原创 Python生成器与迭代器

Python生成器与迭代器生成器通过列表生成式,我们可以直接创建一个列表。但是,受到内存限制,列表容量肯定是有限的。而且,创建一个包含100万个元素的列表,不仅占用很大的存储空间,如果我们仅仅需要访问前面几个元素,那后面绝大多数元素占用的空间都白白浪费了。所以,如果列表元素可以按照某种算法推算出来,那我们是否可以在循环的过程中不断推算出后续的元素呢?这样就不必创建完整的list,从而节省大量的空间。在Python中,这种一边循环一边计算的机制,称为生成器:generator。要创建一个generat

2021-08-26 10:24:44 67

原创 C 预处理

C 预处理–菜鸟教程笔记C 预处理器不是编译器的组成部分,但是它是编译过程中一个单独的步骤。简言之,C 预处理器只不过是一个文本替换工具而已,它们会指示编译器在实际编译之前完成所需的预处理。我们将把 C 预处理器(C Preprocessor)简写为 CPP。所有的预处理器命令都是以井号(#)开头。它必须是第一个非空字符,为了增强可读性,预处理器指令应从第一列开始。下面列出了所有重要的预处理器指令:指令描述#define定义宏#include包含一个源代码文件#

2021-08-25 14:40:00 269

原创 memset()--初始化一段数据

函数原型void *memset(void *s, int c, unsigned long n);函数功能将指针变量 s 所指向的前 n 字节的内存单元用一个“整数” c 替换,注意 c 是 int 型。s 是 void* 型的指针变量,所以它可以为任何类型的数据进行初始化。memset() 的作用是在一段内存块中填充某个给定的值。因为它只能填充一个值,所以该函数的初始化为原始初始化,无法将变量初始化为程序中需要的数据。用memset初始化完后,后面程序中再向该内存空间中存放需要的数据。

2021-08-25 09:51:07 186

原创 定义和声明

词义定义:(definition)需要建立存储空间。声明:(declaration)不需要建立存储空间。我们声明的最终目的是为了提前使用,即在定义之前使用,如果不需要提前使用就没有单独声明的必要,变量是如此,函数也是如此,所以声明不会分配存储空间,只有定义时才会分配存储空间。语义定义:所谓定义就是(编译器)创建一个对象,为这个对象分配一块内存,并给它取上一个名字,这个名字就是就是我们经常所说的变量名或对象名。(对于变量,编译器确定变量的大小,然后在内存中开辟空间来保存其数据;对于函数,编译器会

2021-08-25 09:07:39 150

原创 C语言实现贪吃蛇--1.1.1

C语言实现贪吃蛇–1.1.1实现思路设置一个循环在循环中进行游戏事件的判断和响应难点解决(以本程序为例)问:如何实现绘制游戏界面?答:在Windows下进行贪吃蛇的编写,可以调用Windows提供的一些API和结构/**********获取句柄**********/HANDLE Output = GetStdHandle(STD_OUTPUT_HANDLE);/*将光标移动到指定位置*/void getPosition(int x, int y) { COORD coord;

2021-08-24 13:10:28 301

原创 结构体--内存对齐

内存对齐我们知道,整型变量有自己的大小,浮点型变量有自己的大小,数组也有自己的大小,那么结构体有没有自己的大小呢?回答是肯定的,结构体也有自己的大小,但是结构体的大小并不是简单地将每个结构体成员的大小相加就能得到。由此引发了一个问题–内存对齐。内存对齐的原因我们都知道计算机是以字节(Byte)为单位划分的,理论上来说CPU是可以访问任一编号的字节数据的,我们又知道CPU的寻址其实是通过地址总线来访问内存的,CPU又分为32位和64位,在32位的CPU一次可以处理4个字节(Byte)的数据,那么CP

2021-08-23 09:52:05 191

原创 getch()、getche()、kbhit()的使用

getch()、getche()、kbhit()的使用函数作用是否为标准库函数头文件getch()键盘上读入一个字符,不将读入的字符回显在显示屏幕上否conoi.hgetche()键盘上读入一个字符,并将读入的字符回显到显示屏幕上。否conio.hgetchar()键盘上读入一个字符,需等待输入直到按回车是string.hkbhit()非阻断函数,运行时不会暂停程序,作用是若有键盘输入,则返回输入的值(应该是键值转换),若没有则返回0。否c

2021-08-22 18:06:31 2178

原创 缓存溢出(一)

缓存溢出(一)​ 缓冲区是程序运行时计算机内存中的一个连续的块,它保存了给定类型的数据。问题随着动态分配变量而出现。为了不用太多的内存,一个有动态分配变量的程序在程序运行时才决定给他们分配多少内存。​ 如果程序在动态分配缓冲区放入太多的数据会有什么现象?它溢出了,漏到了别的地方。一个缓冲区溢出应用程序使用这个溢出的数据将汇编语言代码放到计算机的内存中,通常是产生root权限的地方。单单的缓冲区溢出,并不会产生安全问题。只有将溢出送到能够以root 权限运行命令的区域才行。这样,一个缓冲区利用程序将

2021-08-21 17:12:05 327

原创 Python总结--概述

Python总结–概述Python基础语法标识符第一个字符必须是字母表中字母或下划线 _ 。标识符的其他的部分由字母、数字和下划线组成。标识符对大小写敏感。python保留字保留字即关键字,我们不能把它们用作任何标识符名称。Python 的标准库提供了一个 keyword 模块,可以输出当前版本的所有关键字:>>> import keyword>>> keyword.kwlist['False', 'None', 'True', 'and', '

2021-08-19 15:15:53 205

原创 C语言总结–概述

C语言总结–概述C语言程序组成#include<stdio.h> //预处理指令int main(){ //主函数,程序从这里开始执行 printf("Hello World!"); //print()函数,输出文本信息 return 0; //向调用者返回一个值}注意:C程序就是执行主函数里的代码,也可以说这个主函数就是C语言中的唯一入口,而main前面的int就是主函数的类型一个程序有且只有一个主函数printf()是格式输出函数,

2021-08-19 15:09:41 214

原创 Python实现贪吃蛇--1.1.1

最近完成了Pygame库的基础入门学习,写一个小游戏练练手。友情提示:练手项目有Bug,复制需谨慎类型一:窗口可调import pygameimport sysimport randomclass Snack(): def __init__(self): self.length = 3 # 蛇身的长度 # bodys中的每个字典为蛇身每一节的位置 self.bodys = [ {"x": 50, "y": 50,

2021-08-18 16:47:27 141

原创 pytorch安装

Pytorch安装1.按 window键+R键,打开下列窗口2.输入cmd,然后进入命令提示符窗口3.输入以下命令,之后pip将会进行自动安装pip install torch==1.8.0+cpu torchvision==0.9.0+cpu torchaudio==0.8.0 -f https://download.pytorch.org/whl/torch_stable.html完成后的界面...

2021-08-08 16:04:10 148 1

原创 冒泡排序(BubbleSort)

冒泡排序(BubbleSort)一般冒泡排序的写法#include<stdio.h>void bul(int *a,int length){ for(int i=0;i<length-1;i++){ for(int j=0;j<length-1-i;j++){ if(a[j]>a[j+1]){ //交换 int temp=a[j]; a[j]=a[j+1]; a[j+1]=temp; } } //输出每一趟 p

2021-08-07 14:44:32 96

原创 简单计算器的实现

简单计算器的实现思路以字符串形式读入每一个数将每个字符转化为对应的数字,并以单链表存储根据选择进行相应的操作代码实现#include"shenming.h"#include"shixiang.h"int main(){ int n; while(1){ map(); printf("请输入你的选择:"); scanf("%d",&n); switch(n){ case 1 : _add(); break; case 2 :

2021-08-05 12:02:31 106

原创 大数除法-C语言实现

大数除法思路以字符串形式读入每一个数将每个字符转化为对应的数字,并以单链表存储代码实现#include<stdio.h>#include<stdlib.h>#include<math.h>#include<string.h> int length1=0,length2=0;typedef struct node{ int data; struct node *next; //声明链表 }node;//打印链表 void p

2021-08-05 11:58:58 740

原创 大数乘法-C语言实现

大数乘法思路以字符串形式读入每一个数将每个字符转化为对应的数字,并以单链表存储每位相乘,将得到的新链表入栈代码实现#include<stdio.h>#include<stdlib.h>#include<string.h> int length1=0,length2=0;typedef struct node{ int data; struct node *next; //声明链表 }node;//打印链表 void print(n

2021-08-05 11:56:59 285

原创 大数减法-C语言实现

大数减法思路以字符串形式读入每一个数将每个字符转化为对应的数字,并以单链表存储判断长度,用长度长的减去长度小的中对应的每一位(若不足,需做进位处理)代码实现#include<stdio.h>#include<stdlib.h>#include<string.h> int length1=0,length2=0;typedef struct node{ int data; struct node *next; //声明链表 }node;/

2021-08-05 11:54:36 337

空空如也

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

TA关注的人

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