Python简介

Python简介

1. Python定义

Python 是一种简单易学并且结合了解释性、编译性、互动性和面向对象的脚本语言。Python提供了高级数据结构,它的语法和动态类型以及解释性使它成为广大开发者的首选编程语言。

  • Python 是解释型语言: 开发过程中没有了编译这个环节。类似于PHP和Perl语言。

  • Python 是交互式语言: 可以在一个 Python 提示符 >>> 后直接执行代码。

  • Python 是面向对象语言: Python支持面向对象的风格或代码封装在对象的编程技术。

2. Python发展史

2.1 Python发展史

  1. 1980年代末

    • Guido van Rossum在荷兰阿姆斯特丹的CWI(Centrum Wiskunde & Informatica)工作,开始设计Python语言,灵感来自于ABC语言和其他语言如C、Unix shell。
  2. 1991年

    • Python第一个版本(0.9.0)发布,包含了很多现代Python的基本特性,如异常处理、函数、模块、以及一些内置数据类型。
  3. 1994年

    • Python 1.0发布,增加了lambda、map、filter、reduce等功能。
  4. 2000年

    • Python 2.0发布,引入了列表解析、垃圾回收机制、以及Unicode支持。
  5. 2008年

    • Python 3.0发布,这是一个不向后兼容的版本,引入了许多改进,如print函数、整数除法、文本和数据的更明确区分等。

2.2 主要版本

  1. Python 1.x 系列

    • Python 1.0(1994年):引入了模块、异常、函数、以及核心数据类型如列表和字典。
    • Python 1.5(1998年):引入了许多新特性,包括嵌套作用域和标准库的扩展。
  2. Python 2.x 系列

    • Python 2.0(2000年):引入了垃圾回收机制、列表解析、Unicode支持等。
    • Python 2.7(2010年):作为2.x系列的最后一个主要版本,增加了一些3.x的特性,如新格式化字符串语法( str.format)和字典理解(dictionary comprehensions)。
  3. Python 3.x 系列

    • Python 3.0(2008年):这是一个不向后兼容的版本,引入了许多改进和新特性,如print函数、整数除法、更明确的文本和数据区分、以及重新设计的标准库。
    • Python 3.6(2016年):引入了格式化字符串字面值(f-strings)、异步生成器和异步推导式。
    • Python 3.7(2018年):引入了数据类(dataclasses)、上下文变量、改进的模块导入机制等。
    • Python 3.8(2019年):引入了赋值表达式(walrus operator :=)、位置仅参数等。
    • Python 3.9(2020年):引入了字典合并运算符( ||=)、类型提示的改进等。
    • Python 3.10(2021年):引入了结构模式匹配(Structural Pattern Matching)、改进的错误消息等。
    • Python 3.11(2022年):引入了新的性能优化、改进的错误处理等。

2.3 Python2.0与Python3.0的区别

类别Python 2.0Python 3.0
输出方面使用print关键字进行输出,例如:print "Hello"使用print()函数,例如:print("Hello")
输入方面使用raw_input()函数,例如:name = raw_input("请输入你的名字:")使用input()函数,例如:name = input("请输入你的名字:")
字符串的编码格式默认采用ASCII编码对输入的字符串进行编码默认采用Unicode编码对字符串进行编码
格式化字符串的方式%占位符进行标准化格式输出字符串,例如:“Hello, %s" % ("World")兼容2.0的语法外,还可以用format()函数,例如:“Hello, {}.format("World")
源文件的编码格式默认采用ASCII,因此使用中文时要在源文件开头加上一行注释:# -- coding: utf-8 --默认采用utf-8
数据类型有整型int、长整型long只有整型int
代码规范源码不规范,重复代码很多源码精简,美观、优雅

