当前位置: 首页 > news >正文

【笔记ing】python

1 Python基础概念及环境搭建

1.1 python简介及发展史

之父Guido van Rossum。ABC语言的替代品。Python提供了高效的数据结构,还能简单有效地面向对象编程。Python语法和动态类型,以及解释性语言的本质,使之成为多数平台上写脚本和快速开发应用的语言。

Python解释器易于扩展,可以使用C或C++(或者其他可以通过C调用的语言)扩展新的功能和数据类型。Python也可用于可定制化软件中的扩展程序语言。Python丰富的标准库,提供了适用于各个主要系统平台的源码或机器码。

Python2.7停更。Python3系列不兼容Python2.

1.2 Python定义及其理解

标准定义:Python是一门面向对象、解释型的计算机程序设计语言。

面向对象:指Python编程语言采用的思想。

解释型:指Python编程语言采用的程序编译方式。

1.3 Python对比其他同类编程语言的优劣势

优势:1、语法简单,易上手;高度语言话,摒弃传统语言的大部分标识语义,可读性好;2、可扩展性强;面向其他编程语言友好;3、开发效率极高;第三方库、组建丰富;Python生态完整;4、跨平台性好

劣势:1、太“高级”,过于趋近应用层,造成编译与执行效率较低(对比之下,比如对比C或C++);2、大部分面向底层的开发,不太建议使用Python,通常会选择性能更好的编程语言,比如C++;

1.4 Python的其他维度定义

Python是一门胶水语言。Python可以开发一个功能模块的公共接口,将其他编程语言实现的功能进行整合。

Python是数据科学领域首选的编程语言。数据科学注重模型的建立(数学建模)。

1.5 Python基础概念相关名词解释

解释型语言:程序不需要编译,程序在运行时才翻译成机器语言,每执行一次都要翻译一次。因此效率较低。如Python语言,专门有一个解释器能够直接执行Python程序,每个语句都是执行的时候才翻译,。(效率较低,依赖解释器,跨平台性好)。

编译型语言:程序在执行之前需要有一个专门编译过程,把程序编译成为机器语言的文件,运行时不需要重新翻译,直接使用编译的结果就行了。程序执行效率高,依赖编译器,跨平台性差些。如C、C++、Delphi等。

解释器:又译为直译器,是一种电脑程序,能够把高级编程语言一行一行直接转译运行。解释器不会一次把整个程序转义出来,只像一位“中间人”,每次运行程序时都要先转成另一种语言再作运行,因此解释器的程序运行速度比较缓慢。每转译一行程序叙述就立刻运行,然后再转译下一行,再运行,如此不停地进行下去。

解释器工作原理:解释器的工作原理及流程:1、执行xxx.py文件:开始运行一个Python程序;2、此时就会调用提前安装好的Python解释器对代码进行逐行解析;3、解析的过程中,解析一行,运行一行,如果出错,则终止解释运行,并返回错误信息;

1.6 Python环境搭建:解释器环境搭建、开发工具搭建

1.6.1 使用CPython解释器搭建Python环境

gzipped source tarball:用于Linux系统下通过编译源码的方式安装Python环境的Python源码包;

windows install(65-bit):用于Windows通过安装程序直接安装的安装包;

1.61.3 华为云服务器购买及配置选购参考

共建智能世界云底座-华为云

先看近期打折活动。

性能配置:CPU核心数、内存容量、带宽、是否有数据盘、云服务器使用时长。1核2G带宽1MB带一个40GB的系统盘大致可满足学习。

1.6.2 使用Anaconda3安装Python环境

1.6.2.1 Anaconda简介

Anaconda是凯源的python发行版本。包含了conda、python等180多个科学包及其以来项。如果只需要某些包或者节省带宽或存储空间,可使用Miniconda这个较小的发行版(仅包含conda和python)。

conda是一个开源包、环境管理器,可以用于在同一个机器上安装不同版本的软件包及其依赖,并能够在不同的环境之间切换。

Anaconda将程序员日常开发中可能会用到的库、插件、扩展等,全部放在一起打包,然后封装为一个可执行文件用于安装。

Index of /anaconda/archive/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror

1.6.2.3 Linux&mac下安装Anaconda3开发环境

我是macbook m2。

打开终端,输入source ~/.bash_profile。让环境生效

参考:【Mac安装anaconda最新实用教程】_mac安装conda-CSDN博客


Linux测试环境:HUAWEI云耀服务器,操作系统:Centos 8

(学一下命令)

SSH远程连接云服务器,进入后开始安装:

wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-2020.11-Linux-x86_64.sh #版本就选择tsinghua查到的较新的linux-86版本

