Python 简介与入门

news2025/4/23 9:59:00

目录

一、Python 初识

1、Python 的优势

2、Python 的特性

3、Python 的应用领域

二、Linux 环境中安装 Python

1、下载 Python3.11.6

2、安装依赖包

3、解压 Python 压缩包

4、安装 Python

5、编译及安装

6、建立软链接

7、测试 Python3 运行

8、设置国内 pip 更新源

9、更新 pip 版本(必须更新)

三、Windows 系统中安装 Python

1、安装 Python 程序

(1)双击python 安装包 python-3.11.6-amd64

(2)安装完成的界面

2、安装 vscode 编译器

(1)双击安装包VSCodeUserSetup-x64-1.85.0,进入安装界面

(2)设置安装路径

(3)选择开始菜单文件夹

(4)选择附加任务

(5)开始安装

(6)安装完后直接开始运行

3、安装 vscode 插件

(1)简体中文

(2)安装 python 插件

4、设置国内更新源

四、Python 语法基础

1、标识符

2、Python 保留字

3、注释

(1)单行注释

(2)多行注释

4、语句与缩进

(1)语句

(2)代码块

(3)多行语句

5、pass 语句

五、Python 常用的数据类型

1、数字

(1)整型和浮点型

(2)布尔型

(3)Python 运算符

2、字符串

(1)字符串使用

(2)使用字符串注意事项

①单引号、双引号、三引号都是成对出现的

②如果字符串种出现单独出现单引号或双引号,可以使用另一种引号定义。

③当字符串中出现单引号、双引号等特殊字符时,还可以使用转义字符定义

(3)字符串的其他用法

3、列表

(1)列表的定义

(2)列表的取值

①列表中的数据是有序的,按第定义是的顺序拍好,可以单独取出来某一位置元素的数值。

②获取列表指定范围的一组元素

(3)修改列表元素值

(4)添加列表元素

①把一个元素添加到列表的最后

②在列表指定位置前插入新的元素

(5)删除列表元素

(6)查找列表元素

(7)合并列表

(8)重复列表

(9)列表常见问题

①索引越界

②负值索引

③当获取列表指定范围的一组元素时,不存在列表索引越界的问题

④获取列表指定范围时可以同时使用正数和负数索引

⑤列表元素也可以是列表


一、Python 初识

1、Python 的优势

Python 易于使用,是一门完整的编程语言;与 Shell 脚本或批处理文件相比,它为编写大型程序提供了更多的结构和支持。第二,Python 提供了比 C 更多的错误检查,并且作为一门高级语言,它内置支持高级的数据结构类型,例如:灵活的数组和字典。因其更多的通用数据类型,Python比 Awk 甚至 Perl 都适用于更多问题领域,至少大多数事情在 Python 中与其他语言同样简单。

Python 允许将程序分割为不同的模块,以便在其他的 Python 程序中重用。Python 内置提供了大量的标准模块,可以将其用作程序的基础,或者作为学习 Python 编程的示例。这些模块提供了诸如文件 I/0、系统调用、Socket 支持,甚至类似 Tk 的用户图形界面(GUI)工具包接口。

Python 是一门解释型语言,因为无需编译和链接,所以可以在程序开发中节省宝贵的时间。Python 解释器可以交互的使用,这使得试验语言的特性、编写临时程序或在自底向上的程序开发中测试方法非常容易。你甚至还可以把它当做一个桌面计算器。

注:Tkinter(也叫 Tk 接口)是 Tk 图形用户界面工具包标准的 Python 接口。Tk是一个轻量级的跨平台图形用户界面(GUI)开发工具。

2、Python 的特性

Python 让程序编写的紧凑和可读。用 Python 编写的程序通常比同样的 C、C++或 Java 程序更短小,这是因为以下几个原因:

  • 高级数据结构使用户可以在一条语句中表达复杂的操作。
  • 语句组使用缩进代替开始和结束大括号来组织。
  • 变量或参数无需声明。

3、Python 的应用领域

