程序设计语言—Python几种语言区别的总结

news2024/12/26 11:06:19

程序设计语言篇—Python&几种语言区别的总结

文章目录

    • 程序设计语言篇—Python&几种语言区别的总结
    • 一、Python介绍&理解
      • 1.1 Python基础
      • 1.2 Python规范
    • 二、标识符&变量&常量
    • 三、数据类型&运算符和表达式
      • 3.1 数据类型
      • 3.2 运算符&表达式
    • 四、常用的函数&内部函数
      • 4.1 输入输出函数
      • 4.2 常用的内部函数
      • 4.3 自定义函数&调用
    • 五、选择与循环结构
      • 5.1 条件语句
      • 5.2 循环语句
    • 六、最后总结区别&注意点(Java/Python/C/VB)


在线编辑器
在线编辑器
Python教程:Python教程
Python菜鸟教程

一、Python介绍&理解

1.1 Python基础

1、Python定义:面向对象的解释型语言,结合了跨平台性和互动性的高级通用脚本语言。保留了编译器的部分功能,随着程序的运行,解释器也会生成一个完整的目标代码。
2、Python的特点:

  • 易于学习:关键字少,结构简单(没有分号、begin、end等标记→对缩进要求高),有一个明确定义的语法,仅有35个保留字,
  • 易于阅读/维护:结构清晰、源代码易于维护
  • 广泛的标准:有丰富的库,可以跨平台使用,在UNIX和Windows 兼容很好。
  • 互动模式:可以从终端输入执行代码并获得结果的语言、互动的测试和调试代码片断。
  • 可移植:开放源代码,因此Python已经被移植到许多平台。
  • 可扩展:可以结合其他语言,比如使用C或C++完成一段运行很快的关键代码,然后从 Python 程序中调用。
  • 可嵌入:可以将Python 嵌人到 CC++程序,让程序获得“脚本化”的能力。
  • 数据库:Python 提供所有主要的数据库的接口。
  • CUI编程:支持GUI可以创建和移植到许多系统调用。

3、Python的应用领域

  • Web 和Internet 开发:Python 有大量成熟的 Web框架,如 Django、Flask、Bottle、Tornado 等。
  • 科学计算和统计:Python 有像 NumPy、Pandas 这样的科学计算库,完全可以代替R语言和 MATLAB。
  • 人工智能:通用机器学习可以使用sklearm,深度学习有谷歌的TensorFlow和脸书的PyTorch,这些都是业界最流行的 Python机器学习框架。就连著名的阿尔法围棋(AlphaGo)也是使用Python编写的。
  • 桌面界面开发:GUI
  • 软件开发:App
  • 网络爬虫:Python+Matlab

1.2 Python规范

1、行与缩进:严格遵守缩进规则

  • 缩进方式:①单个制表符;②两个空格;③四个空格,不能混用。
  • 缩进定义:每行语句开始前的空白区域,用来表示Python程序间的包含和层次关系。
  • Python中:顶行编写且不留空白,Python不使用{},采用缩进的方式来控制函数、逻辑判断、代码组,同一层次必须使用相同数目的缩进空格数,否则就会报错"unindent does not match any outer indentation level"表示"文本没有对齐"。

2、代码组
定义:对于像if、def、while、class这样的复合语句,第一行以关键字开始,行的末尾以":"结束,在这之后的一行或多行所构成的代码片段叫做代码组,也成为子句。
在代码组中的每一行代码都要遵循相同的缩进规则。

3、注释
定义:代码中辅助性文字,会被编译器或解释器忽略,不会被计算机执行,用于对代码的说明。
注意:注释不能嵌套使用

#单行注释
'''
多行注释
'''
"""
多行注释
"""

4、源代码文件类型
以下这些都可以直接运行,不需要编译或者连接

  • 源代码文件:.py,由Python负责解释
  • 字节代码文件:.pyc,源文件经过编译后生成的文件,不能直接用文本编译器修改,与平台无关,可以在大部分操作系统上运行。(跨平台性)
  • 优化后的字节码文件:.pyo,更像编译型语言里的中间文件。

