【Python基础】Python编程入门自学笔记,基础大全,一篇到底!_python 笔记-程序员宅基地

技术标签: python  笔记  网络  # Python  

:如果你也对机器人、人工智能感兴趣,看来我们志同道合
:不妨浏览一下我的博客主页【https://blog.csdn.net/weixin_51244852
:文章若有幸对你有帮助,可点赞 收藏 不迷路
:内容若有错误,敬请留言 指正!原创文,转载请注明出处


Python简介与程序设计基本方法

Python简介

我是一个90’后,我被孕育在1989年的圣诞节期间,我的程序员爸爸荷兰人吉多;范罗苏姆,为了打发无趣的圣诞节创造了我,我在1991年时候被真正的生了出了,我的程序员爸爸绍我起了个非常吓人的名字叫Python (天蟒蛇的意思),我的名字取自英国20世纪70年代音播的电视喜剧《蒙提.派森的飞行马戏团》(Monty Python’s Flying Circus)。
现在我已经更新到3.0版本了,被大家叫做Python3000,熟悉我的朋友会称我为Py3k,我的爸爸在2020年1月1日,官宣停止了Python2的更新,所以对于初学者的你来说,你只需要认识我就可以了。
查看python版本:python -V或者python --version

程序设计基本方法(执行方式)

编译和解释
编译:将源代码一次性转换为目标代码的过程。
解释:将源代码逐条转换为目标代码同时逐条运行的过程。
编译器:执行编译过程。 编程语言的分类:按照执行方式不同,分为静态语言和脚本语言。
静态语言:使用编译执行的编程语言,比如C、C++和Java 脚本语言:使用解释执行的编程语言,比如python
静态语言优点:编译器一次性生成目标代码,程序执行效率更高。 脚本语言优点:执行程序时需要源代码,维护更灵活,可以跨多个平台开发。
程序基本编写方法:IPO,也就是输入–处理–输出。 对解释的理解:解释是需要一句话一句话清晰得向别人阐述的过程,因此是慢慢来的。

input和print

python输入函数:input。需要用户从控制台输入
food=input(“今晚吃什么?”)#屏幕显示“今晚吃什么”,然后我们输入任意内容,都会通过print打印出来。
print(food,type(food))#注意:输出的数据类型都是str,也就是字符串。 A=input(”其输出第一个数字”)
B=input(”其输出第二个数字”)
print(“A+B=”,int(A)+int(B))#此处需要将str转换为数字类型
print函数可以输出:数字,字符串,含有运算符的表达式。
例如:print(1);print(1+2);print(“我爱你”)或是print(‘我爱你’)。可以是单引号或是双引号来表示字符串。此处与C++不同,C++必须是双引号。
在这里插入图片描述
print保存输出内容
fp=open(“D:/demo.txt”,”a+”) #a+表示:没有前面这个文件就创建,有就在文件中追加内容。
print(“hello world”,file=fp)
fp.close()

同行输出:print(“I”,”LOVE”,”YOU”),同行输出只需要将输出内容用逗号隔开就可以实现。

换行输出
print(“I”)
print(”LOVE”)
print(”YOU”)

1、注意input输出的是字符串数据类型。
2、input等同于C++里面的cin;output等同于C++里面的cout
3、print函数是python中的一个内置函数。所谓内置函数:python中自带的函数可以直接使用,前面无需增加任何前缀。
4、python使用的print,C/C++则用printf。

运算符与转义字符

1.算术运算符:其中加减乘除都跟C++一样,但是整除不一样,python使用//表示两数之间的整除运算,整除只取整数部分,没有四舍五入。
在这里插入图片描述

2.赋值运算符:解包赋值很常用,非常简便,这个跟C++区别比较大。

在这里插入图片描述

3.比较运算符:比较运算的输出结果是布尔数据类型。==比较的是值,注意与=的区别。 在这里插入图片描述

4.布尔运算符:布尔运算符就是与或非,用英文表达,分别是and\or\not,而不是希腊字符,符号跟C++有较大区别。但是输出结果都是布尔类型。

在这里插入图片描述

例如:
A,b=3,4
print(A3 and b4)#输出为true
In和not in分别表示存在、不存在某个值中,这是C++中没有的。
比如:
A=”hello”
Print(“h” in A)#输出为true

