Python基础01-环境搭建与输入输出

零、文章目录

Python基础01-环境搭建与输入输出

1、Python概述

(1)为什么要学习Python
  • 技术趋势:Python自带明星属性,热度稳居编程语言界前三

image-20231117120901228

  • 简单易学:开发代码少,精确表达需求逻辑;33个关键字,7种基本数据类型;语法规则简单,接近自然语言

image-20231117121011608

  • 应用广泛:Python语言涉及IT行业70%以上的技术领域

image-20231117121039299

(2)Python语言的诞生
  • 1989年,为了打发圣诞节假期,龟叔(吉多·范·罗苏姆)开始写Python语言的编译器
  • 1991年,第一个Python编译器诞生
  • Python这个名字,来自龟叔所挚爱的电视剧Monty Python’s Flying Circus (蒙蒂·蟒蛇的飞行马戏团)

image-20231117121208512

(3)Python的优缺点
  • 简单:Python是一种代表简单主义思想的语言。阅读一个良好的Python程序就感觉像是在读英语一样,Python的这种代码本质是它最大的优点之一。它使你能够专注于解决问题而不是去搞明白语言本身。
  • 易学:就如同你即将看到的一样,Python极其容易上手。前面已经提到了,Python有极其简单的语法。
  • 免费、开源:Python开源的. 简单地说,你可以自由地阅读它的源代码、对它做改动、这是为什么Python如此优秀的原因之一——它是由一群希望看到一个更加优秀的Python的人创造并经常改进着的。
  • 可移植性:由于它的开源本质,Python已经被移植在许多平台上(经过改动使它能够工作在不同平台上)。如果你小心地避免使用依赖于系统的特性,那么你的所有Python程序无需修改就可以在下述任何平台上面运行。
  • 丰富的库:Python标准库确实很庞大。它可以帮助你处理各种工作,包括正则表达式、文档生成、单元测试、线程、数据库、网页浏览器、CGI、FTP、电子邮件、XML、XML-RPC、HTML、WAV文件、密码系统、GUI(图形用户界面)、Tk和其他与系统有关的操作。记住,只要安装了Python,所有这些功能都是可用的。这被称作Python的“功能齐全”理念。
  • **缺点:**Python语言非常完善,没有明显的短板和缺点,唯一的缺点就是执行效率慢,这个是解释型语言所通有的,同时这个缺点也将被计算机越来越强大的性能所弥补。

2、Python解析器

(1)Python解析器的作用
  • Python解释器的作⽤:运⾏Python文件

image-20231117134118293

(2)Python解析器种类
  • CPython,C语言开发的解释器[官方],应⽤广泛的解释器。
  • IPython,基于CPython的一种交互式解释器。
  • 其他解释器
    • PyPy,基于Python语言开发的解释器。
    • JPython,运⾏在Java平台的解释器,直接把Python代码编译成Java字节码执⾏。
    • IronPython,运⾏在微软.Net平台上的Python解释器,可直接把Python代码编译成.Net的字节码。
(3)下载Python解析器
  • 下载地址:https://www.python.org/downloads/release/python-3120/
  • 百度网盘:https://pan.baidu.com/s/17rkTQrkY6HWd1L5EHPoDig?pwd=1234

image-20231117135445457

(4)安装Python解析器
  • 双击可执⾏行行⽂文件 —[勾选添加环境变量量] – [Install Now],按提示操作即可。

image-20231117141038053

3、PyCharm开发利器

(1)PyCharm的作用
  • PyCharm是⼀种Python IDE (集成开发环境),带有一整套可以帮助用户在使用Python语言开发时提高其效率的⼯具,

  • 内部集成的功能如下:

    • Project管理

    • 智能提示

    • 语法高亮

    • 代码跳转

    • 调试代码

    • 解释代码(解释器)

    • 框架和库

(2)PyCharm的分类
  • PyCharm分为专业版(professional)和社区版(community),本文章主要以社区版为基准进行操作和讲解。
(3)下载PyCharm软件
  • 下载地址:https://www.jetbrains.com/pycharm/
  • 百度网盘:https://pan.baidu.com/s/1NWDhx91K4gTjSya4-5-jDQ?pwd=1234

image-20231117142438168