5、“”>>>":Python语言环境的提示符,表示此符号后可以输入Python语句,没有的是Python语句的执行结果。

二、标识符&变量&常量

标识符命名规则:变量、方法、类等要素命名时使用的字符序列。即凡是自己可以起名字的地方都叫标识符

  • 大小写字母、数字、下划线、汉字,首字符不能是数字(不建议采用中文开头)
  • 变量名之间不能出现空格
  • 区分大小写字母
  • 不能与保留字相同

1、变量:都不需要声明变量,直接使用。
(1)变量的分类:

  • 全局变量:函数之外定义的变量,访问权限:被文件内部的任何函数和外部文件访问【没有Java中的封装性之说】
    建议:全局变量定在文件的开头,或者放到一个专门的文件中,用import引用。
  • 局部变量:在函数之内定义的变量

【与Java区别】java是面向对象的,因此Java中的变量分为成员变量(类的成员之一)、局部变量
(2)变量的赋值方式:赋值操作就是变量声明和定义的过程。一次新的赋值将创建一个新的变量,如果没有赋值,Python认为该变量不存在。

  • Python可以同时为多个变量赋值,如:a,b=1,2
  • 一个变量可以通过赋值指向不同类型的对象。【指向什么类型就是什么类型的变量】
  • 同步赋值语句:a,b=1,2;应用:同时给多个变量赋值,简化互换变量的值

2、常量
Python中没有提供定义常量的保留字,可以自定义一个常量类来实现常量的功能

class_const:
	class ConstError(TypeError): pass
		def _setattr_(self,name,value):
			if self._dict_.has_key(name):
				raise self.ConstError, "Can't rebind const const(%s)"%name
				self._dict_[name]=value
import sys
sys.modules[_name_]=_const()

三、数据类型&运算符和表达式

3.1 数据类型

Python中标准的六个数据类型:【不可变】Number(数字)、String(字符串型)、Tuple(元组)、【可变】List(列表)、Set(集合)、Dictionary(字典)
理解:str()、tuple()、list、set()、dict():可以理解为数据类型的转换
使用它们创建相关类型的数据时(只接受一个参数,或者0):需传入一个可迭代的对象作为参数(列表、元组、集合、字典的键、字符串、文件对象、生成器、迭代器),无论可不可变,可以理解为数据类型的转换!

1、number(数字):可以进行数值运算

  • Python中支持:int、float、bool、complex(复数),强类型语言【如Java】的每种一个代表
  • 整数数值可以表示为十进制(默认)、二进制(0b)、八进制(0o)、十六进制(0x)
  • 在混合计算的时候会自动将整形转换为浮点数【自动转换】
  • /结果是多少就是多少,提供了int()来向0取整,//表示向下取整

2、String(字符串)
形式:‘’、“”,两种效果一样,注意Python中没有单独的字符类型,一个字符就是长度为1的字符串,字符串不能被改变【如果str[0]=‘a’会报错!】
定义空字符串:“”、’‘、str()
转义字符:\表示:换行\n、反斜杠\、单引号’、双引号"、制表符\t,当路径中有\,可以用\表示\,或者r"路径"
常用的操作:

  • 截取/切片、索引,返回一个新的字符串。从0开始,-1表示末尾,尾下标取不到,如果是[0,-1],只能取到倒数第二个,[0:]取到尾。单双引号是不会输出的
    • 变量[索引/下表]:从前往后从0开始越来越大,从后往前从负数-1开始越来越小
    • 变量[头下标 : 尾下标]:同样尾下标取不到。
    • 变量[头下标 : 尾下标]:步长正数:从前往后;步长负数:从后往前
  • 连接操作+:表示连接字符串
  • 复制操作*n:表示复制当前字符串n次,前后都行(注意复制后的字符串没有空格)
str = 'jiaoyu'
print(str)#字符串输出是没有引号的
print(str[0:-1])#jiaoy,不包含尾下标
print(str[0])#第一个字符:j
print(str[-3])#从后往前,从-1开始,即倒数第三个:o
print(str[str*2])#复制:jiaoyujiaoyu,注意中间是没有空格的
print(str+"TEST")#jiaoyuTEST
print(str[0:])
print(str[0:6])#这两个都能截取到全部字符串,超出索引也没事