3. Python的特点

  • 简单易读易学:Python是非常简单的语言,并且具有清晰的风格和强制缩进,Python具有简单的语法,极其容易入门。
  • 免费其开源:Python是自由/开放源码的软件。可以自行对其源代码进行修改使用。
  • 可移植性:Python可以被移植在许多平台上,常用的平台包括Linux、Windows、VxWorks、PlayStation、Windows CE、PocketPC等。
  • 解释性: Python解释器把源代码转换成字节码,然后再把它翻译成计算机使用的机器语言并运行,即Python代码在运行之前不需要编译。
  • 面向对象:Python支持面向对象的编程。程序通过组合(composition)与继承(inheritance)的方式定义类(class)。
  • 可扩展性:如果需要一段关键代码运行得更快或者希望某些算法不公开,那么可以将部分程序用C或C++进行编写,然后在Python程序中调用。
  • 可嵌入性:可以把Python嵌入C/C++程序,从而向程序用户提供脚本功能。
  • 交互式命令行:python可以单步直译运行,可以在一个 Python 提示符 >>> 后直接执行代码。
  • 丰富的标准库:Python标准库包括字符串处理(字典、数组切片、正则表达式re)、文档生成、多线程、串行化、数据库、HTML/XML解析(BeautifulSoup,Expat)、单元测试(PyUnit)、代码版本控制(PySVN)、WAV文件、网络控制(urllib2)、密码系统、GUI(图形用户界面,PyQt)、图形模块(Tkinter、PyTCL、WxPython)等。除了标准库以外,还有许多其他高质量的库,如wxPython、Twisted和Python图像库等等。
  • 规范性:采用强制缩进的方式使得代码具有较好可读性,减少了视觉上的错乱。
  • 胶水语言:python经常用作将不同语言编写的程序“粘”在一起的胶水语言。Boost.Python使得Python和C++的类库可互相调用(.pyc);Jpython是用Java实现的Python,可以同时使用两者的类库;Ironpython是Python在.NET平台上的版本。

4. Python编译和运行过程

首先将Python源代码编译生成Python字节码,然后再由Python虚拟机来执行Python字节码,最后在终端输出运行结果。

以下是简要说明:

  1. 源代码:编写Python源代码(.py文件)。
  2. 编译:Python解释器将源代码编译成字节码(Python Byte Code,扩展名一般为.pyc文件)。
  3. 解释:Python虚拟机(Python Virtual Machine,简称PVM)读取字节码并逐行解释执行。
  4. 执行:最终运行代码,执行相应的操作,比如终端输出。
alt

注意:

Python是一种解释型语言,指的是解释Python字节码,而不是Python源代码。这种机制的基本思想与Java和.NET是一致的。

4.1 Python解释器

Python解释器(*Interpreter*)是把Python语言翻译成计算机 CPU 能听懂的机器指令。

首先可以在命令提示行输入python --version来查看python的版本:

$ python --version
Python 3.10.8

然后在命令提示符中输入"Python"命令来启动Python解释器:

$ python
Python 3.10.8 (tags/v3.10.8:aaaf517, Oct 11 2022, 16:50:30) [MSC v.1933 64 bit (AMD64)] on win32
Type "help""copyright""credits" or "license" for more information.
>>>

Python解释器由多个组件构成,这些组件共同合作,实现Python代码的解析、编译和执行。以下是Python解释器的主要组件:

  1. 词法分析器(Lexer/Tokenizer)

    • 功能:将源代码转换为标记(token)序列,这些标记是编程语言的基本组成部分,如关键字、变量名、操作符等。
    • 工作原理:扫描源代码的字符流,将其分割成有意义的标记,供语法分析器使用。
  2. 语法分析器(Parser)

    • 功能:将标记序列转换为抽象语法树(AST),表示代码的结构和语法。
    • 工作原理:根据语言的语法规则,解析标记序列,构建出反映代码层次关系的树状结构。
  3. 语义分析器(Semantic Analyzer)

    • 功能:检查AST的语义正确性,确保变量、类型和操作符的使用符合语言规则。
    • 工作原理:执行类型检查、作用域解析等任务,以验证代码的逻辑正确性。
  4. 编译器(Compiler)

    • 功能:将AST转换为字节码(bytecode)。
    • 工作原理:将高层次的语言结构翻译成低层次的指令序列,便于虚拟机执行。
  5. 字节码

    • 简介:一种中间表示形式,介于源代码和机器码之间。
    • 特点:字节码是跨平台的,可移植的,与特定的硬件无关。
  6. Python虚拟机(Python Virtual Machine, PVM)

    • 功能:解释和执行字节码。
    • 工作原理:PVM逐条读取字节码指令,并将其转换为机器指令或直接执行相应的操作。
  7. 运行时环境(Runtime Environment)

    • 功能:提供程序执行所需的基础设施,如内存管理、垃圾回收、标准库支持等。
    • 特点:包括内存分配器、垃圾回收器、内置函数和对象模型等。
  8. 标准库(Standard Library)

    • 功能:提供一组常用模块和包,支持文件操作、网络通信、数据处理等任务。
    • 特点:丰富的模块集成在解释器中,直接可用。