(4)安装PyCharm软件
  • 双击安装包 – [选择安装位置] – [添加环境变量和快捷方式,关联文件扩展] --[Install] --[Finish]

image-20231117142917665

(5)PyCharm基本使用
  • 新建项目:打开PyCharm – [New Project] – 选择项根目录和解释器版本 – [Create]

image-20231117145835350

image-20231117150502047

  • 新建文件并书写代码:项⽬根⽬录或根目录内部任意位置 – 右键 – [New] – [Python File] – 输⼊文件名 – [OK],如果将来要上传到服务器的文件,那么文件名切记不能使用中文。

image-20231117150917154

image-20231117151006958

  • 编写Python代码:双击打开⽂文件,并书写一个最简单的Python代码

image-20231117151146610

  • 运⾏文件:选中文件–右键–Run,或者在文件内–右键–Run

image-20231117151252197

image-20231117151439166

(6)PyCharm基本设置
  • [File] – [Settings]–[Appearance & Behavior]

  • [Appearance & Behavior] – [Appearance]:Theme:修改主题,Use custom font :修改主题字体,Size:修改主题字号

image-20231117193838487

  • [Editor] – [Font]:Font:修改字体,Size:修改字号,Line Spacing:修改行间距

image-20231117195125110

  • [Project: 项目名称] – [Project Interpreter] – 选择目标解释器

image-20231117195742659

  • [File] – [Open]:打开项目,浏览选择目标项目根目录, 选择打开项目方式,打开项⽬的方式共三种。
    • This Window:覆盖当前项目,从而打开目标项目
    • New Window:在新窗口打开,则打开两次PyCharm,每个PyCharm负责一个项⽬
    • Attach:把两个项目合并在一起,放在同一个窗口中

image-20231117202510595

  • [File] – [Close Project]:关闭项目

4、Python注释

(1)为什么需要注释
  • 在我们编写Python程序时,为了提高程序的可读性,强烈建议大家为核心代码添加注释信息。
(2)注释代码与非注释代码对比
  • 添加了注释的代码更加易于程序的阅读。

image-20231117203751047

(3)Python注释的分类及语法
  • 单行注释:单行注释只能注释一行内容
# 注释内容
# 在Python中可以使用(# 注释内容)来表示单行注释
print('hello world')  # 单行注释,主要用于表示代码的输出结果 => hello world
  • 多⾏注释:多行注释可以注释多行内容,常用于代码块注释情况
"""第一行注释第二行注释第三行注释
"""'''第一行注释第二行注释第三行注释
'''
'''
注释的内容不止1行,就可以使用多行注释!
注意:这里既可以使用三个单引号也可以使用三个双引号,在注释中,两者效果完全相同!
'''"""
多行注释在实际工作中的应用场景:
① 用于编写程序的设计逻辑
以下程序一共分为三个步骤
第一步:定义一个计数器
第二步:编写循环条件
第三步:在循环体内部更新计数器值② 多行注释还可以用于函数的说明文档
sum_num()函数,主要用于求两个数的和
参数说明:
num1代表第一个参数,整数类型
num2代表第二个参数,整数类型
返回值说明:
当函数执行完毕后,其返回两个数的和!
"""
def sum_num(num1, num2):return num1 + num2
(4)PyCharm注释快捷键
  • 可以直接使用 Ctrl + / 来快速生成代码注释

5、Python变量

(1)变量是什么
  • 变量是存储数据的容器
  • 变量存储的数据是临时的
  • 变量在程序运行过程中是可以发生改变的量
(2)变量的作用
  • 通过变量来实现存储以方便后续操作

image-20231117211322363

(3)变量的定义
  • 基本语法:变量名 = 变量的值
  • 注意事项:等号两边都要保留一个空格,变量名可以自定义,但是要满⾜标识符命名规则。
# 定义一个变量,c1变量,用于保存数据"可乐"
c1 = "可乐"
c2 = "牛奶"# 打印输出变量
print(c1)
print(c2)
(4)标识符命名规则
  • 标识符命名规则是Python中定义变量名称时一种命名规范

    • 由数字、字母、下划线组成

    • 不能数字开头

    • 严格区分⼤小写

    • 不能使⽤内置关键字作为变量名称

  • Python内置关键字如下

image-20231117211756137

