Python 系统学习总结(基础语法+函数+数据容器+文件+异常+包+面向对象)
🔥博客主页: A_SHOWY
🎥系列专栏:力扣刷题总结录 数据结构 云计算 数字图像处理 力扣每日一题_
六天时间系统学习Python基础总结,目前不包括可视化部分,其他部分基本齐全,总结记录,学过C++和java等并用过一些py学起来快很多。另推荐某站学习课程链接在下方,讲解清晰。
【黑马程序员python教程,8天python从入门到精通,学python看这套就够了】https://www.bilibili.com/video/BV1qW4y1a7fU?p=115&vd_source=2a2d1efdeba6d2eedfe2fd5940c5f1be
一、字符串
1.字符串的三种定义方式
2.字符串格式化
3.字符串格式化的精度控制
用m.n控制数据的宽度和精度,m控制宽度,n控制小数点精度“%5d”、“%5.2f”、“%.2f”
如果m比数字本身的宽度还要小,就不会生效
*4.字符串格式化的快速写法
f”内容{变量}”
不会理会类型,不会做精度控制
5.对表达式进行格式化
表达式:一条有明确结果的代码语句,如1+1或者name=”张三”,age=1+1,type(“abcde”)
二、数据输入input
获取键盘的输入,可以使用input(提示信息),用于给用户提示。无论键盘输入什么类型,获取的都是字符串类型,需要自己类型转换。
print("请告诉我你是谁")
name=input()
print("我知道了,你是:%s"%name)
name=input("请告诉我你是谁?")
print("我知道了,你是:%s"%name)
例:
user_name = input("请输入您的姓名")
user_type = input("请输入您的用户类型")
print(f"{user_name},您是尊贵的{user_type}用户,欢迎您的光临")
三、判断语句
1.布尔类型和比较运算符
布尔类型的字面量:True,False
变量名称=布尔类型字面量
比较运算符:是否相等==,是否不相等!=,是否大于>,是否小于<,>=,<=
2.if判断语句
if 要判断的条件:
条件成立时,要做的事情
3.if else语句
if 条件:
满足条件要做的事情
else:
不满足条件要做的事情
4.if elif else语句
多个条件的判断,上一个满足后面的就不会判断了,可以在条件判断中直接写input
if 条件1:
条件1成立时,要做的事情
elif 条件2:
条件2成立时,要做的事情
elif 条件3:
条件3成立时,要做的事情
else:
所有条件都不满足要做的事情
5.判断语句的嵌套
补:随机数字:
import random
num = random.randint(1,2)
print(num)
四、循环语句
1.while循环的基础应用
While 条件:
条件满足时,做的事情1
条件满足时,做的事情2
.......
只要条件满足,会无限循环执行
条件需要布尔类型,需要设置终止的条件
不换行:
print("hello",end='')
print("world",end='')
制表符:\t,多字符串整齐对齐
print("hello\tworld")
print("itheima\tbest")
例:打印99乘法表
i = 1
while(i <= 9):j = 1while(j <= i):print(f"{i} * {j} = {i * j}\t",end = '')j += 1print()i += 1
2.for循环
(1)for循环的基础语法
for 临时变量 in 待处理数据集(序列)
循环满足条件时执行的语句
无法定义循环条件,只能从被处理的数据集中依次取出处理,无法构建无限循环
(2)range语句
range(1, 9) 不生成列表,而是一个表示从1到8(不包括9)的范围的对象。在Python 3中,range() 函数返回的是一个可迭代的对象,而不是立即生成所有元素的列表。
如果需要将其转换为列表,可以使用 list() 函数
序列:指内容可以一个个依次取出的类型:字符串,列表,元组
range语句可以获得一个简单的数字序列
语法1:
range(num)
获取一个从0开始,到num结束的数字序列(不含num本身)
语法2:
Range(num1,num2)
从num1开始到num2结束的数字序列,不含num2本身
语法3:
Range(num1,num2,step)
从num1开始到num2结束的数字序列(不含num2本身),数字之间的步长是step
(3)for循环临时变量作用域
临时变量,在编程规范上,作用范围,只限定在for循环内部
for i in range(5):print(i)
print(i)
如果想访问这个临时变量i,可以在for循环之前定义一个i=0,后面只是一遍遍覆盖这个i
for循环和while循环可以互相嵌套使用
例子:99乘法表
for i in range(1,10):for j in range(1,i + 1):print(f"{i}*{j} = {i * j}\t",end = '')print()
3.break和continue
(1)continue临时中断
中断本次循环,直接进入下一次循环
Continue语句只可以控制它所在的循环临时中断
(2)Break永久中断
break关键字用于直接结束循环
break语句也只控制他所在的循环
例:发工资
import random
i = 1
money = 10000
for i in range(1,21):t = random.randint(1,10)if t < 5:print(f"员工{i},绩效分{t},不发工资,下一位")continueif (t >= 5):if money <= 0:print("工资发完了,下个月领取吧")breakelse :money -= 1000print(f"向员工{i}发工资1000元,账户余额还剩余{money}元")
五、函数
1.函数的基础定义语法
def 函数名(传入参数):
函数体
return 返回值
传入参数和return可以省略,函数必须先定义后使用
函数的调用:
函数名(参数)
2.函数的参数使用
传入参数:在函数进行计算的时候,接受外部提供的数据
可以不使用参数,也可以使用任意N个参数
3.函数的返回值
变量=函数(参数)
返回值会给到这个变量
函数体一遇到return就结束了,后面的代码不会执行了。
4.函数的返回值的None类型
无返回值的函数实际上是返回了None这个字面量 <class 'NoneType'>
使用场景:
函数返回值;
在if判断中,None等同于False;
None也用于声明无初始内容的变量。
5.函数的说明文档
写上”””回车会自动出来前面的格式,鼠标放在调用的括号上会出来说明文档。
6.函数的嵌套调用
一个函数里又调用了另外一个函数
7.变量在函数中的作用域
作用域:变量在哪里可用,在哪里不可用
局部变量和全局变量和global关键字
局部变量:定义在函数体内部的变量,只在函数体内部生效
临时保存数据,在函数调用完后立即销毁变量
全局变量:在函数体内、外都能生效的变量
将变量定义在函数的外面
global关键字
如果没有global,函数B里的num还是局部变量
六、数据容器
1.数据容器的入门
一个容器容纳多份数据,每一份数据称为一个元素,每个元素可以是任意类型的数据。
列表、元组、字符串、集合、字典
2.列表
(1)列表的语法
列表中的元素可以是不同类型,支持嵌套
(2)列表的下标索引
获取对应位置的元素:
列表[下标索引]
(3)列表的常用操作
在python中如果将函数定义为class(类)的成员,函数就会称之为:方法。方法和函数只是使用格式不同。
列表的方法:
①查找某元素的下标,如果找不到,报错ValueError
语法:列表.index(元素)
②修改特定位置(索引)的元素值
语法:列表[下标]=值
③插入元素
语法:列表.insert(下标,元素),在指定的下标位置,插入指定的元素
④追加元素
语法:列表.append(元素),将指定元素,追加到列表的尾部
或者语法:列表.extend(其他的数据容器),将其他的数据容器的内容取出,依次追加到列表尾部
⑤删除元素
语法一:del 列表[下标]
语法二:列表.pop[下标],还能用变量接收删除的元素
⑥删除某元素在列表中的第一个匹配项
语法:列表.remove(元素)
⑦清空列表内容
语法:列表.clear()
⑧统计某个元素在列表中的数量
语法:列表.count(元素)
统计列表元素个数,这个不叫方法
语法:len(列表)
(4)列表的循环遍历
列表的while循环遍历
遍历:将容器内的元素依次取出进行处理的行为
列表的for循环遍历,for 临时变量 in 数据容器:临时变量进行处理
While循环适用于任何想要循环的场景
for循环适用于遍历数据容器的场景或简单的固定次数循环场景
#遍历两种写法
list = [21,25,21,23,22,20]
index = 0
while index < len(list):ele = list[index]print(f"元素{ele}")index += 1for x in list:ele = xprint(ele)
3.元组
列表是可以被修改的;元组一旦定义完成,就不可以修改
通过下标索引取出内容和list一样
元组里嵌套的list里的内容可以修改
4.字符串
字符串是一个无法修改的数据容器
常用操作
(1)查找特定字符串的下表索引值
语法:字符串.index(字符串)
字符串.rindex(字符串)找到的是最后一个字符串出现的位置
(2)字符串的替换
语法:字符串.replace(字符串1,字符串2)
将字符串内的全部字符串1,替换为字符串2
注意:不是修改了字符串本身,而是得到了一个新字符串
*(3)字符串的分割
语法:字符串.split(分隔符字符串)
功能:按照指定的分隔符字符串,将字符串划分为多个字符串,并存入列表对象中
注意:字符串本身不变,而是得到了一个列表对象
*(4)字符串的规整操作(去前后空格)
strip()去除开头和结尾的空格和换行符
(4)统计字符串中某个字符串出现的次数
语法:字符串.count(字符串)
(5)字符串长度
len(字符串)
字符串的遍历也支持while循环和for循环
¥(6)join方法
将序列中的元素连接成字符串,可以指定元素和元素之间连接的字符川
语法:separator.join(iterable)
- separator 是一个字符串,用于在连接时放置在序列的元素之间。
- iterable 是一个可迭代对象,通常是一个包含字符串的列表或元组。
不加分隔符:"".join(words)
¥(7)zfill方法
zfill 是字符串对象的一个方法,它用于在字符串的左侧(即字符串的开头)用零填充字符串,使其达到指定的宽度
语法:str.zfill(width)
¥(8)bin函数
将整数转换为二进制表示,会自动返回一个二进制的字符串,这个字符串以"0b"为前缀,后面跟着二进制表示的数字
5.数据容器(序列)的切片
序列:内容连续、有序,可使用下标索引的一类数据容器。列表、元组、字符串都可以视为序列。
切片:从一个序列中,取出一个子序列。
语法:序列[起始下标:结束下标:步长]
起始下标留空视作从头开始,结束下标留空(含)视作截取到结尾。结束下标(不含)表示何处结束。步长省略默认为1
步长1表示挨个取,步长2表示每次跳过一个取,步长N表示每次跳过N-1个取,步长为负数表示反向取。
[:-2]表示从头开始取到倒数第二个(不包含)
切片操作不会影响序列本身,而是得到一个新的序列
6.集合
列表可以修改、支持重复元素且有序;元组、字符串不可修改、支持重复元素且有序。
集合不支持重复元素且内部无序。不支持下标索引访问。集合可以修改
常用操作
①添加新元素
语法:集合.add(元素)
②移除元素
语法:集合.remove(元素)
③从集合中随即取出元素
语法:集合.pop()
④清空集合
语法:集合.clear()
⑤取出两个集合的差集
语法:集合1.difference(集合2)
功能:取出集合1里有而集合2没有的
结果:得到一个新的集合,集合1和集合2不变
⑥消除2个集合的差集
语法:集合1.difference_update(集合2)
功能:在集合1内删除和集合2相同的元素
结果:集合1被修改,集合2不变
⑦两个集合合并
语法:集合1.union(集合2)
功能:将集合1和集合2合成新集合
结果:得到新集合,集合1和集合2不变
⑧统计集合元素数量
语法:len(集合)
⑨集合的遍历
集合不支持下标索引所以不能用while循环,但是可以用for循环
⑩集合的交集
common = set1 & set2,返回的是包含两个集合中相同集合的元素
集合的update()方法
该方法会修改原始集合,将可迭代对象中的元素添加到集合中,如果有重复的元素,则只保留一个副本。
set1 = {1, 2, 3}
tuple1 = (2, 3, 4)
set1.update(tuple1)
7.字典
字典的key不可以重复,不可以使用下标索引,但是可以用key获得对应的value
语法:字典[key]
字典的嵌套:Key和value可以是任意数据类型(key不能为字典)
字典的常用操作
①新增元素
语法:字典[key]=value,结果:字典被修改,新增元素
②更新元素
语法:字典[key]=value,结果:字典被修改,元素被更新(效果不同取决于key存不存在)
③删除元素
语法:字典.pop(key),结果:获得指定key 的value,同时字典被修改,指定key的数据被删除
④清空元素
语法:字典.clear()
⑤获取全部的key
语法:字典.keys(),结果:得到字典中的全部key;字典.values(),得到字典中的全部value
⑥遍历字典
方式一:通过获取全部的keys来完成遍历
方式二:直接对字典进行for循环,每一次循环都是直接得到key
⑦统计字典内的元素数量
语法:len(字典)
Python在遍历字典时不允许修改字典元素,会报错RuntimeError: dictionary changed size during iteration,可以改为for k in list(my_dict.keys()):
8.数据容器总结
9.数据容器通用操作
(1)遍历
(2)len(容器)
(3)max(容器)
(4)min(容器)
(5)通用类型转换
①list(容器),容器转换成列表。字符串转列表将字符串每个元素都取出来作为列表的每个元素。字典将value抛弃掉只剩下key。
②tuple(容器),容器转换成元组。
③str(容器),容器转换成字符串。“[1,2,3,4,5]”“(1,2,3,4,5)”“{1,2,3,4,5}”,字典的value会保存
④set(容器),容器转换成集合。
⑤dict(容器),容器转换为字典。将其他序列转化成字典的时候 对这个序列有要求,这个序列得是二维的, 内层序列得有两个元素
[['语文', 77], ['数学', 78]]
*(6)通用排序功能
sorted(容器,reverse=True),传入True就是从小到大,传入False就是从大到小。排序的结果会全部变成列表,字典会丢失value
拓展:字符串大小比较
ASCII码表:大小写英文字母,数字,特殊符号都有对应的ASCII码
字符串进行比较就是基于ASCII码值大小进行比较的
七、函数进阶
1.函数的多返回值
逗号隔开的可以返回不同的类型
2.函数的多种传参方式
使用方式不同,四种常见的参数使用方式
(1)位置参数
调用函数时根据函数定义的参数位置来传递参数
(2)关键字参数
函数调用时通过“键=值”形式传递参数
(3)默认参数(缺省参数)
为参数提供默认值,调用函数时可以不传该默认参数的值,注意:所有位置参数必须在默认参数前。默认参数必须统一都在最后面
(4)不定长参数(可变参数)
用于不确定调用的时候会传递多少个参数
分为:
位置传递不定长
参数数量不一定多少
关键字传递不定长
3.匿名函数
(1)函数作为参数传递
前面我们学的都是接受数据作为参数传入:
数字、字符串、字典列表元组等
也可以函数本身作为参数传入另一个函数内
是一种计算逻辑的传递,而非数据的传递
(2)lambda匿名函数
函数的定义中
def关键字,可以定义带有名称的函数,可以反复使用
lambda关键字,可以定义匿名函数(无名称),只能临时使用一次
语法:
lambda 传入参数:函数体(只能写一行代码)
八、Python的文件操作
1.文件的编码
文本文件使用编码技术(密码本)将内容翻译成0和1存入计算机中。
编码技术:翻译的规则,记录了如何将内容翻译成二进制,以及如何将内容翻译回可识别内容。
计算机中可用编码:UTF-8、GBK、Big5等
2.文件的读取
什么是文件?文本文件、视频文件、音频文件、图像文件、可执行文件
对文件的操作:打开、关闭、读、写
文件的操作步骤:打开-读写-关闭
(1)打开
(2)读操作
Readlines:读取全部行,封装到列表
Read():读取全部,到字符串
多次调用read,后面的read会在上一次read的结尾处开始读
\n是回车换行符
(3)关闭文件
(4)with open语法
例子;文件的读取,统计里面“chenzi”的数量
f = open('E:\guozi.txt','r',encoding = 'UTF-8')
count = 0
for line in f:line = line.strip()words = line.split(" ")print(words)for word in words:if word == "chenzi":count += 1
print (count)
f.close()
3.文件的写入
write方法,内容并未真正写入文件,会在内存中的缓冲区,调用flush的时候才会真正写入文件。避免频繁操作硬盘。
f.write写入的必须是字符串不能是别的。
Close()内置了flush()
4.文件的追加
a模式,文件不存在会创建文件
文件存在会追加写入文件,在原有内容后面继续写入,可以使用“\n”来换行
九、Python异常、模块与包
1.异常
程序运行过程中出现了错误(Bug)
(1)异常的基本捕获方法:
基本语法:
try:
可能发生错误的代码
except:
如果出现异常执行的代码
(2)捕获指定异常
基本语法:
try:
print(name)
except NameError(异常) as e(别名):
print(‘name变量名称未定义错误’)
(3)捕获多个异常
(4)捕获全部异常
try:
except Exception as e:
(5)异常else
else表示的是如果没有异常要执行的代码
try:
except Exception as e:
else:
(6)异常的finally(放在最后)
表示无论是否异常都要执行的代码,例如关闭文件
try:
except Exception as e:
else:
finally:
2.异常的传递
异常具有传递性
3.python的模块
模块(module),是一个python文件,以.py结尾,模块能定义函数,类和变量,也可能包含可执行的代码。一个模块就是一个工具包
(1)模块的导入方式
一般写在开头的位置
中括号是表示可以写可以不写
基本语法:
(1)
import 模块名 模块里所有功能都能用
import 模块名1,模块名2
模块名.功能名()
(2)
from 模块名 import 功能名 模块里只有这一个功能能用
功能名()
(3)
from 模块名 import * *表示全部的意思,和(1)的区别不需要用.
(4)
4.自定义python模块
注意:当导入多个模块的时候,且模块内有同名功能,当调用同名功能,调用到的是后面导入模块的功能。
(1)__main__变量
__main__变量所提供的功能:运行这个模块文件的时候name被自动赋值了main所以会运行,但去另一个用这个模块的文件中运行就不会了。
(2)__all__变量
__all__作用在*上
5.自定义python包
Python包就是一个文件夹,在该文件夹下包含了一个__init__.py文件(创建包会默认自动创建的文件),这个文件存在才说明这是一个包。
导入包:
(1)方式一
或者用 from 包名 import 模块名,这样不用写包名.了
下面三种方法
(2)方式二
通过__all__变量控制import *
在__init__.py文件里定义__all__变量
6.第三方包
(1)安装方法一
使用pip程序即可,打开命令提示符程序,在里面输入:pip install包名称
国内网站安装命令:
(2)安装方法二
在pycharm里安装
点加号搜索安装就行,如果想用国内的就在选项勾选然后输入
十、可视化案例
等待更新
十一、面向对象
生活中或是程序中,我们都可以使用设计表格、生产表格、填写表格的形式组织数据
使用对象组织数据
设计类
创建对象
对象属性赋值
1.类的成员方法
(1)类的定义和使用
定义在类内部的函数称之为方法
调用的时候self关键字可以不用理会,不用写这个参数
2.类和对象
现实世界的事物由属性和行为组成,类也可以包含属性和行为,所以类很适合用来描述现实世界。
面向对象编程:设计类,基于类创建对象,由对象做具体的工作。
3.构造方法
注意事项:
构造方法也是成员方法,self关键字不要忘记,构造方法内访问成员变量,要用self。
4.魔术方法
__init__构造方法,是pythontip类内置的方法之一,这些内置的类方法,各自有各自的特殊功能,这些内置方法我们称之为:魔术方法。
(1)__str__字符串方法
当类对象需要变成字符串就会通过字符串方法去变成字符串的形式,如果不写就会输出内存地址
(2)__lt__小于符号比较方法
(3)__le__小于等于比较符号方法
(4)__eq__比较运算符实现方法
5.封装
封装是:将现实世界的属性和行为,封装到类中描述为成员变量和成员方法。
私有成员:
私有成员变量:变量名以__开头
私有成员方法:方法以__开头(两个下划线)
私有成员无法被类对象使用,但是可以被类中的其他成员使用。
6.继承
(1)单继承
class 类名(父类名):
类内容体
(2)多继承
一个类继承多个父类
class 类名(父类1,父类2,......,父类N):
类内容体
多个父类中,如果有同名的方法或者属性,先继承的优先级高于后继承(左边的高)
pass关键字的作用:占位语句,用于保证定义的完整性,表示无内容,空的意思。
(3)复写父类成员
子类继承父类的成员属性和方法后,如果对其不满意,可以进行复写
调用父类同名成员
注意:只可以在子类内部调用父类的同名成员,子类的实体类对象调用默认是调用子类复写的。
7.类型注解
为什么需要类型注解?
在代码中涉及数据交互的地方,提供数据类型的注解(显示的说明)
主要功能:
帮助IDE对代码进行类型推断,协助做代码提示;帮助开发者自身对变量进行类型注释
支持:
(1)变量的类型注解;
为变量设置注释,显示的变量定义,一般无须注解
类型注解只是提示性的,不是强制性的,不会报错
(2)函数(方法)形参列表和返回值的类型注解
、
(3)union类型
8.多态
多态:多种状态,即完成某个行为时,使用不同的对象会得到不同的状态。
*抽象类(接口)
抽象类就好比定义一个标准,包含了一些抽象的方法,要求子类必须实现。
相关文章:

Python 系统学习总结(基础语法+函数+数据容器+文件+异常+包+面向对象)
🔥博客主页: A_SHOWY🎥系列专栏:力扣刷题总结录 数据结构 云计算 数字图像处理 力扣每日一题_ 六天时间系统学习Python基础总结,目前不包括可视化部分,其他部分基本齐全,总结记录࿰…...

汽车碰撞与刮伤的实用维修技术,汽车的车身修复与涂装修补教学
一、教程描述 本套汽车维修技术教程,大小7.44G,共有60个文件。 二、教程目录 01-汽车车身修复教程01-安全规则(共3课时) 02-汽车车身修复教程02-汽车结构(共3课时) 03-汽车车身修复教程03-汽车修复所使…...

网络信息安全:nginx漏洞收集(升级至最新版本)
网络&信息安全:nginx漏洞收集(升级至最新版本) 一、风险详情1.1 nginx 越界写入漏洞(CVE-2022-41742)1.2 nginx 缓冲区错误漏洞(CVE-2022-41741)1.3 nginx 拒绝服务漏洞(CNVD-2018-22806) 二、nginx升级步骤 &…...

【go从入门到精通】go包,内置类型和初始化顺序
大家好,这是我给大家准备的新的一期专栏,专门讲golang,从入门到精通各种框架和中间件,工具类库,希望对go有兴趣的同学可以订阅此专栏。 go基础 。 Go文件名: 所有的go源码都是以 ".go" 结尾&…...