4.2 Python解释器具体实现

  • Cpython:用C语言开发的,在命令行下运行Python就是启动Cpython解释器,官方下载的python2.7均为Cpython。Cpython用>>>作为提示符。
  • Ipython:基于CPython之上的一个交互式解释器,也就是说,IPython只是在交互方式上有所增强,但是执行Python代码的功能和CPython是完全一样的。IPython用In [序号]:作为提示符。
  • PyPy:主要针对执行速度。采用JIT技术,对Python代码进行动态编译。绝大部分Python代码都可以在PyPy下运行。
  • Jpython:运行在Java平台上的Python解释器,可以直接把Python代码编译成Java字节码执行。
  • IronPython:运行在微软.Net平台上的Python解释器,可以直接把Python代码编译成.Net的字节码。
  • Boost.Python:使得Python和C++的类库可互相调用(.pyc)。

以下是Python解释器种类的整理表格:

解释器简介特点优点缺点
CPython默认的、最常用的Python解释器用C语言编写,最广泛使用,兼容性最好。官方下载的python均为Cpython,用>>>作为提示符。稳定,支持大多数的Python库和模块性能较低,主要由于GIL(全局解释器锁)的限制
IPython基于CPython之上的一个交互式解释器提供强大的交互式shell,支持自动补全、调试器等。IPython只是在交互方式上有所增强,但是执行Python代码的功能和CPython是完全一样的。IPython用In [序号]:作为提示符。非常适合数据科学和研究工作,提供了更好的用户体验和丰富的功能主要用于交互式计算,不适合作为生产环境的解释器
PyPy采用JIT(即时编译)技术的Python解释器,对Python代码进行动态编译比CPython更快,特别是在长时间运行的程序中。绝大部分Python代码都可以在PyPy下运行。显著提高性能,特别适用于计算密集型任务与CPython的兼容性不完全,某些库可能无法使用。
Jython运行在Java平台上的Python解释器可以直接调用Java库和类,可以直接把Python代码编译成Java字节码执行。与Java无缝集成,适合需要在Java平台上运行的应用性能不如CPython,更新较慢
IronPython运行在微软.NET平台上的Python解释器可以直接调用.NET框架的类和库,可以直接把Python代码编译成.Net的字节码。与.NET无缝集成,适合需要在.NET平台上运行的应用与CPython的兼容性不完全,某些库可能无法使用
MicroPython用于微控制器和资源受限环境的Python解释器精简版的Python解释器,适用于嵌入式系统体积小,适合嵌入式开发和物联网(IoT)应用功能受限,不支持所有的Python标准库
Pyston采用JIT技术的Python解释器,旨在提高CPython的性能与CPython完全兼容,同时在性能上有所提升提高性能,特别是在计算密集型任务中。Pyston 是 Python 的基于 JIT 另一种实现,更快且高度兼容 CPython,和另一个被寄予厚望的 pypy 相比,Pyston 背后有 DropBox 的资金支持,发展会比 PyPy 更快。仍在发展中,稳定性和兼容性有待进一步验证
Boost.Python用于将C++与Python无缝集成的库允许在C++中嵌入Python解释器,或将C++类和函数暴露给Python使用适合需要高性能计算的应用,充分利用C++的性能优势,同时享受Python的易用性需要掌握C++编程,有一定的学习曲线,复杂性较高