# help('keywords')
# 定义几个变量,用于保存一个人的信息
name = '刘国晓'  # ''/""引号引起来的内容都称之为“字符串”
age = 23
address = '广州市天河区'print(name)
print(age)
print(address)# 在Python代码中,print()也可以同时输出多个变量
print(name, age, address)
(5)命名习惯
  • 变量命名一定要做到见名知义。
  • 大驼峰:即每个单词首字母都大写,例如: MyName 。
  • 小驼峰:第二个(含)以后的单词首字母大写,例例如: myName 。
  • 下划线:例如: my_name 。
(6)变量的使用
  • 在Python中,变量必须要先定义后使用。
my_name ='YYY'
print(my_name)schoolName ='XXX'
print(schoolName)
(7)变量的数据类型
  • 在 Python中,我们为了应对不同的业务需求,也会把数据分为不同的类型

image-20231117212851550

  • 不同类型变量的定义及判断,判断方法 => type()
a = 1
print(type(a)) # <class 'int'> -- 整型
b = 1.1
print(type(b)) # <class 'float'> -- 浮点型
c = True
print(type(c)) # <class 'bool'> -- 布尔型
d = '12345'
print(type(d)) # <class 'str'> -- 字符串
e = [10, 20, 30]
print(type(e)) # <class 'list'> -- 列表
f = (10, 20, 30)
print(type(f)) # <class 'tuple'> -- 元组
h = {10, 20, 30}
print(type(h)) # <class 'set'> -- 集合
g = {'name': 'TOM','age': 20}
print(type(g)) # <class 'dict'> -- 字典

6、Python中的Bug

(1)Bug是什么
  • 所谓bug,就是程序中的错误。如果程序有错误,就需要咱们程序员来进行问题排查,及时纠正错误

image-20231117214425947

(2)Debug工具
  • Debug工具是PyCharm IDE中集成的专门用来调试程序的工具,在这里程序员可以查看程序的执行细节和流程,以方便我们快速找出程序的Bug!
  • Debug工具使⽤二步走:① 打断点 ② Debug调试
(3)打断点
  • 断点位置:断点要定位在要调试Python代码段的第一行即可
  • 打断点的方法:在需要调试代码行的行号位置右侧的空白处单击即可

image-20231117215453584

(4)Debug调试
  • 断点打好后,在文件内部任意位置 – 右键 – Debug文件名 – 即可调出Debug工具面板 – 单击StepOver/F8,即可按步执⾏代码。

image-20231117215716182

(5)Debug输出面板分类
  • Threads&Variables:显示变量和变量的细节
  • Console:输出内容

image-20231117220106490

7、Python格式化输出

(1)输出是什么
  • 所谓输出就是程序输出给用户
# 1、定义一些变量
name = '张三'
age = 25
address = '广州市天河区'# 2、变量的输出(普通输出)
print(name)
print(age)
print(address)# 在Python,还允许多个变量同时输出
print(name, age, address)
(2)格式化输出
  • 所谓的格式化输出即按照一定的格式输出内容。格式化符号:

image-20231118094803245

(3)案例演示
  • 百分号形式的格式化输出
'''
如果我们想把某些变量通过一定的格式进行输出展现,可以使用百分号形式实现
基本语法:
print(变量名称)
print('字符串%格式' % (变量名称))
print('字符串%格式 %格式 %格式' % (变量名称1, 变量名称2, 变量名称3))
'''
# 案例:定义两个变量name='ly', age=18,按照如下格式进行输出:我的名字是ly,今年18岁了。
name = 'ly'
age = 18
print('我的名字是%s,今年%d岁了。' % (name, age))
# 格式化字符串除了%s,还可以写为f‘{表达式}’,f-格式化字符串是Python3.6中新增的格式化⽅法,该方法更简单易读。
print(f'我的名字是{name},明年{age + 1}岁了。')# 案例:定义两个变量title='大白菜',price=3.5,按照如下格式进行输出:今天蔬菜特价了,大白菜只要3.5元/斤。
title = '大白菜'
price = 3.5
print('今天蔬菜特价了,%s只要%f元/斤。' % (title, price))
# 在Python中,浮点数还可以进一步格式化,比如保留2位小数 => %.2f
print('今天蔬菜特价了,%s只要%.1f元/斤。' % (title, price))# 案例:定义两个变量id=1,name='ly',按照如下格式进行输出:姓名ly,学号000001
id = 1
stuname = 'ly'
print('姓名%s,学号%d' % (stuname, id))
# 在Python中,%d整数类型还可以进一步格式化,如保留6位,不足的在前面填充0
print('姓名%s,学号%06d' % (stuname, id))'''
案例:由于受到俄罗斯与乌克兰战争影响,原油价格上浮5%!
记住:如果需要在百分号形式的格式化输出中输出一个百分号,我们可以通过%%来实现!
'''
num = 5
print('由于受到俄罗斯与乌克兰战争影响,原油价格上浮%d%%!' % (num))
  • 输出