【项目实战】高并发内存池(仿tcmalloc)
【项目实战】高并发内存池(仿tcmalloc) 作者:爱写代码的刚子 时间:2024.2.12 前言: 当前项目是实现一个高并发的内存池,它的原型是google的一个开源项目tcmalloc,tcmalloc全称 Thread-Caching M…...

计算机等级考试:信息安全技术 知识点一
美国联邦政府颁布数字签名标准(Digital Signature Standard,DSS)的年份是1994美国联邦政府颁布高级加密标准(Advanced Encryption Standard,AES)的年份是2001产生认证码的函数类型通常有3类:消息加密、消息认证码和哈希函数。自主访问控制,Di…...

开展庆2024年“三八”国际妇女节系列纪念活动怎样向媒体投稿?
为了向媒体投稿,庆祝2024年“三八”国际妇女节系列纪念活动,你可以遵循以下步骤: 策划与准备: 确定纪念活动的主题和目标,例如提升女性权益、表彰女性成就、促进性别平等。 策划一系列活动,如研讨会、表彰仪式、展览、讲座等,确保内容丰富多样。 准备相关的背景资料、活动介…...

SpringBoot-集成Elasticsearch
jsoup:https://jsoup.org/ 依赖 <!--解析网页--> <dependency><groupId>org.jsoup</groupId><artifactId>jsoup</artifactId><version>1.10.2</version> </dependency> <dependency><groupId>c…...