执行wget后等待下载完毕即可。

下载完毕后,进入Anaconda3文件所在目录,执行bash命令进行安装:

bash Anaconda3-2020.11-Linux-x86_64.sh

安装过程会多次提示相关操作,按照提示进行操作即可,等待安装完毕,Anaconda的安装即完成。

配置Anaconda3的环境变量:

vim /etc/profile

使用vim编辑器打开profile文件,点击键盘"i"进入编辑模式,添加如下内容:

export ANACONDA_HOME_PATH=/root/anaconda3

export PATH=$ANACONDA_HOME_PATH/bin:$PATH

添加完毕后,ESC退出编辑,输入“:wq”退出vim编辑;

最后再source一下生效即可:

source /etc/profile

1.6.3 编程工具IDE介绍:Pycharm的安装、配置及使用详解

Pycharm、Microsoft Visual Studio Code、subline Text3...集成其他的功能配合代码的高效编写与调试。

集成开发环境(IDE,Integrated Development Environment)用于提供程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面等工具。集成了代码编写功能、分析功能、编译功能、调试功能等一体化的开发软件服务等。所有具备这一特性的软件或软件套(组)都可以叫集成开发环境。如微软的Visual Studio系列,Borland的C++ Builder、Delphi系列等。该程序可以独立运行,也可以和其他程序并用。

即:IDE其实就是一个应用程序(软件),这个程序把程序员写代码所需要的一切功能,包括编辑、调试、运行代码等全部集成在这个软件内,让程序员最大限度的,方便的进行成产开发。

1.6.3.1 Pycharm简介

jetbrains系列产品。

Pycharm Community 社区版,免费且开源

Pycharm Professional 专业版,付费且非开源

社区版不支持第三方库和组件

tb教育激活授权

1.6.3.2 Pycharm下载

PyCharm: the Python IDE for data science and web development

1.6.3.3 Pycharm安装
1.6.3.3 Pycharm初次使用及基本配置

设置Location,项目的存储路径

选择依赖的python库,会新建一个venv虚拟环境

也可以关联本地的python解释器

1.6.3.5 Pycharm常见配置1:如何更改界面主题

file->settings->editor->color scheme

1.6.3.6 Pycharm常见配置2:如何打开一个已有的项目或Python文件

file->open

如果项目或Python文件放在桌面,/users/username/Desktop

1.6.3.7 Pycharm常见配置3:如果突然配置好的Python解释器路径失效,重新配置

file-settings->Projects:项目名称->Python Interpreter

1.6.4 Conda虚拟环境

Pychon的环境搭建最简单的方式:直接使用CPython解释器安装环境并在Pycharm中直接配置本地Python环境即可。

并不是每一个项目所采用的Python版本都是一致的。Python多个版本无法高效的在同一台PC的本地环境下管理。

采用虚拟环境进行Python环境搭建,为每一个虚拟环境指定特定的Python版本,通过虚拟环境隔离本机物理环境,进行Python多版本共存管理,提升便捷性。

主流的有virtualenvwrapper虚拟环境和Conda虚拟环境。

virtualenvwrapper面向python开发。

Python的包管理工具pip。

1.6.4.1 pip包管理工具

Python的标准库是官方内置好的。第三方开发者(非官方技术人员)开发所需的额外的技术、工具、插件,封装为模块或包。

先在本机Python环境下安装好第三方库,然后在本机的python环境下使用第三方库。

pip包管理工具,是专门用来安装python的第三方库、包、组建及插件。该工具在安装python解释器的时候,已经自动安装好了,可以直接使用。

1.6.4.2 pip包管理工具基本使用

pip管理工具通过shell命令使用。打开终端。

使用pip安装一个库:

pip install 库名

使用pip卸载一个库:

pip uninstall 库名

查看当前环境下已经安装了哪些库:

pip list

查看当前pip包管理工具版本信息:

pip --version

pip无论是否在本机物理环境下,还是虚拟环境下,都可以使用。但是,对于linux系统,如果是直接在本机物理环境下使用,需要使用pip3命令,如:

pip3 install xxx

pip3 uninstall xxx

pip3 list

如果在虚拟环境下使用,因为创建虚拟环境时已经自动建立好了pip3的软连接,则使用pip或pip3都行。

1.6.4.3 下载第三方库时的国内镜像源

有些第三方库、包、组件及插件,并不是国人开发或没有上传至境内的网站进行托管,而是在国外的网站托管,下载就会很慢或无网络连接无法下载。即出现国内的景象地址,可以更快的下载到本地。国内镜像源地址:

清华大学开源软件镜像站:https://mirrors.tuna.tsinghua.edu.cn/