5.位运算符
在这里插入图片描述
例如:print(4&8)#先将4和8转换为二进制,然后对应位进行与运算。
Print(4|8)#先将4和8转换为二进制,然后对应位进行或运算。
Print(4<<1)#向左移动一位
Print(4<<2)#向左移动两位

6、运算符的优先级: 有括号的优先计算括号内的运算。
在这里插入图片描述

什么是转义字符?反斜杠\加上想要实现转移功能的首字母。
在这里插入图片描述

什么是原字符?
原字符就是不希望字符串中的转义字符起作用。 原字符的使用方法:在字符串之前加上r或是R 单行注释:以#开头
多行注释
三个单引号注释开头和结尾 保留字:又称关键字,python中有些单词被赋予特定意义,这些单词在给对象起名字的时候都不能用。
标识符
python里面的标识符除了C++里面的变量名,还有函数、类、模块和其他对象起的名字就是标识符。
标识符命名规则
跟C++的一样。遵守四个原则:
1.以字母、数字和下划线组成
2.区分大小写
3.不能与关键字相同
4.不能以数字开头

二进制与字符编码
ASCII从0-127一共128个字符对应生活中128个符号。将符号和数字对应起来。
在这里插入图片描述

unicode几乎包括了全世界的字符,python中使用UTF-8表示。 python中没有++和–

数据类型

变量定义方法:变量名=初始值。
变量的多次赋值
Name=”小米”
Name=”小华”
最后的name就是小华,而不是小米,多次赋值会被覆盖之前所有的值,但是变量类型始终不变。

常用数据类型
在这里插入图片描述
在这里插入图片描述
布尔类型bool:bool是boolean的缩写。注意:python里面的布尔类型可以转化为整数1和0。True表示1,false表示0

字符串类型:使用单引号或双引号括起来的多个字符。python中不支持单字符类型,单字符类型在python也是当做字符串使用。三引号定义的字符串主要用于字符串较长、需要分行的情况。
在这里插入图片描述
数据类型转换意义:当不同类型进行连接时会报错,需要进行类型转换。
在这里插入图片描述
提取变量类型:Print(type(变量名))
1、变量定义:变量名=变量值。注意与c++的不同,python定义变量不需要变量类型,它会根据变量的初始值进行判断并确定自己的变量类型
2、数据类型总结:整型;浮点型;字符串类型;布尔类型。注意没有字符型,因为字符串类型的定义方法包含了字符型。

程序运行结构

选择结构

程序的三种组织结构:1.顺序结构 2.选择结构 3.循环结构
顺序结构的定义:程序从上到下顺序执行代码,中间没有任何的判断和跳转,直到程序结束。
对象的布尔值
在这里插入图片描述

1.if条件语句的选择结构
1.1单行格式if语句:if条件:满足条件执行语句。
1.2多行格式if语句:if条件:满足条件执行语句 else:不满足条件执行语句。
1.3多条件if语句:if第一个条件:满足条件执行的语句 elif 第二个条件:满足条件执行的语句xN else:不满足所有条件执行的语句。
1.4嵌套if语句:if语句中包含if语句

if 条件1:
if 内置条件:
满足内置条件的语句
else:不满足内置条件的语句
else:不满足条件1的语句

1、python中的if语句与C\C++的不同。其主体是一样的,只是少了括号,然后增加一个冒号。
2、将else if简化为elif。
3、python中的选择结构只有if语句,而C\C++除了python还有Switch。

循环结构

1、While循环结构语法:

循环:While 循环判断语句:循环执行语句
循环实现步骤
初始化变量
条件判断
条件执行体
改变变量
总结:初始化变量与条件判断变量与改变的变量为同一个。

while循环结束的输出:
while 循环判断语句:
循环体
else:

2、for in循环语法:
for 自定义的变量 in 可迭代对象:
循环体

for in循环解释:将可迭代对象中所有数据依次去除,存在自定义变量中。例如:
for i in “abcde”:
print(i)
注意:in表达从(字符串、序列等)中依次取值,又称为遍历。
可迭代对象比如:”python”、range(10)

for循环结束的输出:
for 循环判断语句:
循环体
else:

range函数作用:用于生成一个整数序列。
range函数创建对象的三种方式
1、range(stop):创建一个从0到stop但不包含stop,步长默认为1的整数序列。
2、range(start,stop):创建一个从start到stop但不包含stop,步长默认为1的整数序列。
3、range(start,stop,step):创建一个从start到stop但不包含stop,步长为step的整数序列。
打印range中的整数序列方法:
a=range(5)#将range创建的整数序列赋值给a。
print(list(a))#打印出a中的整数序列。

判断某个数是否存在range创建的整数序列中
采用in和not in进行判断。
例如:
print(1 in A)#输出true
print(1 not in A)#输出false

3、嵌套循环的作用

在循环结构中嵌套另外的完整的循环结构,其中内层循环作为外层循环的循环执行体。如在while循环中可以嵌入for循环,反之,也可以在for循环中嵌入while循环。
案例:九九乘法表

1、python中的While循环结构语法与C++之间的不同在于省略了括号,使用冒号作为间隔。
2、python中的for循环跟C++的差异还是比较大的。注意区分。C++中的for循环:
for (i=0;i<10;i++){条件循环体}
3、嵌套循环结构跟C\C++一样。

字符串常用操作

字符串的驻留机制:相同字符串被赋值给不同变量,其内存地址是相同的。例如:
在这里插入图片描述
字符串驻留的几种情况:
在这里插入图片描述
字符串的运算符
+:字符串连接;
*:字符串重复输出;
[]:字符串的索引,包前不包后,从0开始算起;
[:]:截取字符串中的一部分;
in/not in:字符是否包含在字符串中;
%:格式化字符串

宽度和精度的设置
在这里插入图片描述
在这里插入图片描述
字符串的编码与解码
在这里插入图片描述
格式化字符串与C区别:C用逗号作为占位符,而python使用%,并且变量使用元组的数据类型。

跳转语句

break语句的作用:结束整个循环语句。示例:输密码,直到正确,结束程序。

for i in range(100):
    secret=int(input("输入密码:"))
    if secret==8888:
        print("密码正确")
        break

continue语句作用:结束当前循环,此次循环体中剩余的代码就不去运行了,直接进入下个循环,通常与分支结构中的if一起使用。continue语句用在while和for循环中。
对比以下两个程序输出的区别就可知道两个语句的差别
在这里插入图片描述
else语句:
在这里插入图片描述
1.跳转语句跟C++里面是一样。
2.else语句是跟C++不一样。C++里面的else只跟if合作。

数据结构

列表

列表的作用:存储多个不同数据类型的元素。
列表的创建
方式1:使用[ ]进行创建,[ ]中的不同元素使用逗号隔开。 A = [1,”w”]
方式2:使用内置函数list()。 A=List([1,”w”]) 上述两种方法的结果一样。
列表的组成:列表对象名称=[元素1,元素2…]
列表的特点:可以索引唯一的数据。
在这里插入图片描述

列表的查询操作分为:1.通过元素查找索引。2.通过索引查找元素。 在这里插入图片描述

获取列表中的多个元素:切片操作这部分内容比较多,后续用到再回顾。 在这里插入图片描述
列表元素的查询操作:判断元素在列表中是否存在?
在这里插入图片描述

例如:a=[1,’hello’]
print(1 in a)#输出true

依次遍历列表中的元素
例如:
for i in a:
Print(i)#将a中所有的元素逐个赋值给i,并通过print打印出来。

列表元素的增删改排操作:
1、list.append():添加元素,会在列表结尾添加一个新元素
2、del list[索引好]:删除元素

元组

元组:Python 的元组与列表类似,不同之处在于元组的元素不能修改。 元组使用小括号,列表使用方括号。

创建元组: 方法1:直接使用小括号进行创建,变量名=(元素对象1,元素对象2,元素对象3) 注意:
1.只包含一个元素的元组需要用逗号隔开,例如:t=(1,)。这个逗号不能省略。
2.元组的小括号可以省略。
3.元组是不允许修改元素的,除非该元素是可变序列。 方法2:使用内置函数tuple,例如:t=tuple((1,”y”))

访问元组:使用下标索引获取元组内元素,例如: t=[1,2,3,4,5] print(t[1])

修改元组:元组中的元素值是不允许修改
删除元组:元组中的元素值是不允许删除,但可以使用del语句来删除整个元组 元组的遍历 for i in t: print(i)

注意:数组的形状是元组类型。

