自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Python 装饰器

函数装饰器(decorator)用于在源码中“标记”函数,在不修改原函数的前提下,以某种方式增强函数的行为。Python的装饰器基于闭包实现。闭包是指函数中再嵌套一个函数,并且引用外部函数的变量。# 在该示例中,outer函数内又定义了一个inner函数,并且inner函数又引用了外部函数outer的变量x,形成一个闭包def outer(x): def inner(y): return x + y return inner# outer(1)(2)中,第一个括号传

2022-01-23 01:20:41 235 1

原创 Python高级序列操作

Python中有许多Pythonic的序列操作,也许它们可以用更加基础的方式实现,但这样写往往更加简洁。列表推导列表推导(listcomps)是一种构建列表的快捷方式。numbers = [2022,1,22,20,38]numbers_1 = [bin(s) for s in numbers] # 将所有数字转换为二进制,并存入列表numbers_2 = [hex(s) for s in numbers if s%2 == 0] # 将所有偶数数字转换为十六进制,并存入列表print(numb

2022-01-23 01:19:04 209

原创 Python 类型管理

Python是一门动态语言,在运行时检查类型,在定义变量时不需要声明类型。这样做的代价是,不利于在运行前找出可能存在的bug,也可能出现可读性较差的问题。函数注释为解决这一点问题,Python引入了函数注释(Function Annotations)。然而,python的解释器并不会为变量进行真实的“类型检查”,这种注解的作用只是为了方便阅读。这一点和TypeScript有很大的不同。而对于列表,元组等数据结构,我们可以利用typing模块实现注解。from typing import List

2022-01-23 01:18:19 241

原创 Python数据结构进阶

