自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 从零开始,学习如何编写自己的编译器

编译器、转译器和解释器是三个类似的概念。编译器是一种程序,它将整个程序的源代码转换为计算机处理器可以执行的机器代码。转译器用于将一种高级语言转换为另一种高级语言,例如将Java转换为Javascript。解释器是一种直接读取并执行源代码的程序,不会创建可执行程序。

2023-04-12 03:34:01 1053

原创 用ToyParser轻松掌握Lexer和Parser

大家好!今天我要给大家介绍一个有趣的项目,名叫ToyParser。这个项目包含了一个简单的Lexer和Parser,帮助你轻松掌握Lexer和Parser的基础知识。不用担心,你不需要成为编译器专家,就可以理解这个项目。相信我,它很好玩!

2023-04-10 06:23:41 667 1

原创 访问者模式:访客与房间的友好互动

当你需要对一个对象的不同部分进行操作时,可能需要使用访问者模式。访问者模式是一种行为型设计模式,它可以将算法与其作用的对象分离开来,从而使算法在不修改对象结构的情况下可用。访问者模式通常涉及两个类:访问者和被访问者。被访问者是包含一些元素的类,而访问者是执行特定操作的类。访问者需要了解被访问者的接口,以便可以访问它的元素。通过访问者模式,我们可以对元素的操作进行扩展,而无需对元素进行更改。访问者可以访问所有的元素,并执行特定的操作。这使得在需要添加新操作时更加容易,而无需更改现有代码。

2023-04-10 00:35:30 419

原创 深夜2点的编程心得:尽量避免推倒重来

最后,我回过头来看之前的代码,发现其实还是比较灵活的。在Type类型中定义返回具体Token,这样做的好处是不用合并DFA,而且实现起来很快。虽然如此,当我写到这篇文章时,还是有些后悔,因为修改了Symbol构造函数,也意味着parser部分也需要改动。希望大家能够从我的教训中吸取经验,在写代码之前一定要设计好,最好是定义好测试函数。这种思维方式不仅仅适用于编程,也适用于生活。把如何做人的原则运用到编程中,应该是不会错的。

2023-04-06 08:20:52 546

原创 SQLite索引构建:告别查询卡顿,让你的SQL语句更加高效

在SQLite中,索引的选择和使用对查询性能有很大的影响。通过选择正确的索引类型,建立复合索引,删除不必要的索引,使用统计数据和避免使用临时索引,可以显著提高查询性能。

2023-04-05 22:11:08 1701

原创 数据库索引:如何提高查询效率

今天我们来讲一下数据库索引,关于什么情况下索引会生效以及如何建立正确的索引,相信这对广大开发者来说都非常实用。

2023-04-05 20:21:06 509

原创 PDF Snipper:Python 小工具开发实践(python利用PyPDF2合并PDF文档,和提取pdf部分页面)

python利用PyPDF2合并PDF文档,和提取pdf部分页面。学习Python的小项目

2023-04-02 05:27:22 202

原创 fatal: Not possible to fast-forward, aborting.

fatal: Not possible to fast-forward, aborting.

2022-12-29 21:29:21 123

原创 C语言实现矩阵乘法(包括使用SIMD)

实现三种不同的矩阵乘法,并研究它们所消耗的时间。并且使用SIMD实现了矩阵乘法

2022-12-13 06:23:22 644

原创 并发系统:作业一

并发系统作业

2022-11-12 05:55:32 270

原创 设计模式之命令模式

命令模式定义将请求封装成对象,这可以让你使用不同的请求、队列、或者日志请求来参数化其它对象。命令模式也可以支持撤销操作。实际案例首先让我们先看一眼各种装置:许多类都具备on()和off()方法,但是还有其它方法比如medium(), up()。遥控器应该知道如何解读按钮被按下的动作,然后发出正确的请求,但是遥控器不必知道家电自动化的细节,列入如何打开风扇。。。使用命令模式可以解决这个问题:我们将具体某个家电开或关闭封装成一个对象,而遥控器的每个按钮都有这个对象。当遥控器被按下的时候,我们只

2021-11-11 19:56:50 365

原创 设计模式之策略模式

策略模式定义策略模式定义了一个算法族,让他们之间可以相互替换,这样就会使得算法的改变独立于使用算法的客人Strategy is a behavioral design pattern that lets your define a family of algorithms, put each of them into a separate class, and make their objects interchangeable.应用实例1、诸葛亮的锦囊妙计,每一个锦囊就是一个策略。 2、旅行的出

2021-11-07 15:30:25 111

原创 Python 类的特殊方法