Python 是一种通用编程语言,具有广泛的应用领域。如下领域: 

数据科学和机器学习

Web开发

自动化测试

网络爬虫

游戏开发

数据分析

数据可视化

二、Linux 环境中安装 Python

1、下载 Python3.11.6

以3.11.6版本的python为例,可在Python 的官方网站下载,网址为 http://www.python.org。

2、安装依赖包

[root@localhost ~]# dnf -y install gcc zlib zlib-devel libffi libffi-devel
    #安装源码编译需要的编译环境
[root@localhost ~]# dnf -y inatall readline-devel
    #解决后期出现的方向键、删除键乱码问题、这里提前避免
[root@localhost ~]# dnf -y install openssl-devel

3、解压 Python 压缩包

[root@localhost ~]# tar xvf Python-3.11.6.tar.xz

4、安装 Python

[root@localhost ~]# cd Python-3.11.6
[root@localhost Python-3.11.6]# ./configure --prefix=/usr/local/python3

可选配置项

含义

--enable-optimizations

用 PROFILE_TASK 启用以配置文件主导的优化(PGO)

--with-lto

在编译过程中启用链接时间优化(LTO)

--enable-shared

启用共享Python库libpython 的编译

--with-ssl

编译安装 ssl模块到Python3 中(默认)

5、编译及安装

[root@localhost Python-3.11.6]# make && make install

如果主机上已经安装有其他版本的 python3,注意是3的版本,要使用 altinstall 而不是install 。二者的一个重要区别在于,后者会创建符号链接,将 python3 等命令链接到正在安装的新版本 Python 3上,这可能会破坏系统。如果是 python2的版本,不会有此影响。

6、建立软链接

[root@localhost Python-3.11.6]# ln -s /usr/local/python3/bin/python3 /usr/bin/python3
[root@localhost Python-3.11.6]# ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3

7、测试 Python3 运行