4.3 Python虚拟机

python并不将py文件编译为机器码来运行,而是由python虚拟机一条条地将py语句解释运行,python虚拟机的执行方式就是模仿普通x86可执行文件运行方式。

虚拟机输入为字节码.pyc文件,由字节码文件加载器将二进制的.pyc文件加载到内存,由执行引擎解释执行,输出为字节码文件的执行结果。

4.4 Python字节码

Python字节码(Python Bytecode)是Python源代码编译后的中间表示形式。字节码是与特定硬件无关的低级表示,适合Python虚拟机(PVM)解释执行。字节码文件通常以.pyc扩展名存储。

  • 跨平台:字节码独立于具体的硬件和操作系统,可以在任何支持相应Python解释器的平台上运行。
  • 优化执行:通过将源代码编译为字节码,可以减少源代码解析的开销,提高执行效率。

当Python脚本首次运行时,解释器会将源代码(.py文件)编译为字节码,并将字节码存储在__pycache__目录下,以.pyc文件形式保存。之后运行相同脚本时,解释器会直接使用已有的字节码文件,除非源代码发生了变化。

备注

Python中的字节码(bytecode) 是一种数据类型, Python代码的编译结果就是bytecode对象。bytecode对象可以由虚拟机加载后直接运行,而pyc文件就是bytecode在硬盘上的保存形式。

4.5 Python源代码编译和执行的详细流程

  1. 源代码输入

    • Python解释器读取并加载Python源代码(.py文件)。
  2. 词法分析(Lexical Analysis)

    • 词法分析器将源代码转换为标记(token),这些标记是编程语言的基本组成部分。
  3. 语法分析(Parsing)

    • 语法分析器根据标记序列构建抽象语法树(AST),表示代码的结构和语法。
  4. 语义分析(Semantic Analysis)

    • 语义分析器检查AST的语义正确性,确保变量、类型和操作符的使用符合语言规则。
  5. 字节码生成(Bytecode Generation)

    • 编译器将AST转换为字节码,生成的字节码是跨平台的低级表示形式。
  6. 存储字节码(Bytecode Storage)

    • 编译后的字节码保存为 .pyc文件,存储在 __pycache__目录下,以便后续使用。
  7. 字节码加载

    • 当再次运行相同的Python脚本时,解释器首先检查是否存在对应的字节码文件(.pyc)。
    • 如果存在且未过期,直接加载字节码文件;否则,重新编译源代码生成新的字节码。
  8. 执行字节码(Execution by PVM)

    • Python虚拟机(PVM)读取字节码文件,逐条解释和执行字节码指令。
    • PVM负责内存管理、垃圾回收、动态类型检查和其他运行时任务。

以下是上述流程的图示:

alt

5. Python的应用