1、可变序列与不可变序列之间的区分标准:能否进行增删改操作。 2、可变序列:列表和字典;不可变序列:字符串和元组
3、元组中的元素数据类型可以不同,类似于C中的结构体
4、列表字典元组以及集合的学习方法:对比着学习。相似的知识点要互相比较,找出差异,便于记忆。

字典

字典:跟列表一样都是内置的数据结构之一,以键对的方式存储数据。

字典的创建方法
方法1:使用花括号创建,每个元素由Key:value组成。元素间使用逗号隔开。例如:
age={‘小米’:12,”小华”:15}
方法2:使用内置函数dict()创建。
Student=dict(name=”小米”,age=12)

字典中元素的获取方法:通过key来获取value值
在这里插入图片描述

修改字典元素:向字典添加新内容的方法是增加新的键/值对;修改旧键/值对。
删除字典元素
1、清除一个元素:del 字典名[“键名”]
2、清除所有元素:字典名.clear()
字典的理解:跟查字典的原理相似,根据字的偏旁部首查询到这个字。而python中的字典就是根据key来查询value所在的位置。

数组

numpy作用:由于机器学习算法在数据处理过程中大多涉及线性代数的知识,需要用到矩阵操作,python本身没有处理矩阵的数据类型,因此需要使用第三方库。其中numpy库是python的一种开源的数值计算扩展工具。
numpy:可定义复杂矩阵。

numpy操作,使用numpy,开发人员可以执行以下操作:
1.数组的算数和逻辑运算。
2.傅立叶变换和用于图形操作的例程。
3.与线性代数有关操作。numpy有线性代数和随机数生成的内置函数。

导入numpy:在使用numpy库之前,首先必须导入该函数库,导入方式如下:import numpy as np

numpy创建数组的方法(默认数据类型): 数组名=np.array([元素]) 数组名=np.array(range()) 数组名=np.arange()

numpy创建数组的方法(定义数据类型): 数组名=np.array([元素],dtype=数据类型) 数组名=np.array(range(),dtype=数据类型) 数组名=np.arange(,dtype=数据类型)

查看数组中的数据类型:print(数组名.dtype)
数组的形状有哪些:一维数组;二维数组;三维数组

如何创建多维数组: 二维:数组名=np.array([[元素],[元素],[元素]…]) 三维:数组名=np.array([[元素]],[[元素]]…) 三维形状,例如(2,3,4),表示有2个1x3X4的数组

如何查看数组的形状:数组名.shape。显示多少个数就是几个维度的数组。print(数组名.shape)输出的数据类型是元组。

修改数组的形状:数组名.reshape(新的形状)。例如:t2=t1.reshape(3,5)

数组的算术运算:遵循广播原则,数组中每个元素都要进行算术运算。
数组的算术运算包括:
1.数组和一个数进行算术运算;
2.数组和数组进行算术运算,对应位置的元素都要进行运算。 不同形状的数组进行乘法计算遵循矩阵乘法法则。第一个矩阵的列数和第二个矩阵的行数相等就可以就计算。
习题: import numpy as
np array1=np.zeros(10)
array1[2]=5
array1[5]=11
print(type(array1))

1、array就是数组的意思,数组就是矩阵;
2、C语言中也有数组,跟python中的特点相似,都要求数组中的元素类型相同。其次,数组相当于矩阵,因此有一维和多维形式。

空列表:a=[]或是a=list[]
空字典:b={}或是b=dict[]
空元组:c=()或是c=tuple()

集合

什么是集合?

集合是没有value的字典。集合是可变序列。

集合的创建方式:

1.使用{}进行创建。
例如:a ={“w”,12}

2.使用内置函数set()进行创建。
Set({“w”,12})

Set(range(6))将range函数转为为集合
Set([“w”,12])将列表转换为集合
Set((1,2,3))将元组转换为集合
Set(‘python’)将字符串转换为集合
注意:集合中的元素不允许重复。如果有相同的,只能输出一个。

集合部分暂时学到这里,后续有需要用得的,再扩展学下去。
使用set内置函数创建集合的方法跟其他内置函数创建对应数据类型的方式有所不同,需要注意,set函数的扩展性更强。

类与对象