我的名字是ly,今年18岁了。
我的名字是ly,明年19岁了。
今天蔬菜特价了,大白菜只要3.500000元/斤。
今天蔬菜特价了,大白菜只要3.5元/斤。
姓名ly,学号1
姓名ly,学号000001
由于受到俄罗斯与乌克兰战争影响,原油价格上浮5%!
  • format形式格式化输出
'''
基本语法:
print('字符串{}'.format(变量名称1))
print('{}字符串{}'.format(变量名称1, 变量名称2))强调:.format()形式的格式化输出只能在Python3中使用!
案例:定义两个变量,name='孙悟空',mobile='18878569090',按照以下格式进行输出"姓名:孙悟空,联系方式:18878569090"
'''
name = '孙悟空'
mobile = '18878569090'
print('姓名:{},联系方式:{}'.format(name, mobile))
  • 输出
姓名:孙悟空,联系方式:18878569090
  • f简写形式格式化输出
# 案例:定义两个变量,name='孙悟空',mobile='18878569090',按照以下格式进行输出"姓名:孙悟空,联系方式:18878569090"
name = '孙悟空'
mobile = '18878569090'
print(f'姓名:{name},联系方式:{mobile}')# 案例:定义两个变量title='大白菜',price=3.5,按照如下格式进行输出:今天蔬菜特价了,大白菜只要3.5元/斤。
title = '大白菜'
price = 3.5
print(f'今天蔬菜特价了,{title}只要{price:.2f}元/斤。')# 案例:定义两个变量id=1,name='ly',按照如下格式进行输出:姓名ly,学号000001
id = 1
name = 'ly'
print(f'姓名{name},学号{id:06d}')
  • 输出
姓名:孙悟空,联系方式:18878569090
今天蔬菜特价了,大白菜只要3.50元/斤。
姓名ly,学号000001
(4)转义字符
  • \n :换⾏符。
  • \t :制表符,一个tab键(4个空格)的距离。
  • 在Python中,print(), 默认自带end=“\n” 这个换行结束符,所以导致每两个print 直接会换行展示,⽤户可以按需求更改结束符。
'''
在Python中,通过\字符表示的特殊形式就称之为转义字符。转义字符常见的有这样两种形式:
① \t :制表符,等价于一个Tab键或者4个空格
② \n :换行符,一旦在字符串中遇到了\n,则后面的内容自动另起一行扩展:print()完整写法print(变量名称, end='\n')代表在输出变量以后,会自动在变量的后面追加一个\n
'''
print('hello\npython')
print('*')
print('*\t*')
print('*\t*\t*')
print('*\t*\t*\t*')
print('*\t*\t*\t*\t*')# 扩展:思考一个问题,为什么每次使用print()打印变量以后都会自动换行呢?
name = '张三'
age = 23
print(name, end='')
print(age, end='')
  • 输出
hello
python
*
*	*
*	*	*
*	*	*	*
*	*	*	*	*
张三23

8、Python的input()输入方法

(1)输入是什么
  • 在Python中,程序接收用户输入的数据功能即是输入。

image-20231118103449670

(2)input基本语法
'''
在Python中,输出我们可以使用print()方法实现。接收由外部设备输入的内容,我们则可以使用input()方法实现。
基本语法:
变量名称 = input('代表提示用户输入信息:')但是如果程序只有input()其实没有任何意义,我们一般拿到这个数据以后,还需要进一步加工,所以建议定义一个变量保存用户的输入内容
'''
password = input('请输入您要交易的交易密码:')
print(f'您好,您输入的交易密码为:{password}')
(3)输入的特点
  • 当程序执行到input,等待用户输入,输入完成之后才能继续向下执行。
  • 在Python中,input接收用户输入后,一般存储到变量,方便使用。
  • 在Python中,input会把接收到的任意用户输入的数据都当做字符串处理。