应用领域描述示例库和工具应用示例
Web开发创建动态网站、处理HTTP请求、数据库操作等Django、Flask、PyramidDjango用于开发Instagram,Flask用于开发Pinterest
数据科学与机器学习数据处理与分析、机器学习模型训练与预测、数据可视化等NumPy、Pandas、Matplotlib、Scikit-learn、TensorFlow、Keras、PyTorch使用TensorFlow进行图像识别,使用Pandas进行数据分析
网络爬虫、自动化与脚本编写自动化任务、网络爬虫、数据抓取、自动化测试等。用于搜索引擎、深度学习等领域提供数据源。Selenium、Beautiful Soup、Scrapy、pyautogui、requests、pytest使用Selenium进行浏览器自动化测试,使用Scrapy进行网页数据抓取,使用Beautiful Soup解析HTML内容
科学计算与工程科学计算、符号数学、图像处理等SciPy、SymPy、OpenCV、Biopython使用SciPy进行数值计算,使用OpenCV进行图像处理
人工智能与自然语言处理自然语言处理、文本分析、语音识别、聊天机器人等NLTK、spaCy、GPT、Transformers使用NLTK进行文本分类,使用Transformers进行语言模型训练
数据科学NumPy扩展提供大量与许多标准数学库的接口。机器学习(scikit-learn、TensorFlow框架)、数据统计分析和可视化(Matplotlib、seaborn框架)。NumPy、Pandas、Matplotlib、seaborn、scikit-learn、TensorFlow使用NumPy进行数值计算,使用scikit-learn训练机器学习模型,使用Matplotlib进行数据可视化
游戏开发2D游戏开发、图形渲染、游戏逻辑控制Pygame、PyKyra使用Pygame开发简单的2D游戏
桌面应用开发使用PyQt、Kivy等框架进行图形用户界面程序的开发。PyQt、Kivy使用PyQt开发桌面应用,使用Kivy开发跨平台应用
教育与教学编程教学的入门语言,广泛用于计算机科学教育无需特定库很多学校和在线课程使用Python作为教学语言
金融与量化交易金融数据分析、量化交易策略开发、回测QuantLib、Zipline、PyAlgoTrade使用Zipline开发和回测交易策略
网络与系统运维自动化配置管理、远程命令执行、系统监控Ansible、SaltStack、Fabric使用Ansible进行大规模服务器配置管理
区块链与加密货币开发区块链应用、智能合约、加密货币交易Web3.py、pyethereum使用Web3.py与以太坊区块链进行交互
物联网(IoT)开发嵌入式系统和物联网设备MicroPython、CircuitPython使用MicroPython开发小型物联网设备
网络安全渗透测试、网络分析、加密解密等Scapy、Paramiko、PyCrypto使用Scapy进行网络包分析,使用PyCrypto进行数据加密
Linux/UNIX运维提供API(Application Programming Interface应用程序编程接口),能方便进行系统维护和管理。os、shutil、subprocess使用os模块进行文件系统操作,使用subprocess模块执行系统命令
移动App开发使用PyQt、Kivy等进行移动应用开发。Python的PyOpenGL模块封装了OpenGL应用程序编程接口,能进行二维和三维图像处理。PyGame模块可用于编写游戏软件。PyQt、Kivy、PyOpenGL、PyGame使用Kivy开发跨平台移动应用,使用PyOpenGL进行图形处理,使用PyGame开发移动游戏
网络编程基于Socket等协议,提供丰富的模块支持sockets编程,能方便快速地开发分布式应用程序。许多大规模软件开发计划如Zope,Mnet及BitTorrent,Google都在广泛地使用它。socket、asyncio、Twisted使用socket模块开发聊天程序,使用Twisted开发分布式应用
图形处理有PIL、Tkinter等图形库支持,能方便进行图形处理。PIL、Pillow、Tkinter使用Pillow进行图像处理,使用Tkinter开发图形界面
文本处理提供re模块支持正则表达式,还提供SGML、XML分析模块,许多程序员利用Python进行XML程序的开发。re、xml.etree.ElementTree、Beautiful Soup使用re模块进行文本搜索,使用xml.etree.ElementTree解析XML文档
数据库编程可通过遵循Python DB-API规范的模块与Microsoft SQL Server,Oracle,Sybase,DB2,MySQL、SQLite等数据库通信。Python自带有一个Gadfly模块,提供了一个完整的SQL环境。sqlite3、SQLAlchemy、psycopg2、PyMySQL使用sqlite3操作SQLite数据库,使用SQLAlchemy进行ORM映射

python应用举例:

  • Google - 谷歌在很多项目中用python作为网络应用的后端,如Google Groups、Gmail、Google Maps等
  • NASA - 美国宇航局,从1994年起把python作为主要开发语言
  • 豆瓣网 - 图书、唱片、电影等文化产品的资料数据库网站
  • Torchlight --Python编写的大型3D游戏,原Blizzard公司人员制作发行,开源
  • Blender - 以C与Python开发的开源3D绘图软件 在科学研究中也得到广泛的应用