3、tuple(元组)
定义:()之间元素之间用逗号分隔,元素类型任意,不变性,有序性,可重复性。字符串可以看成是一种特殊的元组。
定义空元组:()、tuple();1个元素的元组:[1,],注意要有逗号!
元组的不可变性性质:安全性(不希望被修改的数据)、性能(无需额外的内存来处理可能的修改)、哈希(可以作为字典的键/集合的成员)
常用的操作:索引、切片/截取、+连接操作,注意不能复制*n,否则元组的元素就重复了。操作和字符串一样

  • 截取/切片、索引,返回一个新的元组/元组元素
    • 变量[索引/下表]:得到是某个元组元素。从前往后从0开始越来越大,从后往前从负数-1开始越来越小
    • 变量[头下标 : 尾下标]:得到的是某个子元组。同样尾下标取不到。list1[2:2]得到的是空列表
    • 变量[头下标 : 尾下标 : 步长]:得到的是某个子元组。步长正数:从前往后;步长负数:从后往前
  • 连接操作+:表示连接列表得到一个新的元组

4、list(列表)
定义:[]之间以逗号分隔开的元素列表,元素类型任意,可重复性,有序性,不变性
定义空列表:[]、list()
常用的操作:

  • 截取/切片、索引,返回一个新的列表
    • 变量[索引/下表]:得到是某个列表元素。从前往后从0开始越来越大,从后往前从负数-1开始越来越小
    • 变量[头下标 : 尾下标]:得到的是某个子列表。同样尾下标取不到。list1[2:2]得到的是空列表
    • 变量[头下标 : 尾下标 : 步长]:得到的是某个子列表。步长正数:从前往后;步长负数:从后往前
  • 连接操作+:表示连接列表得到一个新的列表
  • 复制操作*n: 表示复制列表得到一个新的列表
  • 改变List元素:通过切片和索引得到列表的一个/多个元素,通过列表赋值来改变
    • 改变某个元素值:得到某个索引位置的元素str[0],可以为其赋值各种类型的变量改变该位置的元素值
    • 改变子列表(可以起插入作用或者替换1/多个元素):使用新的列表替换得到的子列表,特殊情况:list1[2:2]得到的是空列表,那么将新的列表放在索引为2这个列表元素的前面。
      原则:列表元素可以是列表类型,列表不能不能替换列表某个元素(特殊情况该元素是列表类型)
#所有的操作都是基于原列表list1进行的
list1=['abcd',786,2.23,'Jiaoyu',70.2]
list1[2:2]#得到的是空列表

list1[0]=3#索引为0的元素值改变了[3,786,2.23,'Jiaoyu',70.2]
list1[1]=[3]#索引为1的元素值改变了['abcd',[3],2.23,'Jiaoyu',70.2],即用列表替换元素,本质还是一样的
#改变子列表
#list[0:1]=0#这种写法是错误的,因为0属于数值型,list[0:1]是子列表,不能赋值。特殊情况:该索引位置的元素是列表类型可以
list1[2:2]=[9,10]#得到的是空列表,将新列表[9,10]放在索引为2这个元素的前面,结果['abcd',786,9,10,2.23,'Jiaoyu',70.2]

列表提供的一些操作方法:
以ls=[1,2,3,4,5,6]为例,所有的都是基于原列表操作得到的结果

方法描述举例
ls.append(x)在列表ls最后增加一个元素x[1,2,3,4,5,6,x]
ls.insert(i,x)在列表第i位置增加元素x,理解在索引位置元素的前面插入i等于2时[1,2,x,3,4,5,6];i等于-2时[1,2,3,4,x,5,6]
ls.clear()删除列表中所有元素[]空列表
ls.pop(i)将列表ls中第i项取出,并从ls中删除该元素i=2时[1,2,4,5,6];i=-2时[1,2,3,4,6]
ls.remove(x)将列表中出现的第一个元素x删除如果不存在的话会报错
ls.reverse()将列表ls中的元素反转[6,5,4,3,2,1]
ls.copy()生成一个新列表,复制ls列表所有元素注意原列表是不变的

