Python | 诞生、解析器的分类版本及安装

1. python的诞生

Python是一门由Guido van Rossum(龟叔)于1991年创造的高级编程语言。

下图是TIOBE指数(TIOBE Index)的官方网站的截图,TIOBE指数是衡量编程语言流行度的指标之一,截止到目前python排名第一。

www.tiobe.com/tiobe-index…

Untitled.png

python火起来的原因如下:

  • 语法简洁 & 适合小白;
  • 类库的强大;
  • 开发效率高;

2. python是一种强大解释型的语言

Python是一种广泛使用的编程语言,它被广泛应用于各种领域,包括Web开发、科学计算、人工智能和数据分析等。其中一个Python的特点就是它是一种解释型语言。

解释型语言与编译型语言不同。

  • 解释型语言

    • python、Ryby、JavaScript…
  • 编译型语言

    • C、C++、Golang…

在编译型语言中,源代码首先被整个编译成机器码,然后才能执行。

而在解释型语言中,源代码逐行被解释器解释并执行。Python的解释器会逐行读取Python代码,并实时将其转换为可执行的机器码。

这种实时解释和执行的方式使得Python在开发过程中具有一些独特的特性和优势。

  1. 高可移植性:Python解释器可以在不同操作系统上运行,使得Python代码无需修改即可在多个平台上使用。
  2. 快速开发和调试:无需显式编译步骤,开发者可以直接运行和测试Python代码,提高开发效率。
  3. 动态性和灵活性:Python代码可以在运行时进行动态修改和扩展,适合构建动态应用程序和脚本。
  4. 执行效率优化:通过优化解释器和使用扩展模块,Python提高了执行效率,同时保持了解释型语言的灵活性。

3. Python解释器的种类

由于python太火了,所有就有很多的公司开发了 python的解释器(用来翻译python代码成为计算机能够识别的命令)。

  • CPython【主流】: 这是Python的官方解释器,也是最常用和最广泛支持的解释器。它是用C语言实现的,执行Python代码并将其转换为机器可执行的指令。
  • JPython: 这是一个用Java实现的Python解释器,它允许Python代码与Java代码进行集成和互操作。
  • IronPython:这是一个用C#实现的Python解释器,它可以与.NET平台进行集成,使Python代码能够与C#代码无缝交互。
  • RubyPython,…
  • PyPy: 是对CPython的优化,旨在提供更高的执行速度。它通过引入即时编译器来优化执行,并且在某些情况下可以比CPython更快。

除了以上列出的解释器,还有其他一些实验性或特定用途的解释器,如RubyPython等。但是在大多数情况下,当提到Python解释器时,通常指的是CPython解释器,因为它是最常用和最常见的解释器.

4. CPython解释器有两个主要版本

  • Python 2.x系列:包括2.0、2.1、2.2等版本,最后一个版本是2.7.18。然而,自2020年起,Python 2.x系列已经停止了官方的维护和更新。这意味着不再提供新的功能更新和安全修复,开发者被鼓励迁移到Python 3.x系列。
  • Python 3.x系列:包括3.0、3.1、3.2等版本。Python 3.x系列对语言进行了一些重大的改进和改变,以提供更好的功能和性能。这是目前广泛推荐和使用的Python版本。

需要注意的是,Python 2.x和Python 3.x之间存在一些不兼容的语法和特性差异,因此在迁移代码时需要进行一些调整和修改。为了保证未来的兼容性和支持,建议使用Python 3.x系列的最新版本。

5. Python环境搭建

Python解释器就是将程序员编写的python代码翻译成计算机能够识别的指令。

  • 主流的是 CPython 解释器
  • 3.X 版本

5.1 安装 Python 解释器(windows)

Untitled 1.png

Untitled 2.png

Untitled 3.png

Untitled 4.png

Untitled 5.png

Untitled 6.png

Untitled 7.png

Untitled 8.png

Untitled 9.png

  • 安装成功后,编写一个Python代码并交给Python解释器去运行

    python
    复制代码
    name = input("请输入用户名: ")
    print("欢迎你: ",name)
    

Untitled 10.png

  • 打开终端:输入 ‘python解释器的路径+空格+代码的路径’

Untitled 11.png

Untitled 12.png

Untitled 13.png

5.2 安装 Pycharm 编辑器(windows)

