【从0-1的Python】第一篇:Python是什么?

Python是一种高级编程语言,以其简洁的语法和丰富的库著称。它支持面向对象编程,拥有强大的功能扩展性,广泛应用在Web开发、自动化运维、人工智能、网络爬虫等领域。然而,Python的运行速度相对较慢,代码加密也较为困难。Python有多个版本,其中Python3.x是当前主流。此外,Python的解释器有多种实现,如CPython、JPython和PyPy,每种实现都有其独特的特点和优势。

冲

Python

Python英文名称为"蟒蛇",是1989年荷兰人Guido van Rossum发明的一种解释型编程语言,python是在ABC教学语言的基础上发展来的,在开发Python时,添加了很多ABC没有的功能,还设计了各种丰富而强大的库,利用这些库,可以把使用其他语言制作的各种模块(尤其是C和C++)很轻松地联结在一起,因此Python又称为"胶水"语言

Python特性

Python是一种面向对象的、解释型的、通用的、开源的脚本编程语言,Python标准库和第三方库很多,并且功能强大,同样优缺点非常明显,Python的优点在于语法简单、开源、面向对象的高级语言、同时也是解释型语言,能跨平台,由于库的强大导致其功能非常强大并且扩展性强;Python缺点在于运行速度慢,代码加密难度高

Python优点

语法简单

Python对代码格式的要求并不严格,比如在定义变量时并不需要指定其数据类型

Python是一种极简主义的编程语言,同时也将Python称为具有伪代码特质的编程语言(伪代码Pseudo Code:是一种算法描述语言,它介于自然语言和编程语言,使用伪代码的目的就是为了使被描述的算法可以容易地以任何一种编程语言实现,伪代码的特点就是结构清晰、代码简单、可读性好,并且类型自然语言)

开源免费

Python编写的代码是开源的,Python解释器和模块都是开源,开源的目的就是所有Python用户都参与进来改进Python的性能,弥补Python的漏洞,加强代码的健壮性

面向对象的高级语言

Python是支持面向对象的,但是并不强制使用面向对象,并且Python屏蔽了很多底层细节,封装较深,会自动管理内存

功能扩展性强

Pyt覆盖hon具有脚本语言中最丰富和最强大的类库,这些类覆盖了文件I/O、GUI、网络编程、数据库访问、文本操作等常用的应用场景,Python社区发展良好,除了Python官方提供的核心模块,很多第三方都会参与进来开发模块,并且都是开源模块,Python具有良好的扩展性,在一定程度上弥补了运行效率慢的缺点

Python缺点

运行速度慢

Python是属于解释型语言,运行速度慢是解释型语言的通病,导致运行时速度慢的原因并不仅仅是一般运行一般对代码进行解释,另一方面是Python屏蔽了很多底层细节,而这些细节需要很消耗资源

代码加密困难

Python是执行运行代码,因此对Python源代码加密比较困难

Python应用领域

Python作为一种功能强大的编程语言,Python的应用领域广泛,主要领域是Web应用开发、自动化运维、人工智能领域、网络爬虫、科学计算、游戏开发

Web应用开发

Python经常被用于Web开发,随着Python的Web开发框架逐渐成熟,程序员可以更加轻松开发和管理复杂的Web程序

自动化运维

在很多操作系统下,Python是标准的系统组件,大多数Linux发行版中都集成了Python,可以在终端下直接运行Python,Python标准库中包含了很多了多个可以用来调用操作系统的库,通常情况下,Python编写的系统管理脚本,无论是可读性还是性能、代码重用度以及扩展性方面,都优于普通的shell脚本

人工智能领域

Python在人工智能领域内的机器学习、神经网络、深度学习等方面都是主流的编程语言,目前主流的人工智能学习框架:Google的TensorFlow、Facebook的PyTorch都是用Python来实现的

网络爬虫

Python很早用来是编写网络爬虫的,提供了很多服务与编写网络爬虫的工具,如urllib、Selenium以及网络爬虫框架Scrapy

科学计算

Python与其他解释型语言(shell、js、php)相比,Python在数据分析、可视化方面有相当完善和优秀的库,例如Numpy、pandas,这些都可以满足编写科学计算程序

游戏开发

游戏开发一般由C++编写图形显示等高性能模块,使用Python和Lua编写游戏的逻辑,Lua体积更小,而Python支持更多的特性和数据类型

Python的版本变化