总结:字符串、列表、元组

  • 截取如果超出索引也没事,会完整的输出全部。因为如果str=“123”,那么截取全部可以str[0:]或者str[0:3]或者大于3都行。
  • 步长为负数还有点疑问
  • 因为尾下标取不到,如果头下标和尾下标一样,那么得到的是空字符串/列表/元组
  • -1表示倒数第一个,-2倒数第二个,以此类推;0第一个,1第二个,以此类推。

5、集合set
定义:由一个或多个形态各异的大小整体组成,构成集合的事务/对象称作元素/成员。
形式:{}的元素以逗号隔开。可变性,唯一性(不可重复,如果定义了重复的那么会自动检测并删除),无序性,因此没有索引和位置的概念,可以动态地增加/删除,元素类型只能是不可变的数据类型(数值、字符串、元组)
定义空集合:set(),只能用这个,并且输出空集合的表示也是set()。而{}表示空字典。
基本功能:测试成员关系、删除重复元素

6、dictionary(字典)
定义:一种映射类型,{}标识,无序性,元素是键(key) : 值(value)对的集合。通过键取值,与列表通过偏移取值不一样!
键的特点:唯一性,元素类型时不可变类型(数值、字符串、元组)
定义空字典:{}、map()。注意创建字典的方式map1=map()
常用的操作方法:

  • 取键、取值:字典.keys()、字典.values(),得到的类型分别是dict_keys、dict_values类型
  • 以键取值:字典[键名]
  • 连接+操作
dict={}
dict=dict()
tinydict={'name':'Jiaoyu','code':1,'site':'www.Jiaoyu.com'}
print(tinydict['one'])
print(tinydict[2])#得到键为2的值
print(tinydict)#得到完整的字典
print(tinydict.keys())
print(tinydict.values())

字典提供的一些操作方法:<字典变量>.<方法名称>(<方法参数>)
一般键值对都是以元组的形式(键,值),多个键值对组成列表,该列表又放在元组中。多个单独的键/值,组成列表,放在元组中
以d={‘张三’:100,‘李四’:99,‘王二’:66}为例,所有的都是基于原字典操作得到的结果

方法描述举例
d.keys()返回所有键的信息([‘张三’,‘李四’,‘王二’])类型时dict_keys
d.values()返回所有值的信息([100,99,66])类型时dict_values
d.items()返回所有的键值对([(‘张三’,100),(‘李四’,99),(‘王二’,66)])
d.get(key,default)键存在返回相应值,否则返回默认值default由键取值
d.clear()删除所有的键值对{}空字典
d.pop(key,default)键存在就返回相应的值,否则返回默认值default以键删值
d.popitem()随机从字典中取出一个键值对,以元组(key,value)形式返回,同时将该键值对从字典中删除(键,值)类型元组tuple

3.2 运算符&表达式

1、算术运算符
加减乘除取余:+、-、* 、/、%,除是向0取整,使用int也是向0取整
向下取整://,而在VB中则表示向0取整,这点要注意,java/c中都没有这个运算符
幂: * *,表示x的y次方
2、比较(关系)运算符:运算结果是true、false,编译运行存储在计算机中是1,0。这一点与二进制符号位0正1负做一个区分
等于、不等于:==、!=(<>也可以,VB中就是这个)
大于、小于、大于等于、小于等于:>、<、>=、<=
3、赋值运算符
简单的赋值:=
与算术运算符结合=,举例:a += b表示a=a+b
4、逻辑运算符

逻辑运算符逻辑表达式描述boolean false、true变量
andx and y布尔"与",同真为真,短路性质同true为true,但是如果第一个是false,第二个就不会再去判断了同非0为非0,但是如果第一个是0,第二个就不会执行
orx or y布尔"或",同假为假,短路性质同false为false,但是如果第一个是true,第二个就不会执行同0为0,但是如果第一个是非0,那么第二个就不会去执行
notx not y布尔"非",取反true取反为false,false取反为true0取反为true,非0取反为false
i=2
print(0 and i+1)#因为短路性质,i+1不会执行
print(i)#i还是2