数据结构之顺序表及其实现!
目录 编辑 1. 顺序表的概念及结构 2. 接口的实现 2.1 顺序表的初始化 2.2 检查顺序表容量是否已满 2.3 顺序表的尾插 编辑 2.4 顺序表的尾删 2.5 顺序表的头插 2.6 顺序表的头删 2.7 顺序表在pos位置插入 2.8 顺序表在pos位置删除 2.9 顺序表的查找 2.10 顺…...

Vue组件间通信实践
Vue组件间通信实践 🌟 前言 欢迎来到我的小天地,这里是我记录技术点滴、分享学习心得的地方。📚 🛠️ 技能清单 编程语言:Java、C、C、Python、Go、前端技术:Jquery、Vue.js、React、uni-app、EchartsUI设…...

FISCO BCOS区块链平台上的智能合约压力测试指南
引言 在当今的分布式系统中,区块链技术因其去中心化、安全性和透明性而备受关注。随着区块链应用的不断扩展,对其性能和稳定性的要求也越来越高。因此,对区块链网络进行压力测试显得尤为重要。 目录 引言 1. 配置FISCO BCOS节点 2. 安装和…...

LabVIEW流量控制系统
LabVIEW流量控制系统 为响应水下航行体操纵舵翼环量控制技术的试验研究需求,通过LabVIEW开发了一套小量程流量控制系统。该系统能够满足特定流量控制范围及精度要求,展现了其在实验研究中的经济性、可靠性和实用性,具有良好的推广价值。 项…...