本文由 mdnice 多平台发布

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android Gradle开发、应用、插件发布(六)—实现打包自动复制文件插件

1. 前言 项目中遇到了一个问题 : 其中一个模块MyLibrary的assets文件夹中,需要存放很多文件(每个文件对应一个功能)。 这样导致的问题是MyLibrary打出的这个aar包体积特别大。 如果把MyLibrary严谨地拆解成若干个Module又比较费时,对于现在业务现状来…

Vue3实战笔记(42)—Vue + ECharts:流量数据可视化的强大组合

文章目录 前言vue3使用echarts标准demo:总结 前言 在前端开发中,数据可视化已经成为了一个不可或缺的部分。Vue.js作为一个轻量级且易于上手的渐进式JavaScript框架,与ECharts这个强大的数据可视化库的结合,使得在Vue应用中构建交…

Mysql插入中文内容报错解决及其Mysql常用的存储引擎说明

一、问题描述 我们在Mysql数据库的表中插入带有中文内容时报错,提示【1366 - Incorrect string value: \xE5\x8C\x97\xE4\xBA\xAC... for column UserDealer at row 1】,如下图所示: 二、问题分析 一般来说插入中文内容有问题我们首先想到的就是编码问题;我们可以查看该表使…

文科论文,使用AI写作时能够提供实证数据吗?

人工智能时代,为了撰写论文提供思路及高效,利用AI撰写论文已是常态,可撰写文科论文通常研究中都需要实证数据,而AI撰写论文时能够提供这样的数据吗? 一、什么是实证数据 实证数据是指从研究报告、财务报表、新闻报道…

栈和队列的经典例题,LeetCode 括号匹配问题;栈实现队列;队列实现栈;队列带环问题

1.前序 又有很久没有更新文章了&#xff0c;这次带你们手撕几道基础题&#xff1b;真的就和康纳吃饭一样简单&#xff01;&#xff01;&#xff01; 如果还不会队列和栈的可以去看看之前写的博客&#xff1b; 栈的实现 队列概念以及实现 <- 快速传送 目录 1.前序 …

Jmeter例题分析-作业一

作业 作业1概要 本文档是关于执行软件性能测试的详细指南&#xff0c;包括使用JMeter工具进行测试的步骤和要求。 文档分为两个主要部分&#xff1a;性能测试的执行和性能测试报告的编写。 在第一部分中&#xff0c;详细描述了如何使用 JMeter进行性能测试。这包括设置测试环…

【机器学习】大模型在机器学习中的应用:从深度学习到生成式人工智能的演进

&#x1f512;文章目录&#xff1a; &#x1f4a5;1.引言 ☔2.大模型概述 &#x1f6b2;3.大模型在深度学习中的应用 &#x1f6f4;4.大模型在生成式人工智能中的应用 &#x1f44a;5.大模型的挑战与未来展望 &#x1f4a5;1.引言 随着数据量的爆炸性增长和计算能力的提…

LeetCode //C - 119. Pascal‘s Triangle II

119. Pascal’s Triangle II Given an integer rowIndex, return the rowIndexth (0-indexed) row of the Pascal’s triangle. In Pascal’s triangle, each number is the sum of the two numbers directly above it as shown: Example 1: Input: rowIndex 3 Output: …

Autodesk 3DS Max v2025 解锁版安装教程 (3D 建模软件)

前言 Autodesk 3ds Max 是一款功能强大的 3D 建模和动画解决方案&#xff0c;游戏开发人员、视觉效果艺术家和平面设计师使用它来创建庞大的世界、令人惊叹的场景和引人入胜的虚拟现实 (VR) 体验。 Autodesk 3DS MAX是业界使用最广泛的3D建模和动画软件程序之一&#xff0c;它…

6.小程序页面布局 - 账单明细