5、运算符的优先级

运算符描述
**指数
* / % //乘除取余和取整数(向下)
+ -加法、减法
<= < > >=比较运算符
<> == !=等于(比较)运算符
= %= /= //= -= += *= **=赋值运算符
not and or逻辑运算符

四、常用的函数&内部函数

4.1 输入输出函数

1、input()函数:无论用户输入的是数字还是字符,统一以字符串类型返回结果
语法:<变量>= input(<提示性文字>)
2、eval(s):去掉字符串s最外侧的符号,并按照python语句方式\去掉引号后的字符内容
语法:<变量>=eval(<字符串>)
两者搭配使用:获取用户输入的数字
语法:<变量>=eval(input(<提示性文字>))

3、print()函数:对于字符串,去掉两侧的引号,输出结果是可打印字符。对于其他类型,直接输出表示,作为打印字符。
特点:可以接收多个参数,默认换行
不换行:print(<待输出内容>,end=“<增加至输出结尾>”)

a=eval(input("请输入整数:"))
print("输出的整数是:",a,end="\t")
print("!")

4.2 常用的内部函数

1、数值运算函数
绝对值:abs(x):求x得绝对值
除余:divmod(x,y):计算除//余%,输出为元组类型(x//y,x%y),其中//向下取整
幂运算:pow(x,y):幂运算,等价于x**y
幂运算:pow(x,y,z):幂运算,等价于x ** y%z
四舍五入:round(x)或round(x,d):对x四舍五入,保留d位小数,如果没有d则返回四舍五入得整数值
最大值:max(x,y,…)
最小值:min(x,y,…)
2、字符串处理函数
长度/个数:len(x),也可以返回其他组和类型得元素个数
转为字符串型:str(x),x可以是任意类型,相当于数据类型转换
ASCII码与字符:chr(x)、ord(x)。如chr(65)表示’A’,ord(‘a’)表示97
十六进制的小写字符串形式:hex(x)。比如hex(45)表示0x2d
八进制的小写字符串形式:oct(x)。比如oct(45)表示0x55
3、类型判断和类型间转换函数
查看类型:type(x)
int()、float()、str()、list()、dict()、tuple()
eval()是针对去除外面两侧的引号的。