在这里插入图片描述
使用西红柿炒鸡蛋的例子来理解上述两个编程思想。
类的定义:同属性个体的集合。不同数据类型就是不同的类。
对象的定义:类中的个体。Python中一切皆对象。
比如:int类型中的10和20,都是类中的不同个例,这个个例的专业术语叫做对象或是实例。
中国人和韩国人都是黄种人,前者为对象,后者为类
类的创建语法:
class 类名:
Pass #(pass在这里作为占位符)
类名命名规则:类名由一个或是多个单词组成,每个单词的首字母大写,其余小写。例如:class Student
类的组成:由类属性与方法组成。
类属性:类中且方法外的变量称为类属性,被该类的所有对象所共享。
方法:类中定义的函数称为方法。包括:初始化方法、类方法,实例方法以及静态方法。
类属性的调用方式:类名.类属性名。若创建了实例:实例名.类属性名

初始化方法:
def int(self,变量1,变量1…):
Self.变量1=变量1
Self.变量2=变量2#这个步骤称为赋值操作,其中Self.变量称为实体属性,将局部变量的值赋值给实体属性。
实例方法:无修饰的方法称为实例方法。实例方法中的小括号里面必须写self。
类方法:使用@classmethod修饰的方法,使用类名直接访问的方法。小括号必须写cls,也就是代表class。

类方法的使用:直接使用,类名.类方法名()

静态方法:使用@staticmethod修饰的方法,使用类目直接访问的方法。小括号内什么都不写。
静态方法的使用:直接使用,类名.静态方法名()
在这里插入图片描述
在这里插入图片描述
对象的创建:指的是将类实例化,也就是类的使用方法。类在python中也称为类对象,根据类对象创建而来的称为实例对象。
创建对象的语法:实例名=类名(实例参数)
例如:S1=Student(“小米”,12)

使用类中的属性和方法
对象名.属性名
对象名.方法名或是类名.方法名(类的对象)
例如:
Print(S1.name)
S1.info()或是Student.info(S1)

动态绑定属性和方法
绑定属性:在创建好实例对象后,单独为这个对象创建新的属性。例如,原来的类中有姓名和年龄,现在需要添加性别这个属性

绑定方法:方法同上。
在这里插入图片描述
1.在类之内定义函数称为实例方法,在类之外定义的是函数。
2.静态方法中不许写self
3.注意:创建的类的类型是class
4.类也称为类对象,因为python中一切皆对象。
5.一个类可以创建多个实例对象,每个实例对象的属性值不同。

封装、继承和多态

在这里插入图片描述
继承的概念:继承指的是子类继承了父类中的方法和属性。
父类继承object这个祖父类
在这里插入图片描述
定义子类的方法
class 子类名(父类名):
def init(self,父类中的变量,子类中的变量):
super().init(父类中的变量)#调用父类中的变量
self.子类中的变量=子类中的变量
例如:
在这里插入图片描述
多继承的概念:一个子类可以同时继承多个父类。
多继承定义子类的方法:class 子类名(父类名1,父类名2):
方法重写的概念:如果子类对继承自父类的某个属性或是方法不满意,可以在子类中对其进行重新编写。
如何实现方法重写
子类重写后的方法中可以通过super().xxx()调用父类中被重写的方法。
在这里插入图片描述
Object类的概念:object是所有类的父类,因此所有类都有object类的属性和方法。如果没有继承任何类,默认继承object类。
内置函数dir()的作用:可以查看指定对象所有属性。

多态的概念
特殊属性与方法
在这里插入图片描述

模块

1、模块的概念

模块:python中以.py为后缀名的文件就是模块。
模块可以包含什么?函数、类、语句。不同模块中的函数等名称可以相同。
模块的好处:1.避免函数名和变量名重复;2.提高代码维护性和可重用性。
内置模块:内置模块在跟着python编辑器下载的时候,一起下载的,因此它们的存储位置跟python安装位置相同。

在这里插入图片描述

2、模块的自建、导入、调用

自建模块:新建一个.py文件。名称尽量不要跟python自带的标准模块相同。
导入模块:按照以下两种方法中的一种进行导入。

方法1:import 模块名 as 别名 ;或是import 模块名。
方法2:from 模块名 import 函数名;

或是from 模块名 import* #其中*是通配符,表示所有函数。

模块名中函数调用:

对应方法1:模块名.函数名(函数参数)
对应方法2:函数名(函数参数)

3、Python中包的概念

