- 博客(56)
- 收藏
- 关注
原创 Python入门知识点分享——(二十一)多继承和运算符重载
运算符重载指的是在编程语言中,对于自定义类型的对象,可以重定义运算符的行为。通过重载运算符,可以使对象能够像内置类型一样进行运算和操作。方法重写指的是在面向对象编程中,子类重新定义了父类中已经存在的方法。子类可以通过方法重写来修改继承自父类的方法的行为。运算符重载适用于自定义类型的对象,可以定义它们之间的运算和操作行为。常见的例子包括向量、矩阵、复数等可以进行数学运算的类型。方法重写适用于类和继承关系中的对象。子类可以重写父类中已经存在的方法,以改变方法的行为。
2024-02-16 11:32:49
486
原创 Python入门知识点分享——(二十)继承和方法重写
继承机制指的是,一个类(我们称其为子类或派生类)可以使用另一个类(我们称其为父类或基类)的属性和方法。这种继承的方式可以简化代码的编写,并且提供了代码复用的机制。只需要在子类名称后用括号加上父类名称就可以达到继承效果。方法重写是用在从父类继承的方法不能满足子类需求的情况,为了增强泛用性,我们可以对其进行改写,这个过程叫方法的覆盖,也称为方法的重写。
2024-02-09 23:55:29
522
原创 Python入门知识点分享——(十九)私有属性和方法
私有属性,顾名思义是指不能在类的外部被使用或直接访问的属性。不过在笔者使用的版本中新增了一个机制,按照报错提示输入Fruit._Fruit__WaterContent就可以访问私有类属性,同理,尽管没有提示,也可以仿照类属性输入pear._Fruit__age访问私有实例属性。除了私有属性,类里还有私有方法,语法结构与正常方法类似,区别是在私有方法前有__作为标识,这一特点与私有属性一致,需要注意在博客中下划线看起来是一整条,而实际上的个数是两个,大家将代码复制到自己的编译器中就可以看到了。
2024-02-08 20:40:07
518
原创 Python入门知识点分享——(十八)类与面向对象
早期的计算语言大多是基于面向过程,为了实现某一个目的而设计一个单独的算法,就可以解决当时的问题。随着计算机的成熟,面向对象的编程语言应运而生。具体思路是将现实世界的数据和实物抽象成对象,而关系和行为抽象成类和方法。它的特点有以下几种:封装:将数据和操作封装在对象中,实现数据的隐藏和安全,同时提供对外的接口。继承:通过继承的机制,可以从已有的类派生出新的类,实现代码的复用和扩展。多态:允许多个不同类型的对象对同一消息作出不同的响应,提高代码的灵活性和可扩展性。抽象:通过定义抽象类和接口,对共同属性和方法调用
2024-01-30 09:47:12
489
原创 Python入门知识点分享——(十七)正则表达式和re模块
正则表达式又叫做规则表达式,英文全称Regular Expression。是一种对字符串操作的逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,包括普通字符(如字母a~z)和特殊字符(称为元字符,如“+”, “*”,以及 “?”)。正则表达式使用单个字符串来描述或匹配一系列匹配某个句法规则的字符串,表达对字符串的一种过滤逻辑,例如检索、替换符合规则的文本。在Python中,使用re标准库来调用正则表达式处理函数。
2024-01-28 23:26:46
1023
原创 Python入门知识点分享——(十六)标准库的导入和调用
math模块提供了许多对浮点数的数学运算函数,该模块下的函数返回值均为浮点数。我们使用import关键字来导入模组,再通过dir方法来获取math模组下的内容。time 模块提供了处理时间的函数。random模块主要用于生成各种分布的随机数,在数据分析和建模中很常用。不过random模块生成的是伪随机数,它是用确定性的算法计算出来自[0,1]均匀分布的随机数序列。并不真正的随机,但具有类似于随机数的统计特征,如均匀性、独立性等。在计算伪随机数时,若使用的初值(种子)不变,那么伪随机数的数序也不变。
2024-01-15 17:48:36
785
原创 Python入门知识点分享——(十五)自定义函数
函数是一段事先组织好可重复使用的代码块,用于执行特定的任务。函数可以接受输入参数,并返回一个结果,从而提高应用的模块性和代码的重复利用率。先前我们已经介绍了Python中的内置函数,现在我们要学习创建自定义函数,在定义函数时需要用到关键字def。具体的语法规则如下:函数命名以def为起始,后接函数名称和参数参数必须放在小括号()内才能被函数体读取使用在函数命名行(第一行)的末尾要加上冒号冒号后的函数体另起一行,以缩进表示嵌套关系。函数应以“return 变量”结尾,会返回一个值给调用方
2024-01-13 20:12:11
516
原创 单片机原理及应用:定时器/计数器综合应用
本文是《单片机原理及应用》专栏中的最后一篇文章,笔者以编译器的安装配置——51单片机简介——LED和数码管外设——开关和按键控制功能切换——外部中断系统——定时器与计数器为知识大纲,介绍了C语言编程控制51单片机的入门教程。作为收尾,我们将一同学习三个定时器/计数器的实际应用,不同于之间灯光和按键的组合,在这三个应用中都加入了其他外设,更复杂也更有创意,希望大家对单片机的学习也能兴致盎然、不断进取。
2024-01-13 14:10:14
2197
原创 单片机原理及应用:数码管定时秒表和LED计数器
大家可以自行改变按键对应的执行程序,与其他外设组合,比如让数码管显示不同的图案,也可以更改标志位的复制逻辑,单双击赋予不同的意义。仿真效果如下,为了让输出的电平更稳定,笔者采用了74LS245芯片,它是8路同相三态双向总线收发器,用来驱动LED或者其他的设备,可双向传输数据。
2024-01-11 16:24:41
1067
原创 单片机原理及应用:定时器与计数器中断
在一般单片机中,有2个16位可编程的硬件计数模块T0和T1,我们称其为计数器或定时器,顾名思义,该模块可以实现定时和计数两种功能,其功能由软件控制和切换。计数器就是对来自单片机外部的事件进行计数,外部计数事件由脉冲引入,单片机的P3.4(T0)和P3.5(T1)为外部计数脉冲输入端了,外部计数脉冲的频率不能高于晶振频率的1/24。它由16位定时器储存寄存器中的TL(0/1)的低5位和TH(0/1)的8位构成了13位的计数器,此时TL(0/1)的高3位未用。当TR1或TR0位被清零时,对应的定时器停止计数。
2024-01-11 11:35:32
1819
原创 单片机原理及应用:中断嵌套
中断嵌套是指中断系统正在执行一个中断服务时,有另一个优先级更高的中断提出中断请求,这时会暂时终止当前正在执行的级别较低的中断源的服务程序,去处理级别更高的中断源,待处理完毕,再返回到被中断了的中断服务程序继续执行的过程。在单片机中,中断嵌套的实现通常需要注意中断优先级的设置和中断使能的控制,以确保高优先级中断能够打断正在执行的低优先级中断。
2024-01-10 21:23:14
2284
原创 Python入门知识点分享——(十四)异常处理
我们先来解释一下什么是异常——异常表示程序运行的时候发生了错误,异常的产生会影响程序的正常执行。为了避免程序终止,当Python脚本发生异常时我们需要对其进行处理,让程序得以继续运行。我们称这一步骤为异常处理。Python中的异常处理语法使用`try-except`块来捕获和处理异常。`try`代码块是用来包裹可能会出现异常的代码,而`except`代码块则是用来处理捕获到的异常。我们可以预先假设出现错误的类型,用except+异常类型名称表示,当出现了相应的异常后就会输出except下辖的代码。
2024-01-10 16:48:45
529
原创 Python入门知识点分享——(十三)内置函数
Python内置函数是在Python解释器中已经预定义的函数,可以直接使用,无需导入任何模块,我们之前用过的input、open、print还有各类格式转换int、bool等都属于内置函数,下面我会补充一些之前没有提到的内置函数并做演示。
2024-01-09 22:46:25
501
原创 单片机原理及应用:中断服务函数
中断服务函数的调用过程可以参照一般的函数调用,但两者之间也是有区别的:一般函数的调用在程序中是事先安排好的,何时调用中断服务函数事先却无法确定,因为中断的发生是由外部因素决定的,程序中无法事先安排调用语句,因此调用中断服务函数的过程是由硬件自动完成的。换而言之,我们并不需要像之前点亮LED或数码管那样在主程序里补充一条LED_function()来调用封装函数,中断服务函数在控制寄存器允许的情况下会自动执行。中断函数具有特殊关键字interrupt,这也导致中断函数的定义方法也与普通函数不同。
2024-01-09 15:54:29
3342
原创 单片机原理及应用:中断系统结构与控制寄存器
当CPU正在执行某个程序时,由单片机内部或外部的原因引起的紧急事件,向CPU发出请求处理的信号CPU在允许的情况下响应请求信号,暂时停止正在执行的程序,保护好断点处的现场转向执行一个用于处理该紧急事件的程序处理完后又返回被中止的程序断点处,继续执行原程序以上过程就称为中断,流程如图所示它并不是单指在输入请求信号的作用下打断原程序,而是包括保存原程序、执行中断服务、返回原程序等多个步骤,重点是在立即执行中断程序的同时不影响原先进程。
2024-01-08 23:18:04
1848
原创 单片机原理及应用:计数按键控制数码管显示
承接上文,我们来介绍一下按键和数码管的配合工作,由于数码管显示的字符和位数多种多样,无法做到一个字符对应一个按键,所以程序主要记录按键的使用次数来切换数码管的显示。键盘去抖的方式有很多,不过for循环嵌套应该是最简单的。这类计数装置需要考虑按键释放,要在if内层的最后一行写一个while(1)。上面是笔者的演示代码,用按键控制1只数码管计数,要比0~99计数器简单一些,适合新手入门。下面给大家提供一道模拟题:自选外设,根据按键次数显示相应的数字,按下按键9次后清零。
2024-01-02 18:29:17
2129
1
原创 单片机原理及应用:独立式键盘控制LED与多功能按键识别
单片机的独立式键盘指的是一种不依赖于计算机或其他外部设备的键盘输入方式,由若干按键按照一定的规则组成,每一个按键实质就是一个按钮开关。而独立式键盘的各键相互独立,每个按键各接一条I/O口线,通过检测I/O输入线的电平状态,很容易地判断哪个按键被按下。当无键按下时,通过上拉电阻,P0的 8 个I/O口引脚被上拉为高电平“ 1 ”;如果有键按下,将使对应该键接的I/O口引脚,通过该键接地,信息为“0 ” 。
2024-01-02 13:53:13
2073
1
原创 单片机原理及应用:开关控制LED多种点亮模式
从这篇文章开始,我们不再只研究单一的外设工作,而是将LED、数码管、开关、按键搭配在一起研究,这篇文章主要介绍LED和开关能擦出怎样的火花,同时也介绍一些函数封装的知识。由于开关有闭合与打开两种状态,LED有左移流水灯、右移流水灯、全部闪烁、高低位点亮、奇偶位点亮和内外位点亮等状态,它们之间两两组合的情况十分复杂,所以我们首先要介绍一下函数封装的思想以简化代码。函数封装是将一段代码逻辑封装在一个函数中,以便在需要时可以重复使用。
2023-12-31 19:47:16
1484
原创 单片机原理及应用:数码管的动态扫描显示、余晖效应与消影
动态显示是一种一位一位地轮流点亮各位数码管的显示方式。当数码管显示位数较多时,静态显示所占的I/O口多,这时常采用动态显示。为节省I/O口,通常将所有显示器段码线相应段并联在一起,由一个8位I/O口控制,称为“段选”;各显示位公共端分别由另一单独I/O口线控制,称为“位选”。在某一时段只选中一位数码管的位选端并送出相应的字型编码,在下一时段按顺序选通另外 一位数码管,并送出相应的字型编码。依此规律循环下去,即可使各位数码管分别间断地显示出相应的字符,这一过程称为动态扫描显示。
2023-12-31 10:39:14
5688
原创 Python入门知识点分享——(十二)for循环与while循环
通常情况下在Python每条语句只执行一次,如果某条或某些语句需要重复执行,就要用到循环语句。循环语句允许我们执行一个语句或语句组多次,提供了各种控制结构和更复杂的执行路径。循环语句分为for循环和while循环,其中判断条件是一个布尔表达式,当条件为True时,循环体中的代码会被执行。如果条件为False,循环体中的代码不会被执行,整个循环会被跳过。for循环和while循环也可以组合使用,要注意缩进和嵌套关系,以及在适当时候使用break打断循环。
2023-12-30 11:29:27
1057
原创 单片机原理及应用:数码管的静态显示
数码管的显示方法有静态显示和动态显示两种。静态显示是指单片机输出特定的电平或脉冲信号,相应的发光二极管恒定导通或恒定截止,从而将数据或符号显示在数码管显示屏上。之前介绍的数码管循环显示就属于静态显示。本次要介绍的是多位数码管的静态显示。网络标号法是在连接线的交叉点或连接点处分配网络标号。网络标号用于标识电路中的节点。可以使用数字、字母、下划线等进行标号,并根据需要在标号后面添加字母进行区分。
2023-12-29 09:03:32
1159
原创 Python入门知识点分享——(十一)if条件语句
if条件语句是一种编程语言中用于控制程序流程的结构。它根据一个条件的真假来决定执行不同的代码块。if条件语句通常由if关键字、一个条件表达式和一个代码块组成。条件表达式可以是一个返回布尔值的表达式,如果条件为真,则执行代码块中的代码;否则,跳过该代码块需要注意的是,Python对于缩进要求十分严格,不同于C语言将函数体置于括号内,在Python中表示嵌套关系只有依托缩进来完成,因此要注意每一行语句与前文的关系并选择正确的位置。
2023-12-28 23:04:57
520
原创 Python入门知识点分享——(十)OS文件、目录方法
os模块是一个用于与操作系统进行交互的模块。它提供了一些函数来执行操作系统相关的任务,例如文件和目录操作,进程管理,环境变量等,要使用这个模块,必须先进行导入,也就是俗称的“导包”,然后才可以调用相关的各种功能。而这一部分知识也是Python文件操作的最后一块。首先是对文件进行操作,先前介绍的open函数与其他文件函数缺少了重命名和删除文件的方法,这些操作由os模块来完成。
2023-12-28 00:34:37
1212
1
原创 单片机原理及应用:数码管的循环显示
一位数码管的引脚是有10 个,其中7个用来组成数字(a,b,c,d,e,f,g),此外还有一个小数点(dp),所以数码管内部共有 8 个发光二极管,剩下两个引脚是公共端,如图所示第 3 和第 8 引脚连接在一起组成公共端。根据公共端所接电平的不同,分为共阴极和共阳极接法,中间图为共阴极接法内部原理图,右图为共阳极接法内部原理图。上述代码对于奇偶位变换实际上给出了三类写法,第一种就是最常见的for循环,赋初值i,i+2或-2;而ROM是用来存储程序代码和常量数据,只能读取,不能写入。
2023-12-27 10:12:19
1479
原创 单片机原理及应用:LED闪烁与延时
闪烁主要考察的就是延时函数的应用,书中一共有三种延时函数的设置方式,分别应用于不同的场景,这里介绍的是第一种,用两个for循环嵌套组成,数量级为万。高低、奇偶、内外三种模式都取决于引脚赋值,其中奇偶位还可以调用移位符达到类似流水灯的效果
2023-12-27 00:46:11
1060
原创 Python入门知识点分享——(九)文件的input/output方法
首先对昨天介绍的open函数做一点补充,可以用with open的方式打开文件,这种方式可以省略close,防止资源泄露或数据丢失。这个方法依托的原理是上下文管理器,我们会在之后的文章中讲到。我们可以使用fp.closed来判断文件是否被关闭,它会返回一个布尔值。下面是今天的重点——文件的I/O 函数,其实我们刚刚介绍过的open函数,以及先前见过的print、close都属于文件的输入输出函数,这篇文章主要是进行归纳补充。
2023-12-25 03:24:07
654
原创 单片机原理及应用:流水灯的点亮
流水灯是一种简单的单片机控制电路,由许多LED组成,电路工作时LED会按顺序点亮,类似于流水的效果。点亮效果呈现在proteus上,大家也可以根据仿真电路图去挑选自己需要的元器件组建不同功能的电路。下面是运行在keil上的代码,分别使用了数组,移位符和库函数来表示。编译时要注意修改晶振频率并创建hex文件。
2023-12-23 21:07:22
917
1
原创 Python入门知识点分享——(八)文件的open方法
学完了Python当中的数据类型,下一步我们来了解如何用Python语言打开文件并添加内容。打开文件需要用到open函数,完整的语法格式如下所示,为了演示方便,我在Python文件的目录中添加了“word_work.txt”文件,内容节选了马克思《青年在选择职业时的考虑》中的一段话。下面对每一个参数进行讲解。
2023-12-23 18:08:21
1592
1
原创 AI一叶知秋:从目标检测部署浅谈人工智能发展
所以说尽管模型的架构不断完善,许多云平台或者是开源仓库让一窍不通的小白也能顺利完成训练并得到满意的结果,我仍然持有一个审慎的看法,先前在小木虫有看到过一个类似的帖子,大意是各大厂商不断发力纷纷推出自家的SOTA模型,但是研究生除了根据这些模型改改参数更加贴近外,是做不了实际工业项目的,他们实验室里有一个祖传横向是一个图像分割的传送带监控,用的还是七八年前的模型,因为既没有人关注这些不随大流发展人机对话而是负责特定用途的小众模型,也没有人想要优化一个需要连接电路处理信号避免干扰的实际部署器件。
2023-12-22 15:28:34
2204
原创 单片机原理及应用:Keil μVision4和Proteus 8的配置介绍
课程选用的教材是张毅刚教授编纂的《单片机原理及应用——C51编程+Proteus仿真》,因此软件也是配套的Keil和Proteus,按照老师建议,C51属于比较古早的单片机,为了保证兼容性和稳定性,版本选用Keil μVision4和Proteus 8。今天记录的内容是软件的安装,陆游有句话说得好“纸上得来终觉浅,绝知此事要躬行”,尽管我们也属于在纸上抄写代码的教条考核,但想学到真东西,还需要勤加练习。我采用的是Atmel中的AT89C52,也是51单片机的升级版,书中也是以该型号单片机为例进行讲解的。
2023-12-22 00:21:59
1646
原创 Python入门知识点分享——(七)集合运算与字典类型
对于补集来说,这个词可能不太准确因为我们日常情况下都是以图1的方式表达补集的,但是Python中提供的difference方法则会导致图2的情况,当然图2情况是包含图1的,大家可以放心使用difference方法来获得严格意义上的“补集”。除了单独修改某一个值外,我们可以使用update函数来将一个字典中的值通过同名的键赋给另一个字典,原字典的值将会更新,对于原先不存在的键则会添加进新字典。交集的获取需要用到intersection函数,特别指出该函数的作用对象也可以是其他序列数据类型,比如列表和元组。
2023-12-21 20:41:02
485
1
原创 Python入门知识点分享——(六)数据类型:元组、集合
元组也是一种序列数据类型,与列表不同的是,元组中的元素不能被修改。元组的定义方式有三种,第一种也是最常使用的是小括号()来创建;第二种用逗号分隔每个元素来创建,和第一种比较去掉括号就可以了;第三种是用tuple()进行数据类型转换,需要注意括号里数据要加上引号作为字符串再转换。由于不能被修改,元组能够调用的方法也很有限——访问元素索引、连接元组、判断元素存在和出现次数、输出长度和最值。如下列代码所示。注意索引的符号仍然是方括号。
2023-12-20 21:51:19
503
原创 Python入门知识点分享——(五)数据类型:列表
列表是一种数据项构成的有限序列,即按照一定的线性顺序排列而成的数据项集合,在这种数据结构上进行的基本操作包括对元素的的查找,插入和删除,这其中的各个数据项不需要具有相同的类型,如整型,浮点型,复数,字符串,甚至是另一个列表。列表的标志就是方括号,[ ]内的每一个数据项称为元素,用逗号隔开。
2023-12-20 18:38:15
1082
1
原创 Python入门知识点分享——(四)数据类型:字符串
字符串是由数字、字母、符号组成的一串字符,是一种用于表示文本的数据类型。字符串需要用单引号或双引号表示引用,注意不要和中文的引号混淆,另外单个字符也需要加引号。
2023-12-19 23:31:45
386
原创 Python入门知识点分享——(三)运算符
这篇文章本应该是介绍其他数据类型,但是我觉得有必要先对昨天的内容做一些补充,我们可以回想一下,在生活中学完数字之后,紧接着学习的是运算方式。在昨天的代码示例中已经提到了几种运算,现在就来全面总结一下。在Python中一共有7种运算符,如目录所示。
2023-12-19 13:36:23
1266
原创 Python入门知识点分享——(二)数据类型:数字
学习Python,先要理解数据类型——就像我们在解决数学题的时候,要知道常量、变量、数位和幂一样,计算机在处理问题时也要搞懂这个数据是怎么一回事,这就是数据类型。由于计算机只能读取二进制的特性,我们不能按照日常生活中逢十进一的规则去表示数据,而是选用不同长度的“字节”去表达,这里的字节指的是计算机中数据处理的基本单位,一般由8个二进制数组成。
2023-12-17 22:44:22
546
原创 Python入门知识点分享——(一)编译器安装和设置
Python诞生于1990年,其实要比现如今常用的另一门语言Java出现的更早,只是作为一门“网红语言”来说,它的优点在近几年才被人们发掘而推广开来。在经历了以机器语言为代表的低级语言时代和以Basic语言为代表的高级语言时代后,Python应运而生。它提供了高效的数据结构和丰富的库函数,以及面向对象编程的特质,这使得Python在科学计算和深度学习中占据了一定地位,并随着科技发展成为了更多新人的入门语言。
2023-12-17 11:37:04
518
2
原创 数学建模超细致讲解,从建立模型到论文写作
我们团队在数学建模领域浸淫多年,积累了无数宝贵经验,这篇文章是我们智慧的集大成之作,希望能帮到每一位有志于数学建模的朋友。
2022-12-20 12:42:12
2997
原创 Robomaster上位机视觉摘要——比赛规则篇
本文是笔者多日来总结的2023赛季中针对上位机组的比赛规则摘要,力求一文让你看懂上位机在赛场中的飒爽身影。
2022-12-07 18:03:51
5371
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人