int(-1.2)#向0取整
print(-3/2)#结果为-1,向0取整
print(-3//2)结果为-2,向下取整
int('1.2')#1.2
int('-1.2')#报错
int('-2')#-2
float('-1.2')#1.2

4.3 自定义函数&调用

1、定义函数规则:

  • def 函数名()
  • 传入的参数/自变量必须在()中,即形参
  • 函数第一行,可以选择性的使用文档字符串——用于存放函数说明
  • 缩进和 : 配合是方法体
  • return [表达式]结束函数,选择性地返回一个值给调用方,省略return,相当于返回None
def functionName(parameters):
	"函数_文档字符串"
	方法体
	return [repression]#return可以省略,就是返回None
	

2、调用函数
函数名(参数),即可调用

#定义函数
#!/usr/bin/python3
def max(a,b):ifa>b:
	return a
else:
	return b

8=4
b-5
#调用函数
print(max(a,b))

五、选择与循环结构

Python中没有switch…case语句

5.1 条件语句

if…else条件语句

if(表达式):
	语句1
else:
	语句2

if…elif条件语句

if (表达式1):
	语句组1
elif(表达式2):
	语句组2
......
elif(表达式n):
	语句组n
else:
	语句组m

5.2 循环语句

结束循环方式:break、满足条件,continue表示结束本次循环。

while循环
一般初始值在while前面的语句中赋值

while(表达式):
	循环体
#while循环举例
counter=1
while(counter<4):
	#逻辑语句
	counter++
	

for循环语句
起始值、步长可以省略。终止值和逗号不能省【java中是分号不能省】
变量范围[起始值,终止值),终止值取不到,VB中是可以的,这是由循环顺序决定的

for 循环变量 in (<起始值0>,终止值,<步长1>):
	循环体

六、最后总结区别&注意点(Java/Python/C/VB)

1、关于0、1表示正负数,true、false
在计算机存储的二进制中,符号位:0表示正数、1表示负数
布尔类型:0表示False,1表示True,只有VB中的-1表示True

VB语言索引从1开始,其它语言都是从0开始。

2、关于向下、向0(也叫只保留整数)取整:

  • 在位运算符中a右移>>4可以理解为a除以2的4次方,结果是向下取整
  • 在java/c/c++中:
    • int a = -16/3,结果是-5,向0取整。功能和int()强转是一样的功能。
    • float/double b = -16/3,在精度范围内就是小数,超出的小数位四舍五入
  • 在python中,/表示除,int(x)向0取整,//表示向下整除
  • 在VB中,
    • Dim a As Integer; a = -16/3,向下取整;Int(-1.2)向下取整
    • Dim a As Single/Double; a= -16/3,小数位可以四舍五入
    • Dim a As Integer; a = -16\3,表示向0取整,Fix(-1.2),向0取整。

理解:VB对于int()的底层实现与其他语言是不一样的,其他语言相当于强转

3、运算符的一些区别

  • 只有VB是"=“即表示逻辑运算符又表示赋值,其他的都用”=="做一个区分
  • 取余/模:VB中Mod,其他%
  • 字符运算:VB中+、&(+有数值/数值型字符串/字符型表示数值运算,但是如果一边数值一边字符串就会报错,要么就全是字 符串型就表示连接;&不管是什么都表示连接)
  • 逻辑运算符:VB/python中not、and、or;C中&&、||、!,java中&、&&、|、||、!、~(异或)
  • 不等于:VB中<>,C/java中!=,python中两种都行
  • 幂值:VB中Exp(x),表示e的x次方,C中pow(a,b),python中pow(a,b),或者a**b
  • 自然对数值:VB中Log(x)表示lnx,C中log(x)
  • python里面没有++、–运算符、switch…case结构,其他的语言都有

4、关于标识符的命名规则:变量、方法、类等要素命名时使用的字符序列。即凡是自己可以起名字的地方都叫标识符

  • C中:大小写字母、数字、下划线,第一个字符不能是数字,区分大小写
  • Python:大小写字母、数字、下划线、汉字,第一个字符不能是数字,区分大小写
  • Java:大小写字母、数字、下划线、$,第一个字符不能是数字,区分大小写
  • VB:字母、数字、下划线、汉字,第一个字符不能是数字、汉字,必须以字符、下划线开头

总结:除了VB不能是数字、汉字,其他的是不能是数字,python、VB可以包含汉字,其他都没有

5、容易搞错的写法:Java:true、false、String

6、为多个变量同时赋值

  • Java/C/C++中:①int a = 10, b = 10, c = 10;②int a, b, c; a = b = c = 10;
  • Python中:同步赋值语句的特点(作用:同时给多个变量赋值,简化互换变量的值)
    • a,b=1,2
  • VB中:Dim a, b as Long;表示a为变体型,b为Long。

7、Java中print、println()只接受一个参数/0
Python中可以接受多少个

8、关于语句块
python提供 缩进与 : 配合
c/java中提供()与{}配合
VB中提供Then、End配合

9、关于if、else
python中if…elif
c/java中else if,是带空格的
VB中ElseIf() Then

10、switch…case
VB中Select Case 测试表达式
Case 表达式1
语句组1

End Case

C/Java中:
switch(){
case 常量表达式1:
语句组1
default:
语句组n
}
Python中没有

11、循环
python中
for 变量 in 集合(<起始值0>,终止值,<间隔数1>)
C/Java中
for(;😉{
}

12、几种语言的运算符汇总
VB
C语言

Python
Java

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1615026.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

HarmonyOS ArkUI实战开发-NAPI数据类型

在前两篇文章里笔者简单介绍了 NAPI 工程结构以及生成的 cpp 源码部分&#xff0c;其中 JS 应用层传递过来的数据被封装在了 napi_value 中&#xff0c;使用前先要转换成对应的 C/C 数据类型&#xff0c;C/C 端的数据也要转换成 napi_value 数据类型传递给 JS 应用层&#xff0…

哈希表实现[很详细!]

目录 哈希表 定义节点类 根据hash码获取value 向hash表存入新key value,如果key重复,则更新value 根据hash码删除,返回删除的value 关于resize()一些问题的解答 冲突测试 MurmurHash 设计思考 练习 Leetcode01 Leetcode03 Leetcode49 Leetcode217 Leetcode136 L…

网络编程——TCP的特性之自动重传/流量控制/拥塞控制,一篇说清楚

文章目录 1. ARQ自动重传协议1.1 停止等待ARQ1.2 连续ARQ1.3 总结 2. TCP的流量控制3. TCP的拥塞控制3.1 慢开始算法3.2 拥塞避免算法3.3 快重传算法3.4 快恢复算法 1. ARQ自动重传协议 自动重传请求&#xff08;Automatic Repeat-reQuest&#xff09;&#xff0c;通过使用确认…

如何在Flask应用程序中使用JSON Web Tokens进行安全认证

密码、信用卡信息、个人识别号码&#xff08;PIN&#xff09;——这些都是用于授权和认证的关键资产。这意味着它们需要受到未经授权的用户的保护。 作为开发者&#xff0c;我们的任务是保护这些敏感信息&#xff0c;并且在我们的应用程序中实施强大的安全措施非常重要。 现在…

书生·浦语大模型实战营之 XTuner 微调 Llama 3 个人小助手认知

书生浦语大模型实战营之 XTuner 微调 Llama 3 个人小助手认知 Llama 3 近期重磅发布,发布了 8B 和 70B 参数量的模型,XTuner 团队对 Llama 3 微调进行了光速支持!!!开源同时社区中涌现了 Llama3-XTuner-CN 手把手教大家使用 XTuner 微调 Llama 3 模型。 XTuner:http://…

Pytorch 的数据处理 学习笔记

一. 数据集Dataset Dataset是一个抽象类&#xff0c;用于表示数据集。可以创建自定义的Dataset类来加载和准备好的数据&#xff0c;无论数据是存储在何处&#xff08;例如磁盘、内存或其他位置&#xff09;。PyTorch提供了一些内置的Dataset类&#xff0c;例如TensorDataset、…

【机器学习】特征筛选实例与代码详解

机器学习中的特征筛选 一、特征筛选的重要性与基本概念二、特征筛选的方法与实践1. 基于统计的特征筛选2. 基于模型的特征筛选3. 嵌入式特征筛选 三、总结与展望 在机器学习领域&#xff0c;特征筛选作为预处理步骤&#xff0c;对于提高模型性能、简化模型结构以及增强模型解释…

图像哈希:GLCM+DCT

文章信息 作者&#xff1a;Ziqing Huang期刊&#xff1a;IEEE&#xff08;一区&#xff09;题目&#xff1a;Perceptual Image Hashing with Texture and Invariant Vector Distance for Copy Detection 目的、实验步骤及结论 目的&#xff1a;使用GLCM进行全局特征的提取&am…

C# 开源SDK 工业相机库 调用海康相机 大恒相机

C# MG.CamCtrl 工业相机库 介绍一、使用案例二、使用介绍1、工厂模式创建实例2、枚举设备&#xff0c;初始化3、启动相机4、取图5、注销相机 三、接口1、相机操作2、启动方式3、取图4、设置/获取参数 介绍 c# 相机库&#xff0c;含海康、大恒品牌2D相机的常用功能。 底层采用回…

【Linux】在ubuntu快速搭建部署K8S(1.27)集群

ubuntu快速安装K8s1.27 &#xff08;一&#xff09;环境说明1.硬件环境2.Ubuntu环境设置 &#xff08;二&#xff09;安装配置containerd1.安装2.配置3.启动 &#xff08;三&#xff09;所有节点操作1.安装runc和cni2.节点系统设置、关闭临时分区3.修改内核参数4.安装 kubeadm、…

什么是 PCIe 及其工作原理?

什么是外围组件互连 Express (PCIe)&#xff1f; 外围组件互连 Express (PCIe) 是一种高速串行计算机扩展总线标准&#xff0c;可将设备连接到主板。 它于 2004 年首次推出&#xff0c;作为以前 PCI 和 AGP 方式的替代。 PCIe 允许处理器和各种扩展卡&#xff08;例如显卡、声…

PS入门|蒙版到底是个什么样的功能?看完就明白了

前言 前段时间一直说蒙版蒙版什么的&#xff0c;很多小伙伴估计都听得一头雾水。 抠个图要加蒙版&#xff0c;调个色要加蒙版。 小白感觉这个蒙版就像调味剂一样&#xff0c;啥都需要加一个蒙版。 动不动就加个蒙版&#xff0c;究竟是干啥用的&#xff1f; 今天咱们就深入来…

自动驾驶光学校准反射板

光学校准反射板是一种用于光学系统校准的重要工具。它以其高反射率和精确的几何特性&#xff0c;为光学仪器、光学系统和光学元件的校准提供了可靠的参考。在现代光学领域&#xff0c;光学校准反射板的应用已经深入到各个领域&#xff0c;从科学研究到工业生产&#xff0c;都离…

leetcode最大间距(桶排序+Python)

虽然直接排完序&#xff0c;再求最大差值更快&#xff0c;这里我们还是学一下桶排序。 桶排序主要维护一个bucket&#xff0c;初始bucket【i】 0&#xff0c;遍历nums&#xff0c;当i存在时&#xff0c;令bucket【i】 1&#xff0c;表示存在。遍历完nums&#xff0c;bucket中有…

海外平台运营为什么需要静态住宅IP?

在世界经济高度全球化的今天&#xff0c;许多企业家和电子商务卖家纷纷转向海外平台进行业务扩展。像亚马逊、eBay这样的跨国电商平台为卖家提供了巨大的机会&#xff0c;来接触到世界各地的顾客。然而&#xff0c;在这些平台上成功运营&#xff0c;尤其是维持账号的健康和安全…

代码随想录算法训练营第三十六天|435. 无重叠区间,763.划分字母区间,56. 合并区间

题目&#xff1a;435. 无重叠区间 给定一个区间的集合 intervals &#xff0c;其中 intervals[i] [starti, endi]。返回需要移除区间的最小数量&#xff0c;使剩余区间互不重叠。 题目链接/讲解链接&#xff1a; https://programmercarl.com/0435.%E6%97%A0%E9%87%8D%E5%8F%A0…

C语言项目实践——贪吃蛇

引言&#xff1a;本篇博客中&#xff0c;我将会使用结构体&#xff0c;链表&#xff0c;WIN32 API等一系列知识完成C语言项目——贪吃蛇的实现。在观看此篇博客之前&#xff0c;请将这些知识所熟悉&#xff0c;不然可能会造成理解困难。 更多有关C语言的知识详解可前往个人主页…

AI预测福彩3D第9套算法实战化测试第1弹2024年4月22日第1次测试

经过前面多套算法的测试&#xff0c;总结了一些规律&#xff0c;对模型优化了一些参数&#xff0c;比如第8套算法的测试&#xff0c;7码的命中率由最开始的20%提高到了50%。虽然命中率有了很大的提高&#xff0c;但是由于咱们之前的算法只是为了测试和记录&#xff0c;提供的方…

C++学习进阶版(二):与文件相关的函数用法

目录 1、读取文件的指定行 &#xff08;1&#xff09;main函数中直接读 &#xff08;2&#xff09;封装成函数 ① 无返回值类型 ② 直接返回读取的内容 2、求文件的行数 3、文件内容读取成一个字符串 1、读取文件的指定行 &#xff08;1&#xff09;main函数中直接读 …

关于 Windows10 计算机丢失 MSVCP120.dll 的解决方法

今天学长跟平时一样打开电脑开始发布文章需要用到Adobe Photoshop CC 2018的时候居然给我来个Photoshop.exe-系统错误、无法启动此程序&#xff0c;因为计算机中丢失MSVCP120.dll 尝试重新安装该程序以解决此问题&#xff0c;安装上面的说明重新安装了我的Photoshop CC 打开还是…