Python 爱心代码
Python爱心代码是一种用Python编程语言实现的图形化表达方式,可以通过一系列的代码来绘制出一个爱心形状。以下是一个简单的Python爱心代码示例: import turtle # 设置画布和画笔 canvas turtle.Screen() canvas.bgcolor("black") pen turt…...

linux kernel物理内存概述(五)
目录 概述 一、快速路径分配 1、get_page_from_freelist 2、rmqueue()函数 二、慢速路径分配 1、分配流程 三、direct_compact 概述 物理内存分配步骤 1、初始化,参数初始化 2、内存充足,快速分配 get_page_from_freelist 3、内存压力大,慢速…...

3分钟带你搞定电流采样电阻选型
大家好,我是砖一。 一,电流采样电阻的介绍 电流检测电路常用于高压短路保护、电机控制、DC/DC换流器、系统功耗管理、二次电池的电流管理、蓄电池管理等电流检测等场景。 比如,对于电机来说,电流检测电路是为了检测电流功能有比…...

代码随想录算法训练营Day52 | 300.最长递增子序列、674.最长连续递增序列、718.最长重复子数组
300.最长递增子序列 这题的重点是DP数组的定义,子序列必须以nums[i]为最后一个元素,这样dp数组中后面的元素才能与前面的元素进行对比 1、DP数组定义:dp[i]表示以nums[i]为最后一个元素的最长递增子序列长度 2、DP数组初始化:全部…...