腾讯源:https://mirrors.cloud.tencent.com/

阿里源:https://developer.aliyun.com/special/mirrors/notice

华为源:https://mirrors.huaweicloud.com/

中科大源:http://mirrors.ustc.edu.cn/

北京外国语大学源:https://mirrors.bfsu.edu.cn/

网易源:http://mirrors.163.com/

豆瓣Python PYPI镜像:http://pypi.doubanio.com/simple/

python主要使用的是:清华大学开源软件镜像站、中科大源、豆瓣Python PYP镜像。

在使用pip安装第三方库时,pip install xxx(需要安装的库名)。发现该库下载很慢时,可以选择添加某一个国内镜像源。一般情况下,使用pip进行第三方库安装时,一般选择豆瓣的镜像源下载,会很快。

pip install xxx(需要安装的库名) -i https://pypi.douban.com/simple

1.6.4.4 Conda虚拟环境的使用

在成功安装Anaconda3后且已经完成环境变量配置时,Conda虚拟环境就已经安装完毕了。验证如下,以下三个命令任意一个都可验证:

anaconda -V

conda -V

conda --version

只要能够顺利看到conda对应的版本号,说明conda已经配置生效了。

conda虚拟环境的几个常用命令:

查看conda版本号:

conda --version

conda -V

查看当前已有的conda虚拟环境:

conda env list

创建一个conda虚拟环境:

conda create -n [envs_name] python=版本号

# e.g.

conda create -n myFirstCondaEnvs python=3.6.5

激活(进入)一个conda虚拟环境:

# linux

source activate envs_name

# e.g.

source activate myFirestCondaEnvs

退出一个conda虚拟环境

# linux

source deactivate

conda虚拟环境下安装第三方依赖:

先添加Anaconda的TUNA镜像:

conda config --add channels https://mirrors.tuna.tsinghua.cn/ananoda/pkgs/free/

设置搜索时显示通道地址:

conda config --set show_channel_urls yes

安装某依赖包:

conda install [包名]

conda虚拟环境下也是可以通过pip进行第三方依赖安装的。

查看当前虚拟环境下已安装的依赖:

conda list

conda其他常用命令

删除一个已有的conda虚拟环境:

conda remove --name envs_name --all

删除环境中的指定包:

conda remove --name envs_name [包名]

克隆环境:

conda create --name envs_name --clone another_envs_name

查找软件包:

conda search [包名]

1.6.4.5 Conda虚拟环境在Pycharm中的配置

第一步:点击Pycharm主界面右下角

第二步:点击Interpreter Settings

第三步:弹出中点击Add

第四步:interpreter找到python.exe

第五步:勾选make available to all projects,点击ok。配置完成。

1.7 第一个Python程序:Hello Nudt!

1.7.1 交互式编码

交互式编码是指在操作系统的命令行中运行代码。

1.7.2 Pycharm主界面主要功能介绍

1、Pycharm的标题栏/工具栏:常用的功能、配置等。

file:文件相关操作及系统配置等操作

view:主界面的相关配置

run:运行/debugger一个程序的相关配置

2、Pycharm的项目目录结构。点击后即显示目录结构。该功能方便实时查看项目结构,点击可选择展开或关闭。

3、代码编辑区域

4、程序运行/debugger界面区域选项

termical:Pycharm集成好的终端shell,可在此像系统的终端一样通过shell运行一个程序。

5、当前项目配置好的Python解释器在右下角显示。如果Pycharm配置了多个解释器,点击可以随意切换。

1.7.3 Pycharm中新建一个Python文件

在左侧项目结构区域,选择一个Python文件创建目录

选择Python file后会提示给文件命名。命名时不用携带.py后缀名,只需要输入文件名称,回车后自动补齐后缀。

1.7.4 文件式编码:编写第一个程序Hello Nudt!

在新建的Python文件中输入代码:

print('Hello Nudt')

文件空白区域任意处右键单击,选择run

程序于控制台运行后返回结果。第一个Python程序完成。

1.7.5 Jupyter Notebook

Jupyter Notebook是基于网页的用于交互计算的应用程序。可被应用于全过程计算:开发、文档编写、运行代码和展示结果。

Jupyter Notebook是以网页的形式打开,可以在网页页面中直接编写代码和代码,代码的运行结果也会直接在代码块下显示。Jupyter Notebook是一种“在线形式”的交互式编程环境。

在Python编程应用场景中,Jupyter Notebook是需要单独安装的:

pip install jupyter

之前已经安装好了Anaconda3,此时Jupyter Notebook已经安装好了,可以直接使用了。

1.7.5.1 Windows下本地开放Jupyter Notebook服务

终端输入命令:

jupyter notebook

等服务开启即可,且会自动打开浏览器进入到notebook界面

1.7.5.2 CentOS云服务器下远程开放Jupyter Notebook服务

第一步:云服务器开放8888(或任意其他数字)端口:

进入云服务器控制台,点击对应的名称/ID,点击安全组,点击“更改安全规则”,选择“如方向规则”后,点击添加规则,优先级(1)、策略(允许)、协议端口(TCP、端口号自定义,jupyter默认8888自定义端口号不要与其他端口号冲突)、源地址、描述、确定。

第二步:创建jupyter notebook配置文件:

jupyter notebook --generate-config

# 注意:终端中会显示文件所在路径: /root/.jupyter/jupyter_notebook_config.py

第三步:输入ipython,并在ipython中输入如下代码,完成密码设置:

# 注意:会生成一个密钥,从终端中将该密钥拷贝出来以备后续使用。

第四步:打开配置文件,输入如下配置信息后保存退出:

vim /root/.jupyter/jupyter_notebook_config.py

# 注意不要配置为localhost,‘*’代表任何ip均可访问

c.NotebookApp.password='*'

=u 'xxxx'

# 服务器本地不打开浏览器

c.NotebookApp.open_broswer=False

# 端口号默认为8888.想用其他端口号可在这里修改

c.NotebookApp.port=8888

# 指定Jupyter Notebook文件路径,也可以不设置

c.NotebookApp.notebook_dir='/root/DataMining_codes'

# 是否允许root用户登录

在云服务器下开启Jupyter notebook:

jupyter notebook --allow-root

打开浏览器,地址栏输入:

http://[云服务器主机ip]:[端口号]

即可进入jupyter notebook

1.7.5.3 Jupyter Notebook插件安装

Jupyter Notebook关联Conda环境:

conda install nb_conda

在实际使用时,为确保在Jupyter中能够关联(即使用)指定的Conda虚拟环境,一般的,最简单的方式是:

先终端下进入指定Conda虚拟环境:

conda activate xxx

再开启远程Jupyter服务:

jupyter notebook --allow-root

此时Jupyter中默认即使用该虚拟环境了;直接进入,在jupyter中再切换虚拟环境也是可以的。

Jupyter Notebook安装代码补全插件:在终端中依次执行命令:

pip install jupyter_contrib_nbextensions -i https://pypj.douban.com/simple

jupyter contrib nbextension install --user

pip install jupyter_nbextenssions_configurator -i https://pypi.douban.com/simple

jupyter nbextenssions_configurator enable --user

1.7.5.4 Jupyter Notebook插件安装

新建一个目录

目录重命名:先勾选目录,点击remove即可

新建一个Python文件

新文件的重命名

程序编写:在页面中每一个in之后编写代码

程序运行:每写一部分程序后可直接点击运行

虚拟环境切换:点击Kernel --Change Kernel,选择所需的虚拟环境即可

将代码保存至本地

1.7.6 补充知识:Pycharm建立SFTP协议共享Linux主机文件&实现SSH远程连接服务器Python环境

该需求主要面向生产环境下,该功能可实现:1、在Windows下远程连接Linux云主机共享文件,实现在Windows下Pycharm对Linux主机内文件进行编码;2、可实现Windows下对Linux主机文件编码后远程通过SSH连接服务器Python环境并执行Linux主机下脚本。基于此,Pycharm已提供相应的文件共享协议SFTP以及SSH远程登录功能。

Tools->Deployment->Configuration,+号,选择SFTP,新服务命名,...新增SSH远程连接配置,完成相关配置Host\User name\Password Test Connection.选择刚添加的ssh配置,点击mapping,Local path\Deployment path(选择本地路径) Web path(在linux里指定一个同步的路径)。全部操作完毕点击ok,SFTP文件共享服务配置完成。

Tools->Deployment->Broswe Remote Host.开启右侧服务器文件路径结构,方便直接查看,双击编辑。

Tools-Deployment->Upload here(手动)/Automatic Uploar(Always)(自动)

设置Windows下Pycharm可通过SSH远程连接云主机下的Pyhton环境并使用该环境运行Linux下python程序:

点击解释器配置,Settings->Project ..python Interpreter->add选择添加->SSH Interpreter-> Host\Username->Password->Interpreter选择路径->finish.配置完成。

2 变量及数据类型

2.1 计算机基本组成原理与编程基础预备知识

编译运行和解释运行。

编译与解释的过程中关注的不是程序如何检错,而是如何“编译(或解释)”

2.1.1 冯·诺依曼体系

1946年ta提出存储程序原理,把程序本身当作数据来对待,程序和该程序处理的数据用同样的方式储存。