'''
input()除了可以接收数据以外,还隐藏了两个特殊的功能:
① input()方法,永远都是str字符串类型
② input()方法还具有一个"暂停"功能,阻塞后续代码的继续执行,直到用户输入完成以后,代码才可以继续向下执行
'''
content = input('请输入您要显示的内容:')
print(type(content))

image-20231118150036256

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

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

相关文章

什么是Maven?

什么是Maven 1、Maven是依赖管理、项目构建工具。 pom.xml springBoot项目的核心配置文件&#xff0c;pom项目对象模型、Dependency依赖管理模型。 Maven中的GAVP是指&#xff1a; 1、GroupId&#xff1a;当前工程组织id&#xff0c;例如&#xff1a;com.jd.tddl 2、ArtifactI…

IS-IS原理与配置

IS-IS原理与配置 • IS-IS&#xff08;Intermediate System to Intermediate System&#xff0c;中间系统到中间系统&#xff09;是ISO &#xff08;International Organization for Standardization&#xff0c;国际标准化组织&#xff09;为它的CLNP &#xff08;ConnectionL…

[ 8 种有效方法] 如何在没有备份的情况下恢复 Android 上永久删除的照片?

我们生命中最重要的时刻&#xff0c;但这样做有缺点&#xff0c;其中之一就是数据丢失的风险。您可能倾向于定期删除无意义的照片&#xff0c;同时保存可爱的照片&#xff0c;从而使您的 Android 设备井井有条。然而&#xff0c;有些人在删除自己珍视的图像时不小心犯了错误。您…

非递归方式遍历二叉树的原理

一、递归遍历代码 // 先序遍历 void PreOrder(BiTNode *T){if (T!NULL){visit(T); // 最简单的visit就是printf(T->data)PreOrder(T->lChild);PreOrder(T->rChild);} }// 中序遍历 void InOrder(BiTNode *T){if (T!NULL){InOrder(T->lchild);visit(T);InOrder(T-…

Linux---文本搜索命令

1. grep命令的使用 命令说明grep文本搜索 grep命令效果图: 2. grep命令选项的使用 命令选项说明-i忽略大小写-n显示匹配行号-v显示不包含匹配文本的所有行 -i命令选项效果图: -n命令选项效果图: -v命令选项效果图: 3. grep命令结合正则表达式的使用 正则表达式说明^以指…