Python随着用户量和需求的提高,Python也在不断升级变化,Python的更新动态可以在Python官网的PEP文档查看,PEP文档主要包含以下几个方面:

  1. 通知:汇总Python核心开发者重要的信息
  2. 标准化:提供代码风格、文档或者其他指导意见
  3. 设计:对提交的功能进行说明

Python自从发布以来经历了三个版本:

  1. 1994年发布了Python 1.0版本
  2. 2000年发布的Python 2.0版本
  3. 2008年发布的Python 3.0版本

Python 3.0是一次重大的升级,并没有实现对版本2.0的兼容,未来主流的一些Python框架都会放弃对版本2.0的支持

Python 3.x与Python 2.x的区别

  • Python 3.x在Python 2.x的基础上做了升级
  • Python 3.x对Python 2.x的标准库进行了一定程序的重新拆分和整合
  • printf函数取代了print语句
  • Python 3.x默认使用了UTF-8编码
  • Python 3.x除法运算符/会把浮点数除法保留小数点部分
  • Python 3.x版本去除了long类型,只支持一种整数类型int,新增了bytes类型
  • Python 3.x版本只支持不等于运算符!=

Python的底层实现

Python的最早的实现方式是以C语言实现的,但是随着编程预言的不断发展,Python的实现方式也发生了变化,我们现在所称的Python实际上指的就是CPython

Stackless Python

Stackless是Python的增强版,是因为其没有依赖C的调用栈,在其基本功能上添加了解释管理器的微线程,用来替代依赖系统内核上下文切换和任务调度的普通线程,轻量化又节约资源

JPython

JPython是Python语言的Java实现,将代码编译为Java字节代码,开发人员在Python模块中可以无缝使用Java类,JPython允许人们在复杂应用系统中使用顶层脚本语言,JPython与CPython的区别在于JPython做到了真正的java垃圾回收,而不是引用计数,没有全局解释器锁,在多线程中可以充分利用多个内核

PyPy

PyPy就是Python完成重写的,Python解释器本身就是用Python写的,PyPy 通常比 CPython 实现要快得多。基于这一特性,使得越来越多的开发人员决定在生产环境中切换到 PyPy;PyPy与CPython区别在于使用垃圾回收,而不是引用计数,集成跟踪JIT编译器,可以显著提高性能

编译型语言和解释型语言

python基础编译型解释型言

编译型语言

编译型语言:将所有源代码一次性转换成二进制指令,即生成一个可执行程序,实现这种转换的工具为编译器,比如说C、C++、Golang、汇编等

编译型语言一般是不能跨平台,也就是不能在不同操作系统之间随意切换,不跨平台主要是可执行程序不能跨平台,源代码不能跨平台

  • 可执行程序不能跨平台:因为不用操作系统对可执行文件的内部结构要求不同,彼此之间不能兼容
  • 源代码不能跨平台:不同平台支持的函数、类型、变量都不可能,所以源代码一般不能跨平台编译使用

解释型语言

解释型语言:将一边执行一边转换,不会生成可执行程序,实现这种转换的工具为解释器,比如说Python、JavaScript、PHP

解释型语言随着每次执行程序使用的功能不一样,每次执行程序都需要重新装换源代码,所以解释型语言的执行效率要低于编译型语言,解释型语言是支持跨平台,该跨平台是指源代码跨平台,而不是指解释器跨平台,解释器只负责将源代码转化为机器码,解释器是不支持跨平台的

  • 不同平台的解释器都必须遵循同样的语法,这样才能是源代码在不同平台下解释器得到正确的转换

编译器和解释器主要包括:词法分析、语法分析、语义分析、性能优化、生成可执行文件

类型原理优点缺点
编译型语言通过专门的编译器,将所有源代码一次性转换成特定平台(Windows、Linux 等)执行的机器码(以可执行文件的形式存在)。编译一次后,脱离了编译器也可以运行,并且运行效率高。可移植性差,不够灵活。
解释型语言由专门的解释器,根据需要将部分源代码临时转换成特定平台的机器码。跨平台性好,通过不同的解释器,将相同的源代码解释成不同平台下的机器码。一边执行一边转换,效率很低。

总结

Python英文名称为"蟒蛇",是1989年荷兰人Guido van Rossum发明的一种解释型编程语言,,Python 属于典型的解释型语言,所以运行 Python 程序需要解释器的支持,只要你在不同的平台安装了不同的解释器,代码就可以随时运行

赶紧学习起来吧!我是一个正在努力找回自我的人,希望能和一起学习的人成长,有错误的地方请各位大佬帮忙指正,如果觉得有帮助就点个赞当作对我的一个小肯定❤👍,peace&love

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值