冯诺依曼体系结构、冯诺依曼理论的要点是:计算机的数制采用二进制,计算机应该按照程序顺序执行。人们把冯诺依曼这个理论成为冯诺依曼体系结构。冯诺依曼体系主要由5大部分组成:1、输入数据和程序的输入设备 2、记忆程序和数据的存储器 3、完成数据加工处理的运算器 4、控制程序执行的控制器 4、输出处理结果的输出设备。

现代计算机包括几十年前出来的计算机,仍然在沿用这样的体系进行设计。控制器控制执行的程序,就是现代计算机中软件开发所研究的方向。

计算机系统的组成结构

一台计算机首先要有硬件组成部分,在硬件上安装操作系统,在操作系统上安装使用各种应用程序。

操作系统,为用户提供一个可视化的GUI界面,用户可以依赖输入输出设备使用计算机的各种功能,为应用与硬件之间的交互提供了一个媒介。

高级程序语言(人看懂)-》编译器/解释器-〉机器码(01机器认识)-》硬件执行指令。

C++:编译型语言,编译流程:先一次性编译完毕,再直接执行机器码

JavaScript:解释型脚本语言,解释流程:运行时逐行解释为机器码,逐行执行机器码

2.1.2 Python解释器执行流程

1、开始执行xxx.py文件

2、系统调度python解释器

3、python解释器逐行读取xxx.py源文件,将其编辑成PyCodeObject字节码对象,写入同名的.pyc文件,存放于内存中;Python结束器的虚拟机从内存中读取.pyc文件的字节码对象,逐行读取、解释为机器码,逐行运行机器码。

4、Python解释器将PyCodeObject字节码对象写回pyc文件中。Python程序需多次运行时,每次运行前,先在存储中检索对应的pyc文件,若有则跳过第一步直接开始逐行解释,若无则重复。

Python先编译成字节码的好处:

跨平台特性。将Python程序先编译成字节码,不同的机器机器指令是不一样的,将代码编译成解释器能识别的机器码,运行时解释器就可以根据不同机器指令执行相应的操作。如此即可实现Python的跨平台特性。

提升运行性能。解释器的效率其实比编译器高很多,因为没有预编译的过程。Python源代码只需执行一次编译为字节码且持久化存储,后期解释器解释为机器码的过程可以反复使用该字节码,无需再预编译成字节码,弥补了Python执行效率低的缺点。

2.1.3 PEP-8编码规范

Python Enhancement Proposal #8(第八号Python增强提案),建成PEP-8,用于规范全球开发者所需遵循的统一Python编码风格。

缩进:代表代码的嵌套,包含与被包含的关系。用4个空格表示一次缩紧,可在settings->Editor->Code Style->Python->Tab size中设置tab键。

所有行限制的最大字数为79;

顶层函数和类的定义,前后用两个换行隔开;

源文件编码统一采用UTE-8;

模块或包导入语句单独一行。。。

2.1.4 注释及其使用

及注解,Python中只有单行注释。

# 我是一条注释

Pycharm中快捷键command+/

2.1.5 Pycharm常用快捷键

将光标移动到本行开头:command+《

将光标移动到本行末尾:command+》

快速注释/快速取消注释:command+/

复制光标所在行:command+d

删除光标所在行:command+Delete

移动光标所在行:shift+command+⬆️或⬇️

选中代码的格式化:command+option+L

2.1.6 基本常用函数

函数即一个具体的功能。

input():用于输出一定的内容,语法:

print(data) # data:要输出的数据

print(data1,date2,...) # 多条内容间使用“,”号隔开

常用参数:end,每条输出内容以何字符结束,语法:

print(data,end='结束符') # 输出一条内容,以xxx内容作为结尾

print默认结束符:

\n # 转义字符,代表以换行结束,即输出一条后换行,后续如果还有输出内容,则自动换到下一行。

# 输出一句Hello NUDT
print('Hello NUDT!')# 输出一句Hello NUDT
# 输出一句2026 NUDT xukeda
print('Hello,NUDT!')
print('2026 NUDT xukeda')# 输出一句“hello,nudt!”,同一行继续输出一句“hello,2026 nudt xcukeda”
print('hello,nudt!','hello 2026 nudt xukeda')# 输出一句hello,nudt
# 输出一句hello,xukeda
# 两行输出一行提示
print('hello,nudt',end=' ')
print('hello,xukeda')

常用参数:sep,将多个同时输出的内容之间添加一个连接(/间隔)符号,语法:

print(data1,data2,...sep="连接/间隔符") # 以连接/间隔符隔开每一条输出内容

# 输出一句“hello,nudt”,同一行间隔一个&符号继续输出一句“hello,xukeda”