单片机上位机(串口通讯C#)

一、简介 用C#编写了几个单片机上位机模板。可定制&#xff01;&#xff01;&#xff01; 二、效果图

SCI一区级 | Matlab实现GWO-CNN-GRU-selfAttention多变量多步时间序列预测

SCI一区级 | Matlab实现GWO-CNN-GRU-selfAttention多变量多步时间序列预测 目录 SCI一区级 | Matlab实现GWO-CNN-GRU-selfAttention多变量多步时间序列预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.Matlab实现GWO-CNN-GRU-selfAttention灰狼算法优化卷积门控循环…

大数据HCIE成神之路之数据预处理(2)——异常值处理

异常值处理 1 异常值处理1.1 散点图1.1.1 实验任务1.1.1.1 实验背景1.1.1.2 实验目标1.1.1.3 实验数据解析 1.1.2 实验思路1.1.3 实验操作步骤1.1.4 结果验证 1.2 基于分类模型的异常检测1.2.1 实验任务1.2.1.1 实验背景1.2.1.2 实验目标1.2.1.3 实验数据解析 1.2.2 实验思路1.…

深入了解Linux网络配置:常见面试问题及解答

学习目标&#xff1a; 解释Linux网络配置的重要性和作用引入常见的面试问题 学习内容&#xff1a; 如何查看当前系统的IP地址和网关信息&#xff1f; 解答&#xff1a;可以使用ifconfig命令来查看当前系统的IP地址和网关信息。通过运行ifconfig命令&#xff0c;将会列出所有可…

数字基础设施及相关产业链报告:数据要素加快推进、AI终端应用加速发展

今天分享的AI系列深度研究报告&#xff1a;《数字基础设施及相关产业链报告&#xff1a;数据要素加快推进、AI终端应用加速发展》。 &#xff08;报告出品方&#xff1a;长城证券&#xff09; 报告共计&#xff1a;16页 1. 行业观点 在 TMT 各子板块&#xff1a;电子、通信、…

【Spring】Spring中的事务

文章目录 1. Spring事务简介2. Spring事务的案例案例代码代码目录结构数据库pom.xmlResource/jdbc.propertiesconfig/SpringConfig.javaconfig/JdbcConfig.javaconfig/MyBatisConfig.javadao/AccountDao.javaservice/AccountService.javaservice/impl/AccountServiceImpl.java测…

【Mode Management】ComM详细介绍

目录 1. Introduction and functional overview 2.Dependencies to other modules 3.Functional specification 3.1 Partial Network Cluster Management 3.2 ComM channel state machine 3.2.1 Behaviour in state COMM_NO_COMMUNICATION 3.2.1.1 COMM_NO_COM_NO_PENDI…

暂退法(丢弃法)

在深度学习中&#xff0c;丢弃法&#xff08;Dropout&#xff09;是一种常用的正则化技术&#xff0c;旨在减少模型的过拟合现象&#xff0c;可能会比之前的权重衰减(Weight Decay)效果更好。通过在训练过程中随机丢弃一部分神经元&#xff0c;可以有效地减少神经网络中的参数依…

Python实验项目9 :网络爬虫与自动化

实验 1&#xff1a;爬取网页中的数据。 要求&#xff1a;使用 urllib 库和 requests 库分别爬取 http://www.sohu.com 首页的前 360 个字节的数据。 # 要求&#xff1a;使用 urllib 库和 requests 库分别爬取 http://www.sohu.com 首页的前 360 个字节的数据。 import urllib.r…

微服务最佳实践:构建可扩展且高效的系统

微服务架构彻底改变了现代软件开发&#xff0c;提供了无与伦比的敏捷性、可扩展性和可维护性。然而&#xff0c;有效实施微服务需要深入了解最佳实践&#xff0c;以充分发挥微服务的潜力&#xff0c;同时避免常见的陷阱。在这份综合指南中&#xff0c;我们将深入研究微服务的关…

跟iPhone类似,不同品牌的手机、电脑随时使用“隔空投送”功能!如何开启?

iPhone的隔空投送是一个很受欢迎的功能。打开一个 App&#xff0c;然后轻点“共享”或“共享”按钮&#xff0c;再点击隔空投送&#xff0c;就可以分享图片、视频、文件出去。 然而&#xff0c;如果你用的不是苹果的产品&#xff0c;iPhone的隔空投送功能就有了“隔阂”。 不过…

CountDownLatch实战应用——实现异步多线程业务处理,异常情况回滚全部子线程

&#x1f60a; 作者&#xff1a; 一恍过去 &#x1f496; 主页&#xff1a; https://blog.csdn.net/zhuocailing3390 &#x1f38a; 社区&#xff1a; Java技术栈交流 &#x1f389; 主题&#xff1a; CountDownLatch实战应用——实现异步多线程业务处理&#xff0c;异常情…

H266/VVC编码标准介绍

视频编码标准 多样的视频应用催生了多种的视频编码方法。为了使编码后的码流能够在大范围内通用和规范&#xff0c;从20世纪80年代开始&#xff0c;国际组织就开始对视频编码建立国际标准。 什么是视频编码标准&#xff1a; 视频编码标准只规定了码流的语法语义和解码器&#…

Appium —— 初识移动APP自动化测试框架Appium

说到移动APP自动化测试&#xff0c;代表性的测试框架非Appium莫属&#xff0c;从今天开始我们将从APP结构解析、Appium框架学习、安卓/iOS自动化测试实战、自动遍历回归测试、自动化测试平台及持续集成&#xff0c;多个维度一起由浅入深的学废Appium 今天我们先来初步认识Appi…

【消息中间件】Rabbitmq的基本要素、生产和消费、发布和订阅

原文作者&#xff1a;我辈李想 版权声明&#xff1a;文章原创&#xff0c;转载时请务必加上原文超链接、作者信息和本声明。 文章目录 前言一、消息队列的基本要素1.队列:queue2.交换机:exchange3.事件:routing_key4.任务:task 二、生产消费模式1.安装pika2.模拟生产者进程3.模…