[root@localhost Python-3.11.6]# python3
Python 3.11.6 (main, Dec 18 2024, 22:06:12) [GCC 12.3.1 (openEuler 12.3.1-62.oe2403sp1)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> print('hello world')
hello world
>>> exit()
[root@localhost Python-3.11.6]# 

注:Ctrl+D exit() 退出

8、设置国内 pip 更新源

[root@localhost Python-3.11.6]# cat <<EOF>> /root/.config/pip/pip.conf
> [global]
> index-url = http://mirrors.aliyun.com/pypi/simple/
> 
> [install]
> trusted-host=mirrors.aliyun.com
> EOF

注:使用以下命令也可以

pip3 config set global.index-url http:://mirrors.aliyun.com/pypi/simple
pip3 config set install.trusted-host mirrors.aliyun.com

9、更新 pip 版本(必须更新)

[root@localhost ~]# pip3 install --upgrade pip

注:安装结束后可以做一个快照。

三、Windows 系统中安装 Python

1、安装 Python 程序

(1)双击python 安装包 python-3.11.6-amd64

(2)安装完成的界面

2、安装 vscode 编译器

在 Linux 系统中,可以直接使用 vi 编辑器对 Python 代码进行编写,在 windows 系统中,Python提供了 IDLE 编译器,但是使用起来很不友好,可以安装一个 vscode 编译工具,对 Python 进行编译。

安装过程如下:

(1)双击安装包VSCodeUserSetup-x64-1.85.0,进入安装界面

(2)设置安装路径

(3)选择开始菜单文件夹

(4)选择附加任务

(5)开始安装

(6)安装完后直接开始运行

3、安装 vscode 插件

(1)简体中文

可以先安装一个简体中文的插件

 

(2)安装 python 插件

如图所示点击 Extentions(扩展)按钮,在搜索区域输入“python”,然后选择 Python 插件进行安装,有了这个插件,就可以在 vscode 中编辑 python 代码了。

注:用同样的方法可以安装一个“black format”插件,该插件可以使用“Shift+AIt+F”组合键对 Python 代码进行格式化的处理,自动整理代码的书写规范,让代码看上去更美观。

4、设置国内更新源

pip config set gloobal.index-url http://mirrors.aliyun.com/pypi/simple
pip config set install.trusted-host mirrors.aliyun.com
pip install --upgrade pip

四、Python 语法基础

1、标识符

所谓的标识符就是对变量、常量、函数、类 等对象起的名字。
首先必须说明的是,Python语言在任何场景都严格区分大小写!也就是说A和a代表的意义完全不同,python 对于表示标识符的命名有如下规定:

  • 标识符的长度不受限制,但其中的字符必须是字母、数字、或者下划线(_),而不能使用空格、连字符、标点符号、引号或其他字符。
  • 标识符的第一个字符不能是数字,而必须是字母或下划线。
  • Python 区分大小写。
  • 不能将 Python 关键字用作标识符。

例如:a, abc ,_id,等都是可以的。但是例如: $a(以$开头的是 PHP 的变量语法),~abc,123a 都是不可以的。这一点一定要注意。

可能有人会问,中文可以作为标识符吗?答案是可以的。

2、Python 保留字

Python 保留字,也叫关键字,是 Python 语言官方确定的用作语法功能的专用标识符,不能把它们用作任何自定义标识符名称。关键字只包含小写字母。可以通过 python 提供的库输出这些关键字:

Python 的标准库提供了一个 keyword 模块,可以输出当前版本的所有关键字。如下:

>>> import keyword
>>> keyword.kwlist
['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']

3、注释

(1)单行注释

Python 中,以符号“#”为单行注释的开始,从它往后到本行的末尾,都是注释内容。语法如下:

# 单行注释

(2)多行注释

Python 没有真正意义上的多行注释(块注释),语法如下:

# 第一行注释
# 第二行注释
# 第三行注释

4、语句与缩进

(1)语句

在代码中,能够完整表达某个意思、操作或者逻辑的最短代码,被称为语句。这里强调一下,python 的标准语言不需要使用分号。简单的换行就表示语句已经结束。

>>> a=123
>>> b=456
>>> print("hello world")

(2)代码块

为完成某一特定功能而联系在一起的一组语句构成一个代码块。有判断、循环、函数、类等各种代码块。代码块的首行通常以关键字开始,以冒号(:)结束。

比如:

a=10
if a>5:
    print("a大于5")
else:
    print("a小于a")

Python 最具特色的语法就是使用缩进来表示代码块,不需要使用大括号像 PHP 、JAVA 等语言都是使用({})来表示代码块的。python 一般用四个空格来缩进。在pycharm或vscode 中tab 自动回转成 4个空格。在 Linux 环境中,如 VIM 编辑器,建议使用空格。

(3)多行语句

前面的例子中都是多条语句在同一行,但如果一条语句实在太长,也是可以占用多行的,可以使用反斜杠(\)来实现多行语句

>>> print("ni hao\
... wo de ming zi \
... jiao zhang san")

执行结果:

ni haowo de ming zi jiao zhang san

5、pass 语句

pass 语句是占位语句,它什么都不做,只是为了保证语法的正确性而写。以下场景中,可以使用 pass语句:

  • 当你不知道后面的代码怎么写的时候
  • 当你不需要写代码细节的时候
  • 当语法必须,又没有实际内容可写的时候
  • 其它的一些你觉得需要的场景
a=10
if a>5:
    print("a大于5")
else:
    pass

五、Python 常用的数据类型

Python 内置的数据类型有数字、字符串、元组、列表和字典

1、数字

数字类型包括整型、浮点型、布尔型等,声明时由 Python 内置的基本数据类型管理变量,在程序的后台实现数值与类型的关联,以及转换等操作。根据变量的值自动判断变量的类型,程序员不需要关心变量空间是什么类型,只需知道创建的变量中存放了一个数,通过编码对这个数值进行操作即可。

(1)整型和浮点型

整数使用整型表示,有小数点使用浮点型表示。

例1:为变量赋予整型和浮点型的数值

>>> x=123
>>> print(x)
123
>>> x=1.98
>>> print(x)
1.98

在以上代码中,首先定义了变量 x=123。此时的 x值是整数,x 即是整型变量。当执行语句x=1.98 时,x又成为了浮点型变量,由此可以看出,变量的类型是能改变的,与 Java、C#语言等是有区别的。这是因为当 Python 给已经存在的变量再次赋值时,实际上是创建了一个新的变量,即使变量名相同,但标识并不相同,变量的标识可以使用 id 函数输出。

(2)布尔型

布尔型是用于逻辑运算,有2 个值 True、False,表示真和假。

例2:为变量赋布尔型数值

>>> f=True    #注意大小写
>>> print(f)
True
>>> if(f):
...     print(1)     #注意...后有个空格
...
1

代码定义了变量 f=True。if 是判断语句,为真则执行 print 语句,最后输出的是 1,说明语句执
行成功。

使用比较运算符返回的结果是布尔值。

例3:获取比较运算符的运算结果

>>> 3>4
False    #假
>>> 4.15>2.1
True    #真

(3)Python 运算符

Python 中使用的算术运算符和数学运算中使用的符号基本相同,由+、-、*、/(加、减、乘、除)和小括号组成,运算顺序也是先乘除后加减、小括号优先。

例 4:四则运算

>>> 3>4
False
>>> 4.15>2.1
True
>>> x,y=10,2
>>> print(x+y,x*y,x/y,x-y)
12 20 5.0 8
>>> print(5+8*3)
29
>>> print((5+8)*3)
39
>>> print(5+8*3/4)
11.0

Python 还有两个算术运算符是%和**,分别是求模运算和求幂运算。

求模运算取余数,求幂运算是计算累乘的结果。

例5:求模和求幂运算

>>> print(x%y)
0
>>> print(x%44)
10
>>> print(x%4)
2
>>> print(x**y)
100
>>> print(y**x)
1024

2、字符串

Python中的字符串类型是一组包含数字、字母和符号的集合,作为一个整体使用。

(1)字符串使用

在Python 中有3种表示字符串的方式,单引号、双引号、三引号。

例6:Python 字符串的 3 种表示方式

>>> name='zhangsan'
>>> address="lisi"
>>> content='''wangwu'''
>>> print(name)
zhangsan
>>> print(address)
lisi
>>> print(content)
wangwu

在上例中,变量 name 使用单引号,变量 address 使用双引号,变量 content 使用三引号,它们都是合法的 Python 字符串类型。需要注意的是,单引号和双引号作用是一样的, 可以根据习惯使用。但定义多行文字时,必须要使用三引号。

(2)使用字符串注意事项

字符串的定义方式单引号、双引号、三引号大部分情况下作用是相同,但在特殊情况中使用也有所区别,下面列出需要注意的地方。

①单引号、双引号、三引号都是成对出现的

如果以单引号开头就要以单引号结尾,不能混合使用表示字符串。

如下代码就会报错:

>>> name="zhangsan'
  File "<python-input-37>", line 1
    name="zhangsan'
         ^
SyntaxError: unterminated string literal (detected at line 1)
>>> name="zhangsan'''
  File "<python-input-38>", line 1
    name="zhangsan'''
         ^
SyntaxError: unterminated string literal (detected at line 1)
②如果字符串种出现单独出现单引号或双引号,可以使用另一种引号定义。

例7:使用引号定义字符串的值

>>> title1="let'go!"    #双引号定义
>>> print(title1)
let'go!
>>>
>>> title2='let"go!'    #单引号定义
>>> print(title2)
let"go!
>>>
>>> title3='''let'go! let"go!'''    #三引号定义
>>> print(title3)
let'go! let"go!

字符串变量 title1 中出现了单引号,需要使用双引号定义,字符串变量 title2 中出现了双引号,需要使用单引号定义。当字符串中同时出现单引号和双引号,就需要使用三引号进行定义。

③当字符串中出现单引号、双引号等特殊字符时,还可以使用转义字符定义

Python中的转义字符是”\“,只要在特殊字符前面加上”\“,就可以输出原字符,而不需要关注定义字符串使用的是单引号还是双引号。

例8:使用转义字符为字符串赋值

>>> title='let\'go!'    #转义字符单引号
>>> print(title)
let'go!
>>>
>>> title="let\"go!"    #转义字符双引号
>>> print(title)
let"go!

注:Python 的常用转义字符

转义字符

作用

\(在行尾时)

续行符

\\

反斜杆符号

\`

单引号

\"

双引号

\n

换行

\v

纵向制表符

\t

横向制表符

\r

回车

(3)字符串的其他用法

Python 的字符串可以进行乘法(*)的操作,使用一个整型数字和字符串相乘。

例如用数字 3 乘字符串“a”,结果是字符串”aaa”,等同于将字符串“a”连接了 3 遍,代码和运行结果如下:

>>> print(3*'a')
aaa

3、列表

列表(list)是 Python 中非常重要的数据类型,通常作为函数的返回类型

由一组元素组成,列表可以实现添加、删除和查找操作,元素值可以被修改。

(1)列表的定义

列表是Python 内置的一种数据结构,由中括号”[]“定义,,元素以逗号分开,语法如下:

列表名=[元素1,元素2,...]

(2)列表的取值

①列表中的数据是有序的,按第定义是的顺序拍好,可以单独取出来某一位置元素的数值。

语法:

列表名[索引位置]

例9:使用列表保存元素的数值,并输出

>>> num=[1,2,3]
>>> num=[1,2,3,4,5]
>>> print(num)
[1, 2, 3, 4, 5]
>>> print(num[0])
1
>>> print(num[1])
2
>>> print(num[2])
3
>>> print(num[3])
4
>>> print(num[4])
5

在上述代码定义的列表 num 中,存储有五个字符串,其顺序是1、2、3、4、5,取值时用列表名 num 加上中括号,数字表示索引位置。

注:列表中元素的是由 0 开始,以 1 为单位依次递增。

②获取列表指定范围的一组元素

语法:

列表名 [起始位置:终止位置]

可以输出起始位置到终止位置前的元素,不包括终止位置。

例10:输出列表中指定位置的元素

>>> num=[1,2,3,4,5]
>>> print(num[0:1])
[1]
>>> print(num[0:2])
[1, 2]
>>> print(num[0:3])
[1, 2, 3]
>>> print(num[1:2])
[2]
>>> print(num[1:3])
[2, 3]
>>> print(num[2:5])
[3, 4, 5]

在上例中,num 列表后的[0:1]表示获取由索引 0 开始至索引位置 1 之前的元素,所以只能取到第 1 个元素;而[0:2]则可以取到索引 2 之前的元素,其它的与此相同。

(3)修改列表元素值

语法:

列表名[索引位置]=值

例11:修改列表中指定位置的元素值

>>> num=[1,2,3,4,5]
>>> num[0]=111
>>> print(num)
[111, 2, 3, 4, 5]

定义列表 num 时,索引位置 0 的元素是“1”,修改它的值为“111”后,索引位置 0 元素的值变为“111”。

(4)添加列表元素

①把一个元素添加到列表的最后

语法:

列表名.append(元素值)

例12:将元素添加到列表的最后位置

>>> num=[1,2,3,4,5]
>>> print(num)
[1, 2, 3, 4, 5]
>>> num.append(666)    #末尾添加新元素
>>> print(num)
[1, 2, 3, 4, 5, 666]

 上例的代码执行语句 num.append(666)之后,字符串“666”被添加到列表的末尾。

②在列表指定位置前插入新的元素

语法:

列表名.inser(索引位置,元素值)

例13:将元素添加到列表中指定的位置

>>> num=[1,2,3,4,5]
>>> num.insert(1,444)
>>> print(num)
[1, 444, 2, 3, 4, 5]
>>> num.insert(4,777)
>>> print(num)
[1, 444, 2, 3, 777, 4, 5]

在上例中,语句 num.insert(1,444)的作用是在列表 num 的索引位置 1之前插入字符串'004’。初始时,num 有 5个元素,索引位置 1的当前元素是’2',执行以上代码后,字符串 '444’插入到“2”的前面。

(5)删除列表元素

删除列表指定索引位置的元素,语法如下:

del 列表名[索引位置]

例14:删除列表中第2 个元素

>>> num=[1,2,3,4,5]
>>> del num[1]
>>> print(num)
[1, 3, 4, 5]>>> num=[1,2,3,4,5]
>>> del num[1]
>>> print(num)
[1, 3, 4, 5]

上例中,执行语句 del num[1],使用 del 删除索引为 1 的元素’2’。然后输出列表 num 中所有元素时,列表中已经不存在’2’元素。

(6)查找列表元素

使用 in 关键字可以查找列表中是否存在指定的数值,语法如下:

元素值 in 列表名

返回布尔类型 True 或 False。如果査找到,返回 True;否则,返回 False。

例15:使用关键字in查找列表中是否存在指定的数值

>>> num=[1,2,3,4,5]
>>> 1 in num
True
>>> 666 in num
False

在上例的代码中,因为字符串'1’在列表中存在,返回 True。而由于字符串'666‘在列表中不存在,则返回 False。

(7)合并列表

多个列表可以使用加号(+)进行合并,加号后面的列表元素会追加到前面列表的后面。

例16:使用+合并两个列表

>>> num1=[1,2,3,4,5]
>>> num2=[6,7,8,9,10]
>>> num3=num1+num2
>>> print(num3)
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> num3=num2+num1
>>> print(num3)
[6, 7, 8, 9, 10, 1, 2, 3, 4, 5]

在上例中,定义了两个列表 num1和 num2。使用加号进行合并操作时,加号后面的列表元素会追加到前面列表的后面。

(8)重复列表

使用星号(*)可以对列表进行重复操作,与单独字符串乘法操作相似。

例17:使用*重复输出列表的元素值

>>> num1=[111,222]
>>> num=num1*5
>>> print(num)
[111, 222, 111, 222, 111, 222, 111, 222, 111, 222]

(9)列表常见问题

Python 中,使用列表实现各种操作时,可能会得到意外的结果。其中最常见的问题是索引越界索引越界是使用列表时经常犯的一个错误。如列表中有3个元素,因为索引位置是从 0开始计算,所以最大的索引值是 2。如果索引值大于2,表示索引是越界的,程序无法执行。

例17:索引越界

①索引越界
>>> num1=[1,2,3]
>>> print(num1[5])
Traceback (most recent call last):
  File "<python-input-104>", line 1, in <module>
    print(num1[5])
          ~~~~^^^
IndexError: list index out of range
②负值索引

索引值为 5 时,大于最大的索引值 2,程序报索引越界错误。那么,当使用小于 8 的负数索引时会不会出错呢?答案是不会,因为Pvthon 列表的负数索引表示的是由列表的末尾进行反向的取值,也就是最后一个元素的位置也可以使用索引 -1 取值,倒数第二个索引是 -2,向前依次递减。

示例代码如下:

>>> num1=[1,2,3,4,5]
>>>
>>> print(num1[-1])
5
>>> print(num1[-2])
4
>>> print(num1[-3])
3
③当获取列表指定范围的一组元素时,不存在列表索引越界的问题
>>> num=[1,2,3]
>>> num1=num[1:5]
>>> print(num1)
[2, 3]

列表 num 中有3个元素,获取列表范围时指定了最大位置是5,超出了最大索引值,程序可以正常执行,并没有报错。

④获取列表指定范围时可以同时使用正数和负数索引
>>> num=[1,2,3]
>>> print(num[0:-1])
[1, 2]

表示获取由索引位置0元素开始,到-1元素之前的所有元素

⑤列表元素也可以是列表
>>> num=[[1,2,3],[11,22,33],[111,222,333]]
>>>
>>> print(num[0])
[1, 2, 3]
>>> print(num[0][0])
1
>>> print(num[1][2])
33
>>> print(num[2][1])
222

上例定义了列表 num,它里面的每一个元素也是一个列表,使用 num[0]表示取到的是第一个元素值,对应的是一个列表。使用 num[0][0]表示取到第一个元素列表的第一个值,使用 print num[2][1]表示取到第三个列表的第二个元素值。

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

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

相关文章

理解RAG第六部分:有效的检索优化

在RAG系统中&#xff0c;识别相关上下文的检索器组件的性能与语言模型在生成有效响应方面的性能同样重要&#xff0c;甚至更为重要。因此&#xff0c;一些改进RAG系统的努力将重点放在优化检索过程上。 从检索方面提高RAG系统性能的一些常见方法。通过实施高级检索技术&#x…

实训Day-2 流量分析与安全杂项

目录 实训Day-2-1流量分析实战 实训目的 实训任务1 SYN半链接攻击流量分析 实训任务2 SQL注入攻击流量分析一 实训任务3 SQL注入攻击流量分析二 实训任务4 Web入侵溯源一 实训任务5 Web入侵溯源二 ​编辑 实训Day-2-1安全杂项实战 实训目的 实训任务1 流量分析 FTP…

几种电气绝缘类型

1. 基本绝缘 1.1 绝缘等级 1.2 I类设备 2. 附加绝缘 3. 双重绝缘 4. 加强绝缘 5. 功能性绝缘 1. 基本绝缘 用于防止触及带电部件的初级保护,该防护是由绝缘材料完成的 基本绝缘的目的在于为防电击提供一个基本的保护,以避免触电的危险,不过此类绝缘只能保证正常状态下…

char32_t、char16_t、wchar_t 用于 c++ 语言里存储 unicode 编码的字符,给出它们的具体定义

&#xff08;1&#xff09; #include <iostream> #include <string>int main() { std::u16string s u"C11 引入 char16_t"; // 定义 UTF-16 字符串for (char16_t c : s) // 遍历输出每个 char16_t 的值std::cout << std::hex << (…

Java Set/List 知识点 Java面试 基础面试题

Java Set/List 知识点 Set与List区别 List 有序、值可重复,内部数据结构 Obejct[ ] 数组Set 无序、值不重复,内部数据结构 HashMap keyobject value固定new Object() ArrayList 有序存储元素允许元素重复&#xff0c;允许存储 null 值支持动态扩容非线程安全 HashSet、LinkedHa…

Oracle Database Resident Connection Pooling (DRCP) 白皮书阅读笔记

本文为“Extreme Oracle Database Connection Scalability with Database Resident Connection Pooling (DRCP)”的中文翻译加阅读笔记。觉得是重点的就用粗体表示了。 白皮书版本为March 2025, Version 3.3&#xff0c;副标题为&#xff1a;Optimizing Oracle Database resou…

FastAPI WebSocket 聊天应用详细教程

项目简介 这是一个基于 FastAPI 和 WebSocket 实现的实时聊天应用&#xff0c;支持一对一聊天、离线消息存储等功能。 技术栈 后端&#xff1a;FastAPI (Python)前端&#xff1a;HTML、JavaScript、CSS通信&#xff1a;WebSocket认证&#xff1a;简单的 token 认证 项目结构…

vue3+canvas裁剪框样式【前端】

目录 canvas绘制裁剪框&#xff1a;拖拽改变框的大小&#xff1a;圆圈样式&#xff1a;方块样式&#xff1a; canvas绘制裁剪框&#xff1a; // 绘制裁剪框 const drawCropRect (ctx: CanvasRenderingContext2D): void > {if (cropRect.value.width > 0 && crop…

软件功能测试和非功能测试有什么区别和联系?

软件测试是保障软件质量的核心环节&#xff0c;而软件功能测试和非功能测试作为测试领域的两大重要组成部分&#xff0c;承担着不同但又相互关联的职责。 软件功能测试指的是通过验证软件系统的各项功能是否按照需求规格说明书来正确实现&#xff0c;确保软件的功能和业务流程…

10_C++入门案例习题: 结构体案例

案例描述 学校正在做毕设项目&#xff0c;每名老师带领5个学生&#xff0c;总共有3名老师&#xff0c;需求如下 设计学生和老师的结构体&#xff0c;其中在老师的结构体中&#xff0c;有老师姓名和一个存放5名学生的数组作为成员 学生的成员有姓名、考试分数&#xff0c; 创建…

快速定位达梦缓存的执行计划并清理

开发告诉你一个sql慢&#xff0c;你想看看缓存中执行计划时&#xff0c;怎么精准快速定位&#xff1f; 可能一般人通过文本内容模糊搜索 select cache_item, substr(sqlstr,1,60)stmt from v$cachepln where sqlstr like %YOUR SQL STRING%; 搜出来的内容比较多&#xff0c;研…

若依、vben-admin、三维可视化

对三维可视化&#xff0c;包括cesium、模型加载、GIS有关的项目和技术都可以私信&#xff0c;包括基础数据后台管理系统的搭建和配置

LLMs可在2位精度下保持高准确率

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

爆改 toxml 组件 支持数据双向绑定 解决数据刷新问题

GGGGGGGGGGGGGGGGGithub地址自行研究 sbfkcel/towxml: 微信小程序HTML、Markdown渲染库https://github.com/sbfkcel/towxml原组件是以导入数据渲染信息为目的、本文以AI数据返回小程序为模拟效果演示 默认情况只在ready 环节进行渲染静态资源 1、对传入数据容器的位置做处理 …

Unreal如何使用后处理材质实现一个黑屏渐变效果

文章目录 前言相机后期处理材质创建材质相机设置动态修改FadeAlpha参数使用示例最后前言 UE5 开发VR ,如何通过PostProcess轻松实现黑屏渐变效果 最简单的办法,其实是使用一个半球形模型,遮挡住相机,然后控制这个半球形遮罩的颜色透明度,至少Unity中默认的Tunneling是这么…

DB-GPT支持mcp协议配置说明

简介 在 DB-GPT 中使用 MCP&#xff08;Model Context Protocol&#xff09;协议&#xff0c;主要通过配置 MCP 服务器和智能体协作实现外部工具集成与数据交互。 开启mcp服务&#xff0c;这里以网页抓取为例 npx -y supergateway --stdio "uvx mcp-server-fetch" …

CoT-Drive:利用 LLM 和思维链提示实现自动驾驶的高效运动预测

25年3月来自澳门大学和 MIT 的论文“CoT-Drive: Efficient Motion Forecasting for Autonomous Driving with LLMs and Chain-of-Thought Prompting”。 准确的运动预测对于安全的自动驾驶 (AD) 至关重要。本研究提出 CoT-Drive&#xff0c;这是一种利用大语言模型 (LLM) 和思…

Flowable7.x学习笔记(十)分页查询已部署 BPMN XML 流程

前言 上一篇文章我们已经完成了流程的部署功能&#xff0c;那么下一步就是要激活流程了&#xff0c;但是我们要需要明确的指定具体要激活部署后的哪一条流程&#xff0c;所以我们先把已部署的基础信息以及具体定义信息分页查询出来&#xff0c;本文先把基础代码生成以及完成分页…

Office文档图片批量提取工具

Office.Files.Images 是一款专注于从 Word、Excel、PPT 等 Office 文档中批量提取图片的轻量级工具&#xff0c;支持 .docx、.xlsx、.pptx 格式文件。该软件体积仅 ‌343KB‌&#xff0c;无需安装即可运行&#xff0c;通过拖拽操作实现快速解析与导出&#xff0c;尤其适合需批量…

33-公交车司机管理系统

技术&#xff1a; 基于 B/S 架构 SpringBootMySQLvueelementui 环境&#xff1a; Idea mysql maven jdk1.8 node 用户端功能 1.首页:展示车辆信息及车辆位置和线路信息 2.模块:车辆信息及车辆位置和线路信息 3.公告、论坛 4.在线留言 5.个人中心:修改个人信息 司机端功能…