print('hello,nudt','hello,xukeda',sep='&')

input(),接收键盘输入的内容,语法:

data=input(输入提示) # 按照input内的提示,一句提示输入所需数据

# 提示:一段文本,提示这里可以输入什么数据

# 输入你的年龄
age = input('输入你的年龄')
# 输入你的性别
sex = input('输入你的性别')
# 输入你的手机号
phone = input('输入你的手机号')
# 输入你的身份证号码
id = input(''输入你的身份证号码)
# 一行输出:你的姓名,性别,手机号,身份证号码
print(age,sex,phone,id)
print(age,sex,phone,id,sep=',')

2.2 变量

2.2.1 定义

变量是一种使用方便的占位符,用于引用计算机内存地址,改地址可以存储数据对象。

2.2.2 变量定义的理解

变量是一个存储空间,为了存储一个具体的对象,这个具体对象所在的空间用一个名字命名,即变量。

2.2.3 变量的声明赋值语句

语法:

变量名 = 数据对象 # 声明单个变量,绑定耽搁对象

变量名1 = 变量名2 = 变量名3 = 。。。 = 变量名n = 数据对象 # 声明多个变量,绑定同一个对象

变量名1,变量名2,变量名3,。。。,变量名n = 数据对象1,数据对象2,数据对象3,。。。,数据对象n # 声明多个变量,绑定多个哦对象

声明一个变量,命名为xx,赋值为xx。

a = 1

b = 2

c = 1.5

d = 'hello nudt'

student = 'xukeda'

创建一个变量的时候,称这个过程为声明一个变量。

=表示为赋值,创建对象与变量之间的引用关系

==表示等于、相等,数学中的=

先声明(创建一个变量,包含该变量的存储地址及命名的名称),后赋值(将该变量与对象之间创建引用关系)。

2.2.4 有关“=”赋值操作的理解

————————————

仅用于本人学习

来源:网络

相关文章:

【笔记ing】python

1 Python基础概念及环境搭建 1.1 python简介及发展史 之父Guido van Rossum。ABC语言的替代品。Python提供了高效的数据结构,还能简单有效地面向对象编程。Python语法和动态类型,以及解释性语言的本质,使之成为多数平台上写脚本和快速开发应…...

DFT之SSN架构

SSN(Streaming Scan Network)架构在DFT(设计可测试性)中的应用是一种先进的设计测试解决方案,旨在应对现代大规模片上系统(SoC)设计中的复杂测试挑战。以下是对SSN架构在DFT中应用的详细分析&am…...

四十二:VSCODE打开新文件覆盖上一个文件窗口问题

VSCODE打开新文件覆盖上一个文件窗口问题_vscode enablepreview-CSDN博客...

JMeter 引入 JAR 包的几种方法

JMeter 支持加载外部 JAR 文件,用于: 扩展 JMeter 功能使用 Java 代码(BeanShell / JSR223)连接数据库 / 解析 Excel / 读取 CSV 📌 1. JMeter 引入 JAR 包的方式 ✅ 方式 1:将 JAR 放入 lib/ 或 lib/ext…...

记一次ScopeSentry搭建

介绍 Scope Sentry是一款具有资产测绘、子域名枚举、信息泄露检测、漏洞扫描、目录扫描、子域名接管、爬虫、页面监控功能的工具,通过构建多个节点,自由选择节点运行扫描任务。当出现新漏洞时可以快速排查关注资产是否存在相关组件。 目前功能 插件系…...

C语言_数据结构总结1:静态分配方式的顺序表

纯C语言代码,不涉及C 1. 初始化 #define MaxSize 50 typedef int ElemType; typedef struct SQList { ElemType data[MaxSize]; //定义一个数组存放顺序表元素 int length; //顺序表当前的长度(元素个数…...

C语言--简单排序算法(冒泡、选择、插入)

实现三种简单的排序算法 文章目录 冒泡排序改进改进2 选择排序插入排序执行结果 冒泡排序 每次外层循环&#xff0c;排出一个最大值 void bubbleSort(int arr[], int len) {for (int i 0; i < len - 1; i) {for (int j 0; j < len - i - 1; j) {if (arr[j] > arr[…...

【文献阅读】The Efficiency Spectrum of Large Language Models: An Algorithmic Survey

这篇文章发表于2024年4月 摘要 大语言模型&#xff08;LLMs&#xff09;的快速发展推动了多个领域的变革&#xff0c;重塑了通用人工智能的格局。然而&#xff0c;这些模型不断增长的计算和内存需求带来了巨大挑战&#xff0c;阻碍了学术研究和实际应用。为解决这些问题&…...