包的概念:包是将一组功能相近的模块组织在一个目录下,这个目录就是一个包。因此一个包包含多个模块,本质上是一个文件夹。
包的好处:代码规范;避免模块名称冲突。
包的创建方式:python中以package来创建包。
识别包的方法:包含_int_.py文件的目录就是一个包,该文件可以为空文件,用于标识。

导入包中模块的方法:
3.1.使用import方式导入时,只能跟包名或模块名。因此导入的上面两级,不能直接导入函数。 import 包名 import 模块名

3.2.使用from导入时:以下两种方式
from 包名 import 模块名;
from 包名.模块名 import 函数名

4、第三方模块的安装与使用

第三方模块的概念:第三方模块就是基于python开发的函数库,是一些爱好者、程序员自己开发的,而不是python自带的,因此如果我们想用的话,需要进一步安装才行。
第三方模块的安装方法:pip install 模块名。打开终端输入上述代码即可安装模块。
pip是Python包管理工具,该工具提供了对Python包的查找、下载、安装、卸载的功能。注意:Python2.7.9+或Python3.4+以上版本都自带pip工具。
第三方模块使用方式:import 模块名
总结
1、python第三方程序包括库、模块、类和程序包等多种命名方,其实都是指同一东西,统称为库。
2、python内置的库称为标准库,其他库成为第三方库。python有许多内置模块,比如:math。
等级次序:包>模块>函数
在这里插入图片描述
在这里插入图片描述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_51244852/article/details/134225121

智能推荐

hive使用适用场景_大数据入门:Hive应用场景-程序员宅基地

文章浏览阅读5.8k次。在大数据的发展当中,大数据技术生态的组件,也在不断地拓展开来,而其中的Hive组件,作为Hadoop的数据仓库工具,可以实现对Hadoop集群当中的大规模数据进行相应的数据处理。今天我们的大数据入门分享,就主要来讲讲,Hive应用场景。关于Hive,首先需要明确的一点就是,Hive并非数据库,Hive所提供的数据存储、查询和分析功能,本质上来说,并非传统数据库所提供的存储、查询、分析功能。Hive..._hive应用场景

zblog采集-织梦全自动采集插件-织梦免费采集插件_zblog 网页采集插件-程序员宅基地

文章浏览阅读496次。Zblog是由Zblog开发团队开发的一款小巧而强大的基于Asp和PHP平台的开源程序,但是插件市场上的Zblog采集插件,没有一款能打的,要么就是没有SEO文章内容处理,要么就是功能单一。很少有适合SEO站长的Zblog采集。人们都知道Zblog采集接口都是对Zblog采集不熟悉的人做的,很多人采取模拟登陆的方法进行发布文章,也有很多人直接操作数据库发布文章,然而这些都或多或少的产生各种问题,发布速度慢、文章内容未经严格过滤,导致安全性问题、不能发Tag、不能自动创建分类等。但是使用Zblog采._zblog 网页采集插件

Flink学习四:提交Flink运行job_flink定时运行job-程序员宅基地

文章浏览阅读2.4k次,点赞2次,收藏2次。restUI页面提交1.1 添加上传jar包1.2 提交任务job1.3 查看提交的任务2. 命令行提交./flink-1.9.3/bin/flink run -c com.qu.wc.StreamWordCount -p 2 FlinkTutorial-1.0-SNAPSHOT.jar3. 命令行查看正在运行的job./flink-1.9.3/bin/flink list4. 命令行查看所有job./flink-1.9.3/bin/flink list --all._flink定时运行job

STM32-LED闪烁项目总结_嵌入式stm32闪烁led实验总结-程序员宅基地

文章浏览阅读1k次,点赞2次,收藏6次。这个项目是基于STM32的LED闪烁项目,主要目的是让学习者熟悉STM32的基本操作和编程方法。在这个项目中,我们将使用STM32作为控制器,通过对GPIO口的控制实现LED灯的闪烁。这个STM32 LED闪烁的项目是一个非常简单的入门项目,但它可以帮助学习者熟悉STM32的编程方法和GPIO口的使用。在这个项目中,我们通过对GPIO口的控制实现了LED灯的闪烁。LED闪烁是STM32入门课程的基础操作之一,它旨在教学生如何使用STM32开发板控制LED灯的闪烁。_嵌入式stm32闪烁led实验总结

Debezium安装部署和将服务托管到systemctl-程序员宅基地