Python 类的特殊方法__repr____str__自我描述方法, repr 更加倾向于用在详细信息的miaoshstr一般提供给终端用户显示内容_del_释放对象占用的内存。__dir__用于列出对象所有属性和方法__dict__查看对象内部存储的所有属性名和属性值组成的字典__getattr__访问对象的属性, 而且该属性不存在的时候被调用。class Rectangel: def __init__(self, width, height):

2021-08-18 15:44:49 307

原创 Poetry命令

poetry init, 创建一个pyproject.toml[tool.poetry]name = "p1"version = "0.1.0"description = ""authors = ["andy <[email protected]>"][tool.poetry.dependencies]python = "^3.8"[tool.poetry.dev-dependencies][build-system]requires = ["poet..

2021-08-17 22:01:41 1703

原创 pipenv教程

install: pip install pipenv切换到工作目录myproject安装requests pipenv install requests在工作目录下.├── Pipfile└── Pipfile.lockPipfile和requirements.txt 很相似[[source]]url = "https://pypi.org/simple"verify_ssl = truename = "pypi"[packages]requests = "*..

2021-08-17 20:08:32 289

原创 git 常用命令

git 常用命令git add <file> : 添加到暂存区git commit -m <message> 提交修改git status 查看当前工作区的状态git diff <file> 查看文件的不同之处git reset --hard commit_id 回退到某个版本HEAD 当前版本HEAD^ 上一个版本git reflog: 详细日志git restore --staged <file> 撤销添加

2021-08-17 17:44:08 62

原创 数字摄影测量学 计算航片邻接矩阵

已知影响数量 56传感器尺寸 8.72mm * 6.54mm焦距:24mm基准高程:80米编程实现邻接矩阵#!/usr/bin/env python# coding: utf-8# In[1]:import numpy as npimport pandas as pdimport os# In[2]:data = pd.read_csv("linyi-56.csv").values# In[3]:data[:, (1, 2, 4, 5, 6)] = np.

2021-07-13 17:44:40 328

原创 2021-07-05

目标文件:依赖文件# Tab指令# 这样只会生成.i文件#hello.i:hello.c gcc -E hello.c -o hello.ihello.S:hello.i gcc -S hello.i -o hello.Shello.o:hello.S gcc -c hello.S -o hello.ohello:hello.o gcc hello.o -o hello# 第一个是我们的终极目标(递归)# 这样第二次运行的时候,如果已经有了.o, 就不会进行预编译,编译的步

2021-07-05 00:49:14 301

原创 c 编译过程

预编译gcc -E hello.c -o hello.i.c & .h --> .i把所有的头文件,库文件引用进来将宏定义进行替换汇编gcc -S hello.i -o hello.S产生汇编代码编译gcc -c hell.S -o hello.o.S --> .o 二进制文件链接gcc hello.o -o hello...

2021-07-05 00:00:39 48

原创 试题 基础练习 特殊回文数

试题 基础练习 特殊回文数资源限制时间限制:1.0s 内存限制:512.0MB问题描述  123321是一个非常特殊的数,它从左边读和从右边读是一样的。  输入一个正整数n, 编程求所有这样的五位和六位十进制数,满足各位数字之和等于n 。输入格式  输入一行,包含一个正整数n。输出格式  按从小到大的顺序输出满足条件的整数,每个整数占一行。样例输入52样例输出899998989989998899数据规模和约定  1<=n<=54。package _1;

2021-05-03 22:35:00 84

原创 试题 基础练习 十进制转十六进制

试题 基础练习 十进制转十六进制资源限制时间限制:1.0s 内存限制:512.0MB问题描述  十六进制数是在程序设计时经常要使用到的一种整数的表示方式。它有0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F共16个符号,分别表示十进制数的0至15。十六进制的计数方法是满16进1,所以十进制数16在十六进制中是10,而十进制的17在十六进制中是11,以此类推,十进制的30在十六进制中是1E。  给出一个非负整数,将它表示成十六进制的形式。输入格式  输入包含一个非负整数a,表示

2021-05-03 22:32:20 242

原创 试题 基础练习 十六进制转十进制

试题 基础练习 十六进制转十进制资源限制时间限制:1.0s 内存限制:512.0MB问题描述  从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。  注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。样例输入FFFF样例输出65535最传统的数学方法package _1;import java.util.HashMap;import java.util.Map;import java.util.Scanner;pub

2021-05-03 22:23:37 243

原创 试题 基础练习 十六进制转八进制

试题 基础练习 十六进制转八进制资源限制时间限制:1.0s 内存限制:512.0MB问题描述  给定n个十六进制正整数,输出它们对应的八进制数。输入格式  输入的第一行为一个正整数n (1<=n<=10)。  接下来n行,每行一个由09、大写字母AF组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过100000。输出格式  输出n行,每行为输入对应的八进制正整数。【注意】  输入的十六进制数不会有前导0,比如012A。  输出的八进制数也不能有前导0。

2021-05-03 22:20:27 197

原创 试题 基础练习 数列排序

试题 基础练习 数列排序资源限制时间限制:1.0s 内存限制:512.0MB问题描述  给定一个长度为n的数列,将这个数列按从小到大的顺序排列。1<=n<=200输入格式  第一行为一个整数n。  第二行包含n个整数,为待排序的数,每个整数的绝对值小于10000。输出格式  输出一行,按从小到大的顺序输出排序后的数列。样例输入58 3 6 4 9样例输出3 4 6 8 9package _1;import java.util.Collections;imp

2021-05-03 22:07:06 64

原创 ashfkahf

hadfuhqiewuhajbckjankdhfwkdcjdkjaehiu’dciuehh’bckdauebcadhalcndkjaer’cbdhsarha;bckdsahrucbasracb’

2021-05-03 19:37:36 75

原创 编写一个pro程序,给定一个路径,自动获取该路径下所有的hdf4或h5文件,将其中某个数据转化为tif格式

题目要求编写一个pro程序,给定一个路径,自动获取该路径下所有的hdf4或h5文件,将其中某个数据转化为tif格式目录树即运行结果具体文件我会放到百度网盘中运行教程截图编译运行选择图片 从grid中选择勾选代码和过程pro homework_3_4_hdf_to_tiff; 编写一个pro程序,给定一个路径,自动获取该路径下所有的hdf4或h5文件,将其中某个数据转化为tif格式; the supported formats are: h5, hdf

2021-03-26 16:46:32 297

原创 编写一个pro, 通过dialog选择图像, 自动判断图像格式, 读取图像, 将图像写入到一个新文件 ;使用到read_*, write_*和case语句

题目要求使用图片2.3. tiff图片csdn不支持上传,我放到百度网盘示例代码pro homework3_3;;作业3.3;编写一个pro, 通过dialog选择图像, 自动判断图像格式, 读取图像, 将图像写入到一个新文件;使用到read_*, write_*和case语句; dialog 选择图像fn = dialog_read_image(query=img_info, title='please select one picture', file=img_na

2021-03-26 16:13:18 261 1

原创 1. module ‘tensorflow._api.v2.distribute‘ has no attribute ‘TPUStrategy‘

import osfrom tensorflow.keras.preprocessing.image import ImageDataGeneratorfrom tensorflow.keras.optimizers import RMSproptrain_datagen = ImageDataGenerator(rescale=1/255)validation_datagen = ImageDataGenerator(rescale=1/255)train_generator = train_d

2021-02-01 21:15:12 367

原创 sorted()_python_有趣的模块_6

python sorted()返回可遍历对象的有序形式语法sorted(iterable, key=None, reverse)参数iterable: 队列,集合等可迭代对象reverse:True, 降序;默认False升序key:排序的keyExample1 , 对string,list, tuple排序# vowels listpy_list = ['e', 'a', 'u', 'o', 'i']print(sorted(py_list))# stringpy_string

2021-01-13 12:03:02 97

原创 __init__和__main___python_有趣的模块_6

概念区分modules和packages都是用来 更好的组织代码的,但是他们有很重要的差别,你或许像我一样并不是很清楚,在Python中,module是单独的.py文件,package是一个包含很多文件的目录我们需要认为,module和package只是组织形式上不一样,他们有很多相同的概念。这有助于我后面理解。__init__和__main__在Python中被称为dunhttps://github.com/beishangongzi/MyBlog/tree/master/sys_pathders,

2021-01-12 14:05:41 291 1

原创 %_格式化字符串_python_有趣的模块_5

python %用法: <format_string> % <values>参数:formating_string: %[<flags>][<width>][.<precision>]<type>参数meaning%说明转义符<flags>更加详细的控制<width>字符的宽度.<precision>浮点数精度 字符串长度<type&g

2021-01-04 11:04:05 202 1

原创 ascii()_python_有趣的模块_4

python ascii()返回一个字符串的ascii码表示形式用法ascii(object)参数object:字符串或者列表例子ascii("张")# 输出"'\\u5f20'"print(ascii("北山公子"))print(ascii("北山公子"))# 输出'\u5317\u5c71\u516c\u5b50''\u5317\u5c71\u516c\u5b50'print('\u5317\u5c71\u516c\u5b50')# 输出北山公子# 参数是列表

2021-01-04 09:47:36 116

原创 repr()_python_有趣的模块_3

python repr()repr()返回的是返回对象的规范字符串表示形式。语法是 repr(obj)参数obj:规范化字符串要表示的对象例子1var = 'foo'print(repr(var))输出:'foo'例子2在对象中 ,repr会调用对象的__repr__()class Person: name = 'Adam' def __repr__(self): return repr('Hello ' + self.name )print(

2021-01-03 19:40:21 322

原创 compile()_python_有趣的模块_2

python compile()返回一个python code对象语法是:compile(source, filename, mode, flags, dont_inherit=False, optimize=-1)参数解释souce: 字符串filename: 如果代码是在文件中读取,则写文件名, 否则就可以随便写,主要用来一旦出错就方便提示mode:* eval: 接受一句代码* exec: 接受代码块* single:如果有一句交互界面其它参数和编译相关参数例子codeInSt

2021-01-03 12:12:02 273

原创 eval_python_有趣的模块_1

python eval()eval(expression, globals=None, locals=None)eval()方法解析expression, 并将值返回参数expression: 解析的表达式globals: 字典格式locals: 官方解释只要是map对象就行,我们一般使用字典具体globals和loclas怎么用下方例子说明返回返回expression的值例1:x=1print(eval("x + 1"))输出2例2# Perimeter of Squar

2021-01-03 11:32:30 177

原创 HuffmanTree 霍夫曼树实现

操作环境:1. IDE Clion2. 编译器:VS2020代码实现#include <stdio.h>#include "stdlib.h"#include "string.h"typedef struct { int weight; int parent, lChild, rChild;}htNode, *huffmanTree;typedef char * *huffmanCode ;void traverseHuffmanCode(huffma

2020-12-12 20:37:32 157

原创 排序,快速排序

实验项目名称:排序实验目的及要求:实验目的(1)理解快速排序算法。(2)掌握实现快速排序算法。要求:(1)设计一顺序表的存储结构;(2)数据元素为整数类型;(3)在实现顺序表的快速排序算法实验原理:通过一趟排序将待排序记录分割成独立的两部分,其中一部分的关键字均比另一部分的关键字小,则可分别对这两部分记录继续分别进行排序,以达到整个序列有序。从序列的两端交替扫描各个记录,将关键字小于基准关键字的记录依次放置到序列的前边;而将关键字大于基准关键字的记录从序列的最后端起,依次放置到序列的后边

2020-12-06 15:00:32 319

原创 查找

实验项目名称:查找实验目的及要求:实验目的(1)理解顺序表的二分查找算法。(2)实现顺序表的二分查找算法要求:(1)设计一顺序表的存储结构;(2)数据元素为整数类型;(3)在实现顺序表的二分查找算法实验原理:前提条件:查找表中的所有记录是按关键字有序(升序或降序) 。查找过程中,先确定待查找记录在表中的范围,然后逐步缩小范围(每次将待查记录所在区间缩小一半),直到找到或找不到记录为止。首先将待查的K值与有序表R[0]到R[n-1]的中间位置mid上的结点的关键字进行比较, 若相等,

2020-12-06 14:59:03 125

原创 图的存储结构及遍历

实验项目名称:图的存储结构及遍历实验目的及要求: 实验目的(1)理解图的存储结构的表示和运算的C语言实现。(2)掌握图的创建及深度遍历。要求:(1)设计图的存储结构(边的信息用邻接矩阵存储);(2)数据元素为字符类型;(3)在实现图的创建及深度遍历。实验原理:图结构是研究数据元素之间的多对多的关系。在这种结构中,任意两个元素之间可能存在关系。即结点之间的关系可以是任意的,图中任意元素之间都可能相关。图的邻接矩阵表示法(Adjacency Matrix)也称作数组表示法,采用两个数组来表示图

2020-12-06 14:57:37 1060 1

原创 一元多项式的实现

数据结构课内实验实验一:1、实验名称:一元多项式表示与实现要求:(1) 一元多项式的ADT定义;(2) 存储结构描述;(3) 一元多项式的操作实现(最低实现)——初始化;——一元多项式的输入,输出;——一元多项式加减法;(4) 实验报告要提交实现的主要代码;2、实验名称:表达式求值要求:(1) 实验中要求的栈的操作自主实现;(2) 可以按照自定义格式输入表达式;(3) 表达式求值可以采用:原表达式求值;(4) 若采用前缀式或者后缀式求值,可以输入前缀式或者后缀式的字符串即可。

2020-12-06 14:55:48 950

空空如也

空空如也

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

TA关注的人

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