MySQL-高级查询

查询处理 排序&#xff08;默认不是按主键排序的&#xff09; order by 字段1[&#xff0c;字段2] [asc|desc] 默认是升序排序也可以指定 select 列表中列的序号进行排序如果是多个字段&#xff0c;那么在上一个字段排序完的基础上排序下一个 限制数量 limit 行数&#xff0…...

Netty笔记10:LengthFieldBasedFrameDecoder很简单,请看

Netty笔记1:线程模型 Netty笔记2:零拷贝 Netty笔记3:NIO编程 Netty笔记4:Epoll Netty笔记5:Netty开发实例 Netty笔记6:Netty组件 Netty笔记7:ChannelPromise通知处理 Netty笔记8:ByteBuf使用介绍 Netty笔记9:粘包半包 Netty笔记10:LengthFieldBasedFrameDec…...

linux 安装Mysql无法远程访问问题的排查

宝塔面板安装了mysql5.6后 只能本地访问 firewall 在使用宝塔面板&#xff08;BT Panel&#xff09;安装 MySQL 5.6 后&#xff0c;如果你发现 MySQL 只能本地访问&#xff0c;而不能从其他机器或服务访问&#xff0c;这通常是由于防火墙设置或 MySQL 配置的问题。以下是一些步…...

DeepSeek搭配Excel,制作自定义按钮,实现办公自动化!

今天跟大家分享下我们如何将DeepSeek生成的VBA代码&#xff0c;做成按钮&#xff0c;将其永久保存在我们的Excel表格中&#xff0c;下次遇到类似的问题&#xff0c;直接在Excel中点击按钮&#xff0c;就能10秒搞定&#xff0c;操作也非常的简单. 一、代码准备 代码可以直接询问…...

英文生物信息学技术社区Top10推荐:基本情况、评介和网页链接

英文生物信息学技术社区Top10推荐&#xff1a;基本情况、评介和网页链接 李升伟 一、思考与分析 生物信息学涉及生物数据分析和计算工具&#xff0c;所以相关的社区可能包括论坛、问答平台、资源库等等。 首先&#xff0c;我想到Biostars&#xff0c;这是一个比较知名的生物信…...

Lumerical INTERCONNECT 中的自相位调制 (SPM)

一、自相位调制的数学介绍 A.非线性薛定谔方程&#xff08;NLSE&#xff09;&#xff1a; NLSE 是光学中的一个关键方程。它告诉我们光脉冲在具有非线性和色散特性的介质中的行为方式。该方程如下所示&#xff1a; i ∂A/∂z β2/2 ∂A/∂t γ|A|A 0 其中&#xff1a; - …...

每日定投40刀BTC(6)20250227 - 20250302

定投 得而复失 《得而复失》初得明珠喜欲狂&#xff0c;转瞬即逝心彷徨。得失之间悟真谛&#xff0c;淡看浮华守本常。...

leetcode 230. 二叉搜索树中第 K 小的元素

题目如下 数据范围 利用一个全局的计数器每过一个节点就加一&#xff0c;再利用中序遍历的特性&#xff08;即遍历到的节点是从小到大的&#xff09;通过代码 /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeN…...

华为hcia——Datacom实验指南——配置手工模式以太网链路聚合

什么是以太网链路聚合&#xff08;Eth-trunk&#xff09; 是一种将多个物理链路捆绑在一起&#xff0c;让设备以为是一条大链路&#xff0c;能够增加带宽&#xff0c;增加冗余度&#xff0c;提升可靠性&#xff0c;实现负载平衡。 传输方式有两种 基于数据流传输和基于数据包…...

Metal学习笔记十一:贴图和材质

在上一章中&#xff0c;您设置了一个简单的 Phong 光照模型。近年来&#xff0c;研究人员在基于物理的渲染 &#xff08;PBR&#xff09; 方面取得了长足的进步。PBR 尝试准确表示真实世界的着色&#xff0c;真实世界中离开表面的光量小于表面接收的光量。在现实世界中&#xf…...

VirtualBox虚拟机MacOS从Big Sur升级到Sequoia(失败)

VirtualBox虚拟机里安装好Big Sur版本&#xff0c;尝试升级到Sequoia&#xff0c;但是最终失败了。 软件升级 直接在系统偏好-软件更新里可以看到提示&#xff0c;提示可以升级到15版本Sequoia 点击同意&#xff0c;看能不能升级到Sequoia吧。升级前先用时光做了备份。 升级…...

*算法中的数据结构(3)