每一篇Python基础教程中,几乎都会提到list,set,dict等内置数据结构。除此之外,Python还有一些进阶数据结构,它们大部分储存在collections库中,除此之外还有array.array等数据结构。你可以将它们与C++的STL相比较。这些高级数据结构在第三方库中也有着广泛应用。例如,在pytorch中,我们可以用collections.OrderedDict来建立一个神经网络,并为每一层网络命名:model = nn.Sequential(OrderedDict([

2022-01-23 01:17:22 366 1

原创 一文读懂什么是Python魔法函数

一文读懂什么是Python魔法函数Python的魔法函数是指Python的类中,一系列函数名由双下划线包裹的函数。笔者最初接触到魔法函数的使用是在Pytorch中,在Pytorch中的Dataset类中有这样的用法:除了常见的__init__构造函数外,还有__getitem__和__len__函数。在之后的代码中,笔者并没有看到__getitem__和__len__函数的显示调用。那么这样的声明与定义有什么意义?首先定义一个空类,并用dir方法获取类中的所有方法(一个空类真的是空空如也吗?)c

2021-09-06 11:17:12 2547 1

原创 12个小时带你掌握设计模式!

设计模式概论为什么要学习设计模式众所周知,面向对象编程(OOP)是编程中的一个重要思想。基于此,计算机学界诞生了一大批术语:类、继承、多态、虚方法等,一大批面向对象的语言C++、java、C#也开始大放异彩。目前大多数工科院系都开设面向对象编程(C++)课程。不少同学在学习这门课时也许会遇到和我一样的疑惑:我懂得类、继承、虚函数的使用规则,但是这样做到底有什么实在的好处呢?如果仅仅学习C++的语法,我们是不能深刻体会面向对象的优越性的,这样学到的东西只能称之为"C with class"。而要想真正理

2021-08-29 16:00:47 286

原创 设计模式(三)(C++)

设计模式(三)1.责任链模式避免将一个请求的发送者和接收者耦合在一起,让多个对象都有机会处理请求。将接收请求的对象连接成一条链,并且沿着这条链传递请求,直到有一个对象能够处理它为止。链上的每一个对象都是请求的处理者,客户端要做的仅仅是发送请求,不需要关心请求的处理细节过程。职责链模式将请求者和请求的接收者解耦。以下以“副经理和经理处理资金”为例:#include<iostream>#include<string>#include<vector>// 请

2021-08-29 15:56:16 125

原创 设计模式(二)(C++)

设计模式(二)1.适配器模式定义将一个类的接口转换成客户希望的另一个接口。适配器模式让那些接口不兼容的类可以一起工作。其包含适配器类(根据客户的需求,将适配者已有的接口转换成另一个接口)、适配者类(适配器包装的对象)。以下以“表白暗语翻译器”为例:#include <iostream>#include <string>#include <vector>// 原有接口class Target{public: virtual ~Target(

2021-08-29 15:53:41 127

原创 设计模式(一)(C++)

设计模式(一)1.单例模式定义单例模式就是一个类只能被实例化一次 ,更准确的说是只能有一个实例化的对象的类。这个类只能有一个实例(只有在指针为空时创建新对象,否则返回原有对象);它必须自己创建这个实例(构造函数为私有,然后通过getInstance方法间接访问);它必须自己向整个系统提供这个实例(getInstance为静态成员函数)。注意:若为多线程环境,创建实例时需要用互斥锁加以保护。#include <iostream>#include <mutex>

2021-08-29 15:51:27 335

原创 学妹问我的终端为什么这么好看———windows命令行美化指南(从cmd到oh-my-posh)

学妹问我的终端为什么这么好看———windows命令行美化指南(从cmd到oh-my-posh)前言一个美观的开发界面,对于调试程序、管理代码版本、提升编程体验等有着至关重要的作用。本文介绍了windows平台下命令行界面的美化方法,以期让读者拥有更好的编程体验。在图形化用户界面(GUI)大规模普及之前,命令行界面(CLI)一直是电脑界的主流。CLI开销小、运行快速,但是非专业用户使用不方便。如今,不从事开发的电脑用户接触到命令行的机会已经很少了(非计算机系学习C,可能只会在“命令行参数”一节接触到命

2021-08-18 22:45:47 21992 38

原创 用python绘制电路图像

用scipy中的odeint模块可以求微分方程的数值解,笔者基于此功能创作了一个极其简陋的电路计算器,给定电路参数,可以绘制出对应的波形。from scipy.integrate import odeintimport matplotlib.pyplot as pltimport numpy as npimport math'''以下所有数据均为国际单位!!'''Vs = 1 # 电压源电压(恒压源值,方波峰值,交流源峰值)iS = 1 # 电流源电流(同上)T0 = 5 # 周期

2021-04-29 00:54:00 2018 4

原创 Python简单GUI入门

python的GUI库有tkinter,wxpython等,但开发难度较大,在此博主向大家安利一个十分简单的GUI库—easygui安装pip install easygui使用import easygui as guigui.msgbox(msg='tql', title='tql', ok_button='OK') #* 消息弹窗gui.ccbox(msg=' 强吗', title='强吗', choices=('强', '超强'), image=None) #* 双选弹窗,返回true/

2021-03-14 20:16:15 284

原创 c++函数模板

函数模板函数模板使用泛型定义函数,也叫做通用编程。它并不会创建函数,而只告诉编译器如何定义函数。1.基本结构此函数可以交换任意两个数的值(无论类型):template <typename T>void Swap(T &a,T &b){ T temp; temp=a; a=b; b=temp;}示例:#include <iostream>using namespace std;template <typename T>

2021-03-11 18:06:23 113

原创 Python爬取动态网站(进阶版)

该代码是https://blog.csdn.net/m0_51908955/article/details/114459226的进阶版,引入多线程爬虫,一次可爬五个id。代码import requestsfrom fake_useragent import UserAgentimport threadingimport jsonimport reimport osglobal ii = 0ua = UserAgent() # 生成假的浏览器请求头,防止被封ipuser_agent

2021-03-08 23:48:05 167 1

原创 Python爬取动态网页中的图片

动态网页爬取是爬虫学习中的一个难点。本文将以知名插画网站pixiv为例,简要介绍动态网页爬取的方法。写在前面本代码的功能是输入画师的pixiv id,下载画师的所有插画。由于本人水平所限,所以代码不能实现自动登录pixiv,需要在运行时手动输入网站的cookie值。重点:请求头分析创建文件夹根据画师的id创建文件夹(相关路径需要自行调整)。def makefolder(id): # 根据画师的id创建对应的文件夹 try: folder = os.path.join('E:\pixivi

2021-03-06 22:21:41 1179 6

原创 xpath简易操作(使用chrome插件)

在爬虫中,xpath用于提取信息,但是xpath语法上手难度较高。本文将力求让读者掌握一种较为简单的xpath使用方法。插件下载在chrome应用商店中下载插件“xpath helper”(需要科学上网)下载完毕后,使用ctrl+shift+x打开插件(也用同样的方式关闭),将光标置于某一个元素之上,点击shift,即可看到元素对应的xpath路径。一般来说,页面上同类元素有着结构相似的xpath路径,我们以CSDN视频热榜为例:第一条的xpath:/html/body/div[@id='ap

2021-03-04 23:25:39 711 2

原创 使用MySQL管理爬虫所得数据——入门篇

利用MySQL数据库,可以轻松地管理爬虫所得的海量数据。对MySQL以及pymysql不太熟悉的读者,可以先学习MySQL教程和pymysql教程。第三方库requestsbeautifulsouppymysql爬取数据本文以https://www.bitpush.news/covid19/为例:打开页面,右键点击F12,找到所需爬取的数据在HTML中的位置:def getdata(): res = requests.get("https://www.bitpush.news/cov

2021-03-01 08:53:37 329 4

原创 解决OneNote复制粘贴代码出现的一个bug

问题当我们把OneNote中的代码片段粘贴到vscode中,并运行代码,往往会显示下列问题:原因常见的空格分为3种:\u00A0:不间断空格,主要用在office中,让一个单词在结尾处不会换行显示\u0020:半角空格(英文符号),代码中常用的\u3000:全角空格(中文符号),中文文章中使用OneNote种的空格为第一种,而VScode中的空格为第二种。因此空格属性不匹配,会报错。解决方案选择左侧的“搜索”一栏,将文档中的空格(从文档复制粘贴)替换为需要的空格(直接输入即可):替换

2021-02-21 22:49:58 1860 1

原创 MATLAB中绘制3维图的一个注意事项

问题当我们使用MATLAB绘制多元函数的图像时,如果我们的函数表达式中含有乘法、除法、乘方,常常会发生这样的问题:[x,y]=meshgrid(-10:0.1:10,-10:0.1:10);z=sin(x)*sin(y)/(x*y);mesh(x,y,z);此时不但不会显示图像,而且还会发出警告:解决方案这是由于我们的运算对象不是单纯的一个数,而是一个向量。我们应该在所有的*、/、^前面加‘.’:[x,y]=meshgrid(-10:0.1:10,-10:0.1:10);z=sin

2021-02-20 19:55:06 437

原创 Python爬取豆瓣top250书籍(beautifulsoup法)

库需求requests(对网站发起请求)beautifulsoup(提取html信息)re(正则表达式)fake_useragent(生成假的请求头)xlwt(处理excel文档)准备打开豆瓣Top250书籍网站https://book.douban.com/top250,观察其html特点,找到储存书本信息的位置。代码import requestsfrom bs4 import BeautifulSoupfrom fake_useragent import UserAgen

2021-02-20 18:21:16 980

原创 C++小游戏实战——生命游戏

简介康威生命游戏(英语:Conway’s Game of Life),又称康威生命棋,是英国数学家约翰·何顿·康威在1970年发明的细胞自动机。规则生命游戏中,对于任意细胞,规则如下:每个细胞有两种状态 - 存活或死亡,每个细胞与以自身为中心的周围八格细胞产生互动当前细胞为存活状态时,当周围的存活细胞低于2个时(不包含2个),该细胞变成死亡状态。(模拟生命数量稀少)当前细胞为存活状态时,当周围有2个或3个存活细胞时,该细胞保持原样。当前细胞为存活状态时,当周围有超过3个存活细胞时,该细胞变成

2021-02-16 14:54:24 1946

原创 Python创作新年祝福语

新春将至,笔者模仿“狗屁不通文章生成器”,创作了一个简易的新年祝福语自动生成器。希望各位看官喜欢!代码import randomdef generateWish1(): list1=['椒花献颂,','春回柳叶,','天开淑景,','地暖春风,','天高地阔,','风光胜旧,','岁序更新,','天翔紫燕,','喜鹊鸣春,','花香四季,','月满一轮,','花迎春光,','牛耕绿野,','江山秀丽,','虎啸青山,','无边春舍,', '有福人家,','龙吟国瑞,','虎啸年丰,'

2021-02-11 11:44:43 4655 9

原创 C++入门——类、对象、运算符重载

C++具有完善的面向对象编程的功能。本文将以“点”这一对象相关方法的实现,讲解类的创建、函数的构造、运算符重载的方法,供初学者参考。代码#include <iostream>#include <cmath>using namespace std;class point{public: point(){}; //无参构造函数,根据需要可自行编写有参构造函数 point operat

2021-02-07 22:23:17 596

原创 Python绘制二元函数图像

利用Python的Matplotlib库可以实现多元函数的可视化,以下以一段代码说明:第三方库需求Matplotlib(数据可视化)numpy(数学计算库)代码from matplotlib import pyplot as pltimport numpy as npfrom mpl_toolkits.mplot3d import Axes3Dfigure = plt.figure()ax = Axes3D(figure)#设置图像为三维格式X = np.arange(-10,10

2021-02-06 13:43:15 11355 8

原创 C++入门——雇员信息管理系统

一个十分简单的雇员信息管理系统,涉及到类的知识点(构造函数、析构函数、全局变量、函数调用等),适合C++零基础者学习。#include <iostream>using namespace std;class employee //定义employee类{public: employee(); //无参构造函数 employee(int inputGrade, int inputPay); //有参构造函数

2021-02-06 11:44:44 905

原创 MATLAB绘制二元函数图像

MATLAB内置有强大的绘图功能,以下将以几个实例进行说明。绘制三维参数曲线t=-5:0.1:5;%设定参数范围theta=0:0.02*pi:2*pi;%注意如果有两个参数的话,它们的维数必须统一x=sqrt(1+t.^2).*cos(theta);%注意乘方和乘法的写法y=sqrt(1+t.^2).*sin(theta);z=2*t;%设定参数方程plot3(x,y,z,'-g');%绘图,最后一个选项为颜色,绿色title('参数曲线');%添加标题效果:可以拖动图片从不同

2021-02-05 23:29:55 18176 2

原创 MATLAB入门之旅

2021-02-05 22:38:12 217

原创 Multisim使用入门

Multisim是美国NI公司研发的一款电路仿真软件。本文将以几个基础的实例介绍其使用。万用表的使用新建文件后,点击左上角的元件部分,在其中选择电源,电阻等原器件。在右边的器件组中选择第一个(万用表),依照下图方式连接电路(注意电路必须接地):点击万用表更改其测量选项:点击上方的“RUN”按钮,即可读取电压表和电流表的取值:信号发生器与示波器的使用以电容的充放电电路为例:选择右边工具栏的第二个工具(信号发生器),设置参数如下,以产生一个频率为50Hz的方波:选择第四个工具(

2021-02-05 00:27:12 10881

原创 Python创作词云图片

利用python可以生成一些漂亮的词云图片。第三方库wordcloud(生成词云的第三方库)matplotlib(绘图第三方库)jieba(中文分词第三方库)代码from wordcloud import WordCloudimport matplotlib.pyplot as plt import jieba def wordcloud(): text = open("E://vscode-python//text.txt",'r',encoding='utf-8').

2021-02-04 21:29:06 390 2

原创 解决Python第三方库安装缓慢的方法

一般情况下,我们在命令行中使用pip install 库名的方法安装python第三方库。但由于一些众所周知的原因,这种方法下载速度较慢,容易error,有时候不得不需要去官网手动安装,十分繁琐。解决方法使用pip install -i https://pypi.tuna.tsinghua.edu.cn/simple 库名 命令,在清华镜像开源网站上下载第三方库。可以看到下载速度有了飞速提升。注意这种方法不是万能的,在遇到版本等问题时依然会报错。...

2021-02-04 19:53:11 714 3

原创 LTspice使用入门

LTspice是一款优秀的电路仿真软件,在电子电路的学习中有重要意义。本文将通过一些实例来展示其应用。二极管的单向导通性新建文件找到工具栏,从左至右依次为:导线、地线、设置节点、电阻、电容、电感、二极管、综合器件选择(内含电源)、移动、拖拽。选择电源的方法(打开component):绘制如图所示的电路图:说明:1、LTspice中的电路必须接地,否则在运行时系统会因为找不到0V点而报错。2、点击元件,对元件进行初始化(设定参量等)3、本示例中需要用到正弦电源。打开“高级设置”:

2021-02-03 21:55:07 20648 3

原创 Python求解常微分方程

sympy、numpy、scipy、matplotlib是强大的处理数学问题的库,可以执行积分、求解常微分方程、绘图等功能,其开源免费的优势可以与MATLAB媲美。一阶常微分方程from sympy import *f = symbols('f', cls=Function)#定义函数标识符x = symbols('x')#定义变量eq = Eq(diff(f(x),x,1),f(x))#构造等式,即dy/dx=y#diff(函数,自变量,求导次数)print(dsolve(eq, f(x

2021-02-03 18:04:19 8358 2

原创 Python爬取网络小说

第三方库需求requests(爬虫所需)BeautifulSoup(爬虫所需)docx(导入word文件所需)代码# -*- coding:UTF-8 -*-from bs4 import BeautifulSoupimport requestsfrom docx import Documentdef crawler(i): target = 'http://book.sbkk8.com/waiguo/dongyeguiwu/eyi/'+str(206670-i)+'.ht

2021-02-02 18:41:01 1950 7

原创 STM32开发入门(三)——呼吸灯

stm32性能强大,但其开发难度又显著高于Arduino等单片机。本文将通过“呼吸灯”程序,介绍stm32中PWM方波的产生及中断函数的应用。往期回顾STM32开发入门(一)——流水灯https://blog.csdn.net/m0_51908955/article/details/113528296STM32开发入门(二)——Hello Worldhttps://blog.csdn.net/m0_51908955/article/details/113529909软件Keil 5(单片机集

2021-02-01 23:50:55 5960 2

原创 STM32开发入门(二)——Hello World

stm32性能强大,但其开发难度又显著高于Arduino等单片机。本文将通过“Hello World”程序,介绍串口监视器在stm32开发中的作用。软件Keil 5(单片机集成开发环境)STM32CubeMX(自动配置stm32编程的相关文件)FLYMCU(stm32串口下载软件,也可用ST-LINK代替)XCOM(串口监视器)步骤GPIO、RCC、SYS的配置、生成文件的方法见:https://blog.csdn.net/m0_51908955/article/details/11352

2021-02-01 21:55:55 1635 2

原创 STM32开发入门(一)——流水灯

stm32是性能强大,但其开发难度又显著高于Arduino等单片机。本文将通过流水灯程序,介绍stm32开发的一些基本操作。基本介绍常见stm的编程方式有三种:寄存器式、标准库式、HAL库式。其中HAL库上手较为简单。本文将以HAL库式为基础介绍。软件Keil 5(单片机集成开发环境)STM32CubeMX(自动配置stm32编程的相关文件)FLYMCU(stm32串口下载软件,也可用ST-LINK代替)XCOM(串口监视器)准备打开图中的“File”,新建一个stm32项目(“Ne

2021-02-01 21:09:29 5638 6

原创 哥德巴赫猜想(C语言实现)

用极基础的c语言所能做的最强的事了…代码#include<stdio.h>#pragma warning(disable:4996)int prime(int x){ int flag = 1; int i; if (x == 2) return flag; else { for (i = 2; i < x; i++) { if (x % i == 0) { flag = 0; break; } } return f

2021-01-30 00:10:30 3687

原创 Arduino模拟简易倒车雷达系统

利用Arduino及配套原件,可以模拟简易的倒车雷达。由于本人水平所限,模型还有许多不尽人意的地方。还请大家多多包涵!实验器材Arduino UNO面包板红黄绿LED各一个1602 LCD 显示屏有源蜂鸣器超声波传感器导线若干效果图及视频 Arduino-简易倒车雷达系统 代码#include<LiquidCrystal_

2021-01-26 18:57:07 5628 4

原创 Arduino演奏the truth that you leave

Arduino演奏the truth that you leave利用Arduino及配套的蜂鸣器等,可以实现音乐的演奏。由于本人水平所限,该视频仅仅截取了原曲的一部分,而且音调有偏差的地方,还请多多包涵!视频 Arduino-The Truth that You Leave 头文件下载地址:https://github.com/johnrickman/LiquidCrystal_

2021-01-25 21:14:53 2559 3

原创 多功能函数计算器(MATLAB实现)

多功能函数计算器(MATLAB实现)涉及常见的函数计算,处理复杂函数时可能会有bug%函数多功能计算器,包含求导、积分、泰勒展开、求反函数、求极限、求零点等操作。syms xwhile 1 s=input('input your functions:\n','s'); f=str2sym(s); disp('the function is:'); disp(f); flag=input('choose the mode---0:derivative,1:int

2021-01-20 15:41:58 2172

空空如也

空空如也

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

TA关注的人

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