一个测试OOM killer的程序未触发OOM所带来的问题
概述 我们知道,由于MMU实现了虚拟地址到物理地址的转换,所以我们在申请虚拟地址时往往可以申请一大块内存,这实际上是对资源的有效利用,毕竟只有内存真正被投入使用时(如memset)才会实际分配物理内存&…...

SanctuaryAI推出Phoenix: 专为工作而设计的人形通用机器人
文章目录 1. Company2. Main2.1 关于凤凰™ (Phoenix)2.2 关于碳™(Carbon)2.3 商业化部署2.4 关于 Sanctuary Corporation 3. My thoughtsReference彩蛋:将手机变为桌面小机器人 唯一入选《时代》杂志 2023 年最佳发明的通用机器人。 称机器人自主做家务的速度和灵…...

李沐动手学习深度学习——4.2练习
1. 在所有其他参数保持不变的情况下,更改超参数num_hiddens的值,并查看此超参数的变化对结果有何影响。确定此超参数的最佳值。 通过改变隐藏层的数量,导致就是函数拟合复杂度下降,隐藏层过多可能导致过拟合,而过少导…...

CYQ.Data 支持 DaMeng 达梦数据库
DaMeng 达梦数据库介绍: 达梦数据库(DMDB)是中国自主研发的关系型数据库管理系统,由达梦科技股份有限公司开发。 达梦数据库提供了企业级的数据库解决方案,广泛应用于金融、电信、政府、制造等行业领域。 达梦数据库具有以下特点和优势: 高性能:具备高性能的并发处理…...