PyCharm是一款功能强大的集成开发环境(IDE),专门用于Python开发.

  • 为什么要使用Pycharm?

    • 提高编码效率:PyCharm提供了许多功能来加快代码编写的速度。其中包括代码智能提示、自动完成、代码导航、重构工具等。这些功能可以帮助开发者更快地编写代码,减少错误和重复劳动。
    • 强大的调试功能:PyCharm内置了强大的调试工具,可以帮助开发者快速定位和修复代码中的错误。它提供了断点调试、变量监视、堆栈跟踪等功能,使调试过程更加高效和准确。
    • 集成解释器:PyCharm可以与Python解释器无缝集成,方便开发者在IDE中直接运行和调试代码。它支持本地解释器和远程解释器,并且可以轻松切换和配置不同的解释器环境。
    • 丰富的插件生态系统:PyCharm拥有丰富的插件生态系统,可以根据开发者的需求进行扩展和定制。这些插件提供了额外的功能和工具,如版本控制、数据库支持、Web开发框架集成等,可以进一步提升开发效率。
    • 跨平台支持:PyCharm可在多个操作系统上运行,包括Windows、Mac和Linux。这使得团队合作更加方便,无论开发者使用哪种操作系统,都可以保持一致的开发体验。
  • 下载 Pycharm

Untitled 14.png

点击 下载(默认免费使用30天)

Untitled 15.png

Untitled 16.png

Untitled 17.png

Untitled 18.png

Untitled 19.png

Untitled 20.png

安装完成后,打开软件

Untitled 21.png

同意协议,并继续

Untitled 22.png

选择不发送“数据共享”

Untitled 23.png

打开软件后,选择新建一个项目

Untitled 24.png 修改本地项目目录地址

Untitled 25.png 选择使用系统中的python解析器(就是自己下载的)

Untitled 26.png

Untitled 27.png

点击 创建

Untitled 28.png

在编辑器中,编写代码有提示,可以右键直接运行写好的python代码文件

Untitled 29.png

底部出现终端,会显示运行后的代码

Untitled 30.png

题外话

在此疾速成长的科技元年,编程就像是许多人通往无限可能世界的门票。而在编程语言的明星阵容中,Python就像是那位独领风 骚的超级巨星, 以其简洁易懂的语法和强大的功能,脱颖而出,成为全球最炙手可热的编程语言之一。


Python 的迅速崛起对整个行业来说都是极其有利的 ,但“人红是非多”,导致它平添了许许多多的批评,不过依旧挡不住它火爆的发展势头。

如果你对Python感兴趣,想要学习pyhton,这里给大家分享一份Python全套学习资料,都是我自己学习时整理的,希望可以帮到你,一起加油!

学习资源推荐

除了上述分享,如果你也喜欢编程,想通过学习Python获取更高薪资,这里给大家分享一份Python学习资料。

这里给大家展示一下我进的兼职群和最近接单的截图

兼职群

私单

😝朋友们如果有需要的话,可以V扫描下方二维码联系领取,也可以内推兼职群哦~

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

### 1.Python学习路线

image-20230619144606466

python学习路线图1

2.Python基础学习
01.开发工具

02.学习笔记

在这里插入图片描述

03.学习视频

在这里插入图片描述

3.Python小白必备手册

图片

4.数据分析全套资源

在这里插入图片描述

5.Python面试集锦
01.面试资料

在这里插入图片描述

在这里插入图片描述

02.简历模板

在这里插入图片描述

因篇幅有限,仅展示部分资料,添加上方即可获取👆