文章浏览阅读63次。本文介绍了安装和部署Debezium的详细步骤,并演示了如何将Debezium服务托管到systemctl以进行方便的管理。本文将详细介绍如何安装和部署Debezium,并将其服务托管到systemctl。解压缩后,将得到一个名为"debezium"的目录,其中包含Debezium的二进制文件和其他必要的资源。注意替换"ExecStart"中的"/path/to/debezium"为实际的Debezium目录路径。接下来,需要下载Debezium的压缩包,并将其解压到所需的目录。

Android 控制屏幕唤醒常亮或熄灭_android实现拿起手机亮屏-程序员宅基地

文章浏览阅读4.4k次。需求:在诗词曲文项目中,诗词整篇朗读的时候,文章没有读完会因为屏幕熄灭停止朗读。要求:在文章没有朗读完毕之前屏幕常亮,读完以后屏幕常亮关闭;1.权限配置:设置电源管理的权限。

随便推点

目标检测简介-程序员宅基地

文章浏览阅读2.3k次。目标检测简介、评估标准、经典算法_目标检测

记SQL server安装后无法连接127.0.0.1解决方法_sqlserver 127 0 01 无法连接-程序员宅基地

文章浏览阅读6.3k次,点赞4次,收藏9次。实训时需要安装SQL server2008 R所以我上网上找了一个.exe 的安装包链接:https://pan.baidu.com/s/1_FkhB8XJy3Js_rFADhdtmA提取码:ztki注:解压后1.04G安装时Microsoft需下载.NET,更新安装后会自动安装如下:点击第一个傻瓜式安装,唯一注意的是在修改路径的时候如下不可修改:到安装实例的时候就可以修改啦数据..._sqlserver 127 0 01 无法连接

js 获取对象的所有key值,用来遍历_js 遍历对象的key-程序员宅基地

文章浏览阅读7.4k次。1. Object.keys(item); 获取到了key之后就可以遍历的时候直接使用这个进行遍历所有的key跟valuevar infoItem={ name:'xiaowu', age:'18',}//的出来的keys就是[name,age]var keys=Object.keys(infoItem);2. 通常用于以下实力中 <div *ngFor="let item of keys"> <div>{{item}}.._js 遍历对象的key

粒子群算法(PSO)求解路径规划_粒子群算法路径规划-程序员宅基地

文章浏览阅读2.2w次,点赞51次,收藏310次。粒子群算法求解路径规划路径规划问题描述    给定环境信息,如果该环境内有障碍物,寻求起始点到目标点的最短路径, 并且路径不能与障碍物相交,如图 1.1.1 所示。1.2 粒子群算法求解1.2.1 求解思路    粒子群优化算法(PSO),粒子群中的每一个粒子都代表一个问题的可能解, 通过粒子个体的简单行为,群体内的信息交互实现问题求解的智能性。    在路径规划中,我们将每一条路径规划为一个粒子,每个粒子群群有 n 个粒 子,即有 n 条路径,同时,每个粒子又有 m 个染色体,即中间过渡点的_粒子群算法路径规划

量化评价:稳健的业绩评价指标_rar 海龟-程序员宅基地

文章浏览阅读353次。所谓稳健的评估指标,是指在评估的过程中数据的轻微变化并不会显著的影响一个统计指标。而不稳健的评估指标则相反,在对交易系统进行回测时,参数值的轻微变化会带来不稳健指标的大幅变化。对于不稳健的评估指标,任何对数据有影响的因素都会对测试结果产生过大的影响,这很容易导致数据过拟合。_rar 海龟

IAP在ARM Cortex-M3微控制器实现原理_value line devices connectivity line devices-程序员宅基地

文章浏览阅读607次,点赞2次,收藏7次。–基于STM32F103ZET6的UART通讯实现一、什么是IAP,为什么要IAPIAP即为In Application Programming(在应用中编程),一般情况下,以STM32F10x系列芯片为主控制器的设备在出厂时就已经使用J-Link仿真器将应用代码烧录了,如果在设备使用过程中需要进行应用代码的更换、升级等操作的话,则可能需要将设备返回原厂并拆解出来再使用J-Link重新烧录代码,这就增加了很多不必要的麻烦。站在用户的角度来说,就是能让用户自己来更换设备里边的代码程序而厂家这边只需要提供给_value line devices connectivity line devices