计网面试题整理上
1. 计算机网络的各层协议及作用? 计算机网络体系可以大致分为一下三种,OSI七层模型、TCP/IP四层模型和五层模型。 OSI七层模型:大而全,但是比较复杂、而且是先有了理论模型,没有实际应用。TCP/IP四层模型:…...

code: 500 ] This subject is anonymous - it does not have any identifying
项目场景: 相关背景: 使用idea 开发java 项目,前端页面请求 页面中相关的接口时,idea 控制台有报错信息出现,前端请求失败。 问题描述 问题: 使用idea 开发java 项目,前端页面请求 页面中相…...

FC-AE-1553 协议
FC-AE-1553 协议 MIL-STD-1553B总线协议总线结构字格式消息传输方式 FC协议FC协议栈拓扑结构服务类型帧/序列/交换FC帧格式 FC-AE-1553网络构成帧类型命令帧状态帧数据帧 Information UnitsNC1NC2NC3-4NC5-7NT1-7 传输模式1. NC-NT2. NT-NC3. NT-NT4. 无数据字的模式命令5. 带数…...

代码随想录算法训练营day38|理论基础、509. 斐波那契数、70. 爬楼梯、746. 使用最小花费爬楼梯
理论基础 代码随想录 视频:从此再也不怕动态规划了,动态规划解题方法论大曝光 !| 理论基础 |力扣刷题总结| 动态规划入门_哔哩哔哩_bilibili 动态规划:如果某一问题有很多重叠子问题,使用动态规划是最有效的。所以动态…...