------ 🙇‍♂️ 本文转自网络,如有侵权,请联系删除 🙇‍♂️ ------

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
python根据需求完成一个TXT解析器的简单开发 一 修改说明: 需求一: 一开始说要解析UECapabilityInfo 消息里的supportedBandCombination-r10 这个IE里的CA组合转化成易阅读的表现形式. 我以为一组CA组合就是一组: bandEUTRA-r10 ca-BandwidthClassUL-r10 ca-BandwidthClassDL-r10 supportedMIMO-CapabilityDL-r10 功能实现: 有效信息筛选:于是就用循环把UECapabilityInformation的数据里每一行作为一个元素放到list里面 然后用bandEUTRA-r10作为一组CA的识别信息、在筛选出同组ca-BandwidthClassUL-r10、ca-BandwidthClassDL-r10、supportedMIMO-CapabilityDL-r10的信息,添加保存到字符串中,然后再把字符串作为元素添加到list中去。最后遍历list的元素写入目标文件 需求二: 然后收到反馈CA组合的理解是错误的。一组CA组合应该是以大括号作为识别的,里面可能包含多组: bandEUTRA-r10: ca-BandwidthClassUL-r10 ca-BandwidthClassDL-r10 supportedMIMO-CapabilityDL-r10 CA组合识别原理:在查看UECapabilityInformation内的CA组合后 发现CA组合内第一个 bandEUTRA-r10因为比其他bandEUTRA-r10多了一层的CA组合的大括号,所以如果给每一行增加索引的话就会发现除了第一个bandEUTRA-r10,其他bandEUTRA-r10到上一个supportedMIMO-CapabilityDL-r10的距离都是一样的,为了减少复杂度,我删除了所有’{’,这样所有除了所有CA组合第一个bandEUTRA-r10往上第四行是’}’其他bandEUTRA-r10的往上第四行都是supportedMIMO-CapabilityDL-r10 功能实现: 添加索引:便利时用了for enumerate()循环,这样便利时可以在循环时,自动为每个元素生成索引 CA组合识别:在识别到bandEUTRA-r10时,增加一个判断if datalist1[index-4].startswith(),如果bandEUTRA-r10的往上第四行是supportedMIMO-CapabilityDL-r10说明同组CA未结束,把筛选的有效信息强制类型转换后添加在上个元素末尾,反之则说明是个新的CA组合,往列表里添加一个新的元素。 需求三: 之后收到反馈CA组合虽然识别了,但是排序不行,需要按照CA组合支持的band进行排序 功能实现: 排序:于是我在识别完CA组合后,增加了一个循环和count(),用CA组合里的’-’给它们归类 比如1AA,11A,21AA是一类;1A-1A,2A-1AA,3A-1A是一类 在用一个中间变量保存开头的band的数字,一个类中把开头支持band的数字字母相同的CA组合归为一行 比如1A-21A,1A-22A一类1AA-2AA 1AA-3AA为一类 需求四: 之后收到反馈,CA组合分类不能只按照开头比较分类,不然一但数据多了会对查阅带来极大不便,应该按照每组CA组合中bandEUTRA-r10的值进行判断,比如1AA-2AA,1A-2AA和1AA-2A应该归在同一行 实现原理:首先我想的是按位比较数字,但是因为字母的数量不稳定,数字的位置不一定对应,然后我就想把数字全部提取出来作为索引,在相应的索引后面添加同组元素,用dict来实现排序。难点就在于从字符串中提取数字。后来在python的正则表达式中找到相关的处理函数compile()(设置匹配对象类型)和findall()(找到所有匹配对象并以list返回)。 功能实现: 第二次排序:在上次的排序中我保留了分类和从小到大的排序。方便提取索引时,索引也是从小到大。每遍历一个元素(CA组合有效信息),就compile()和findall(),从该元素中提取数字组合(在compile()的参数中添加()就能够使提取的内容成为一组数据),然后通过dict自带函数setdefault()添加索引,并可以设置索引值为list类型(dict类型的索引的值不可变,但如果类型为list,list的内容可以进行改动),避免重复索引,在本次遍历中完成将元素添加到索引值对应的list中去 需求五: 之后对程序进行测试,在测试test2时发现layers增加了fourlayers类型后,用来代表layers的数字2和4会影响分类结果。比如1AA(2)-1AA(2)和1A(4)-1A(2)会被归为两类。 test1:当CA组合的格式为xx-xx-xx-xx-xx(最长可识别为五位元素的组合,再长就需要修改代码) test2:当CA组合包含fourLayers test3:当CA组合缺失某种格式比如xx-xx时发现layers增加了fourlayers 功能实现: : 解除layers对排序的影响:用II 和 IV替代2,4来表示layers,测试后不影响阅读与分类 二、整体程序架构: 1.通过循环和自带的startswith()先将每组CA组合的有效信息识别 2.通过sorted()函数将所有CA组合从小到大排列 3.通过count()函数将所有CA组合根据格式不同分类 4.通过循环和正则表达式的split()对所有CAlist数据进行处理(用split处理只是防止出现不必要的错误) 5.通过循环和正则表达式compile()和findall()识别所有CA组合中数字,并将同一组合中的数字合为一个元素(在同一循环,用这个数字的元素作为一个dict的索引),用dict自带的setdefault()进行Key的添加顺便设置Key的值为list,避免Key重复,在用append把当前Key的字符串,添加到Key对应值的list中去 6.最后对dict整体遍历,将每一个Key的值输出到文本中去。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值