文章目录 1. 6.小程序页面布局 - 账单明细1.1. 竞品1.2. 布局分析1.3. 布局demo1.4. 页面实现-头部1.5. 账单明细1.5.1. 账单明细-竞品分析1.5.2. 账单明细-实现1.5.2.1. 账单明细-实现-mock数据1.5.2.2. 每日收支数据的聚合整理1.5.2.3. 页面scroll-view 1.6. TODO 1. 6.小程序…

力扣HOT100 - 72. 编辑距离

解题思路&#xff1a; 动态规划 class Solution {public int minDistance(String word1, String word2) {int n1 word1.length();int n2 word2.length();int[][] dp new int[n1 1][n2 1];for (int j 1; j < n2; j) dp[0][j] dp[0][j - 1] 1;for (int i 1; i < …

OA界面这么香吗?总有老铁私信,让我多发点,他好参考。

OA的确是B端系统应用最为广泛的一种&#xff0c;这次再给大家分享十来个页面&#xff0c;希望对他们的界面提升有所帮助。 举报 评论 3

【数据结构与算法】之堆的应用——堆排序及Top_K问题!

目录 1、堆排序 2、Top_K问题 3、完结散花 个人主页&#xff1a;秋风起&#xff0c;再归来~ 数据结构与算法 个人格言&#xff1a;悟已往之不谏&#xff0c;知来者犹可追 克心守己&#xff0c;律己则安&#xff01; 1、堆排序 对一个无序的数组…

焦化超低排平台选哪家好?(已解答)

在环保政策日益严格的背景下&#xff0c;焦化行业的超低排放改造成为企业转型升级的必经之路。朗观视觉小编建议&#xff0c;选择合适的焦化超低排平台对于确保改造效果和实现可持续发展具有重要意义。本文将从多个维度为您提供一份全面的评估与选择指南&#xff0c;帮助您在众…

【计算机毕业设计】030英语学习交流平台微信小程序

&#x1f64a;作者简介&#xff1a;拥有多年开发工作经验&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。&#x1f339;赠送计算机毕业设计600个选题excel文件&#xff0c;帮助大学选题。赠送开题报告模板&#xff…

Volatile的内存语义

1、volatile的特性 可见性&#xff1a;对一个volatile变量的读&#xff0c;总能够看到任意一个线程对这个volatile变量的写入。 原子性&#xff1a;对任意单个volatile变量的读/写具有原子性&#xff0c;但类似于volatile这种复合操作不具有原子性。 接下来我们用程序验证。…

Spring Cloud 系列之Gateway:(9)初识网关

传送门 Spring Cloud Alibaba系列之nacos&#xff1a;(1)安装 Spring Cloud Alibaba系列之nacos&#xff1a;(2)单机模式支持mysql Spring Cloud Alibaba系列之nacos&#xff1a;(3)服务注册发现 Spring Cloud 系列之OpenFeign&#xff1a;(4)集成OpenFeign Spring Cloud …

【2024软考】史上最全!软考刷题+解析大合集(9万字全手工打,货真价实)

计算机基础知识 1.中断向量表用来保存各个中断源的中断服务程序的入口地址。当外设发出中断请求信号&#xff08;INTR&#xff09;以后&#xff0c;由中断控制器&#xff08;INTC&#xff09;确定其中断号&#xff0c;并根据中断号查找中断向量表来取得其中断服务程序的入口地…

89.网络游戏逆向分析与漏洞攻防-游戏技能系统分析-游戏中使用的哈希算法逆向分析

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 如果看不懂、不知道现在做的什么&#xff0c;那就跟着做完看效果&#xff0c;代码看不懂是正常的&#xff0c;只要会抄就行&#xff0c;抄着抄着就能懂了 内容…

HMI设计:再谈上位机与下位机,附海量案例图

上期回顾&#xff1a;HMI界面之&#xff1a;上位机界面设计&#xff0c;一文扫盲 一、上位机负责控制和决策&#xff0c;下位机负责采集和执行 上位机和下位机是两个概念&#xff0c;通常用于描述计算机系统中不同层次的设备或组件。 上位机&#xff08;Host Computer&#x…