夫妻一方名下股权到底归谁?
生效判决摘要:1.夫妻一方在婚姻关系存续期间投资的收益,为夫妻的共同财产,归夫妻共同所有,但是并不能据此否定股权本身可能成为夫妻共同财产。婚姻关系存续期间登记在配偶一方名下的股权能否成为夫妻共同财产,可由司法…...

git根据文件改动将文件自动添加到缓冲区
你需要修改以下脚本中的 use_cca: false 部分 #!/bin/bash# 获取所有已修改但未暂存的文件 files$(git diff --name-only)for file in $files; do# 检查文件中是否存在"use_cca: false"if grep -q "use_cca: false" "$file"; thenecho "Ad…...

SystemVerilog Constants、Processes
SystemVerilog提供了三种类型的精化时间常数: •参数:与最初的Verilog标准相同,可以以相同的方式使用。 •localparameter:与参数类似,但不能被上层覆盖模块。 •specparam:用于指定延迟和定时值&#x…...

交易平台开发:构建安全/高效/用户友好的在线交易生态圈
在数字化浪潮的推动下,农产品现货大宗商品撮合交易平台已成为连接全球买家与卖家的核心枢纽。随着电子商务的飞速发展,一个安全、高效、用户友好的交易平台对于促进交易、提升用户体验和增加用户黏性至关重要。本文将深入探讨交易平台开发的关键要素&…...

Linux系统之部署复古游戏平台
Linux系统之部署复古游戏平台 前言一、项目介绍1.1 项目简介1.2 项目特点1.3 游戏平台介绍二、本次实践介绍二、本地环境介绍2.1 本地环境规划2.2 本次实践介绍三、本地环境检查3.1 安装Docker环境3.2 检查Docker服务状态3.3 检查Docker版本3.4 检查docker compose 版本四、构建…...

开源计算机视觉库opencv-python详解
开源计算机视觉库opencv-python详解 OpenCV-Python的核心功能:安装OpenCV-Python:使用OpenCV-Python的基本步骤:OpenCV-Python的高级应用:注意事项:OpenCV-Python的高级应用示例:1. 人脸识别2. 目标跟踪3. …...