持续更新 1.单调栈 它依旧是⼀个栈结构&#xff0c;只不过⾥⾯存储的数据是递增或者递减的。 2. 单调栈解决的问题 *寻找当前元素左侧&#xff0c;离它最近&#xff0c;并且⽐它⼤的元素在哪&#xff1b; • 寻找当前元素左侧&#xff0c;离它最近&#xff0c;并且⽐它⼩的元素…...

[特殊字符] 智能合约中的数据是如何在区块链中保持一致的?

&#x1f9e0; 智能合约中的数据是如何在区块链中保持一致的&#xff1f; 为什么所有区块链节点都能得出相同结果&#xff1f;合约调用这么复杂&#xff0c;状态真能保持一致吗&#xff1f;本篇带你从底层视角理解“状态一致性”的真相。 一、智能合约的数据存储在哪里&#xf…...

【快手拥抱开源】通过快手团队开源的 KwaiCoder-AutoThink-preview 解锁大语言模型的潜力

引言&#xff1a; 在人工智能快速发展的浪潮中&#xff0c;快手Kwaipilot团队推出的 KwaiCoder-AutoThink-preview 具有里程碑意义——这是首个公开的AutoThink大语言模型&#xff08;LLM&#xff09;。该模型代表着该领域的重大突破&#xff0c;通过独特方式融合思考与非思考…...

什么是库存周转?如何用进销存系统提高库存周转率?

你可能听说过这样一句话&#xff1a; “利润不是赚出来的&#xff0c;是管出来的。” 尤其是在制造业、批发零售、电商这类“货堆成山”的行业&#xff0c;很多企业看着销售不错&#xff0c;账上却没钱、利润也不见了&#xff0c;一翻库存才发现&#xff1a; 一堆卖不动的旧货…...

代理篇12|深入理解 Vite中的Proxy接口代理配置

在前端开发中,常常会遇到 跨域请求接口 的情况。为了解决这个问题,Vite 和 Webpack 都提供了 proxy 代理功能,用于将本地开发请求转发到后端服务器。 什么是代理(proxy)? 代理是在开发过程中,前端项目通过开发服务器,将指定的请求“转发”到真实的后端服务器,从而绕…...

Neko虚拟浏览器远程协作方案:Docker+内网穿透技术部署实践

前言&#xff1a;本文将向开发者介绍一款创新性协作工具——Neko虚拟浏览器。在数字化协作场景中&#xff0c;跨地域的团队常需面对实时共享屏幕、协同编辑文档等需求。通过本指南&#xff0c;你将掌握在Ubuntu系统中使用容器化技术部署该工具的具体方案&#xff0c;并结合内网…...

从实验室到产业:IndexTTS 在六大核心场景的落地实践

一、内容创作&#xff1a;重构数字内容生产范式 在短视频创作领域&#xff0c;IndexTTS 的语音克隆技术彻底改变了配音流程。B 站 UP 主通过 5 秒参考音频即可克隆出郭老师音色&#xff0c;生成的 “各位吴彦祖们大家好” 语音相似度达 97%&#xff0c;单条视频播放量突破百万…...

【1】跨越技术栈鸿沟:字节跳动开源TRAE AI编程IDE的实战体验

2024年初&#xff0c;人工智能编程工具领域发生了一次静默的变革。当字节跳动宣布退出其TRAE项目&#xff08;一款融合大型语言模型能力的云端AI编程IDE&#xff09;时&#xff0c;技术社区曾短暂叹息。然而这一退场并非终点——通过开源社区的接力&#xff0c;TRAE在WayToAGI等…...

【版本控制】GitHub Desktop 入门教程与开源协作全流程解析

目录 0 引言1 GitHub Desktop 入门教程1.1 安装与基础配置1.2 核心功能使用指南仓库管理日常开发流程分支管理 2 GitHub 开源协作流程详解2.1 Fork & Pull Request 模型2.2 完整协作流程步骤步骤 1: Fork&#xff08;创建个人副本&#xff09;步骤 2: Clone&#xff08;克隆…...

在Spring Boot中集成RabbitMQ的完整指南

前言 在现代微服务架构中&#xff0c;消息队列&#xff08;Message Queue&#xff09;是实现异步通信、解耦系统组件的重要工具。RabbitMQ 是一个流行的消息中间件&#xff0c;支持多种消息协议&#xff0c;具有高可靠性和可扩展性。 本博客将详细介绍如何在 Spring Boot 项目…...

视觉slam--框架

视觉里程计的框架 传感器 VO--front end VO的缺点 后端--back end 后端对什么数据进行优化 利用什么数据进行优化的 后端是怎么进行优化的 回环检测 建图 建图是指构建地图的过程。 构建的地图是点云地图还是什么信息的地图&#xff1f; 建图并没有一个固定的形式和算法…...