首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

【黄啊码】Python是什么?Python的历史以及其语言特点

Python 由 Guido van Rossum 于 1989 年年底出于某种娱乐目的而开发, Python 语言是基于 ABC 教学语言的,而 ABC 这种语言非常强大,是专门为非专业程序员设计的。但 ABC 语言并没有获得广泛的应用, Guido 认为是非开放造成的。 Python 的“出身”部分影响了它的流行,Python 上手非常简单,它的语法非常像自然语言,对非软件专业人士而言,选择 Python 的成本最低,因此某些医学甚至艺术专业背景的人,往往会选择 Python 作为编程语言。 Guido 在 Python 中避免了 ABC 不够开放的劣势,Guido 加强了 Python 和其他语言如 C、C++ 和 Java 的结合性。此外,Python 还实现了许多 ABC 中未曾实现的东西,这些因素大大提高了 Python 的流行程度。 2008 年 12 月,Python 发布了 3.0 版本(也常常被称为 Python 3000,或简称 Py3k)。Python 3.0 是一次重大的升级,为了避免引入历史包袱,Python 3.0 没有考虑与 Python 2.x 的兼容。这样导致很长时间以来,Python 2.x 的用户不愿意升级到 Python 3.0,这种割裂一度影响了 Python 的应用。 毕竟大势不可抵挡,开发者逐渐发现 Python 3.x 更简洁、更方便。现在,绝大部分开发者已经从 Python 2.x 转移到 Python 3.x,但有些早期的 Python 程序可能依然使用了 Python 2.x 语法。 2009 年 6 月,Python 发布了 3.1 版本。 2011 年 2 月,Python 发布了 3.2 版本。 2012 年 9 月,Python 发布了 3.3 版本。 2014 年 3 月,Python 发布了 3.4 版本。 2015 年 9 月,Python 发布了 3.5 版本。 2016 年 12 月,Python 发布了 3.6 版本。 ......

05

一次发布有多个发行版,为什么Python发行包会这么难?

大多数编程语言包的生态系统都有两个层级(level):每个包都有一个或多个发布(release),每一次发布都可以用版本号(version)进行区分。Python 有第三个层级:每个发布都有一个或多个发行版(distribution),下载安装包时下载的实际文件就是这些发行版。在大多数语言中,这些文件都是发布的同义词,但是在Python 中「一个发布有多个发行版」是很重要的,因为使用最广泛的那些包,大多数发布实际上都有多个发行版。 为什么会这样呢?因为 Python 的特殊之处在于,它将 C 扩展(extension)视为该语言的一流特性,并试图隔离包的使用与编译 C 扩展。这意味着发行版需要包含编译 C 扩展后的得到的二进制代码,这种发行版(在其现代迭代中)被称为 binary wheels。 但是 C 扩展通常需要针对特定的 Python 版本和操作系统进行编译,因此需要使用多个 wheels 来实现普适性。此外,由于包的作者不能预测出所有的 Python 版本和操作系统,所以包含一个由包用户负责编译的源发行版也很重要。 尽管如此,用户们和大多数工具考虑的仍然是发布版本(release),而不是特定的发行版(distribution)。这可能会引起极大的不协调。例如,在一台机器上安装一个包可能需要几秒钟(因为存在匹配的二进制发行版),在另一台机器上可能需要几分钟甚至几个小时。 即使两台机器都能找到合适的二进制发行版来安装,它们的哈希值也不匹配,检测 MitM 攻击也会因此变得更加困难。因为 pip 这样的工具会自动找到在发布下「最合适」的发行版,当一个发行版与给定的系统兼容时会偏向于选择 binary wheel,如果有多个发行版与此系统兼容,则选择最合适的 binary wheel,如果不兼容,则返回到源发行版。 如果你已经安装了发布下的一个发行版之后,该发布又有一个新的发行版,这时就会出现很大的问题。而且这个问题几乎是不可避免的——因为 PyPI 一次只允许上传一个发行版,并会创建一包含这个发行版的新发布,所以在你上传最后一个发行版之前,一定会有人已经下载了第一个发行版。 在使用自动编译程序(buildbot)并行构建不同的发行版之后,这个问题变得更加常见,二进制发行版一般要比源发行版花费更长的时间。当一个包的作者在发布后的几个月或几年里,再去添加对新平台(或 python 的新版本)的支持时,这种情况就变得更糟糕了。当这种情况发生时,会有以下一些问题:

04

Python+selenium 实现自动上传并发布小红书号短视频实例演示

- - - -系列文章- - - - Python+selenium 自媒体自动化 - 实现自动投稿、自动发布哔哩哔哩 B 站短视频实例演示 Python+selenium 自媒体自动化 - 实现自动上传并发布微视短视频实例演示 Python+selenium 自媒体自动化 - 实现自动上传并发布搜狐号短视频实例演示 Python+selenium 自媒体自动化 - 实现自动上传并发布一点号短视频实例演示 Python+selenium 自媒体自动化 - 实现自动上传并发布快手短视频实例演示 Python+selenium 自媒体自动化 - 实现自动上传并发布抖音短视频实例演示 Python+selenium 自媒体自动化 - 实现自动上传并发布好看短视频实例演示 Python+selenium 自媒体自动化 - 实现自动上传并发布微信视频号视频实例演示 Python+selenium 自媒体自动化 - 实现自动上传并发布西瓜视频实例演示

04

Python+selenium 实现自动上传并发布大风号短视频实例演示

- - - -系列文章- - - - Python+selenium 自媒体自动化 - 实现自动投稿、自动发布哔哩哔哩 B 站短视频实例演示 Python+selenium 自媒体自动化 - 实现自动上传并发布微视短视频实例演示 Python+selenium 自媒体自动化 - 实现自动上传并发布搜狐号短视频实例演示 Python+selenium 自媒体自动化 - 实现自动上传并发布一点号短视频实例演示 Python+selenium 自媒体自动化 - 实现自动上传并发布快手短视频实例演示 Python+selenium 自媒体自动化 - 实现自动上传并发布抖音短视频实例演示 Python+selenium 自媒体自动化 - 实现自动上传并发布好看短视频实例演示 Python+selenium 自媒体自动化 - 实现自动上传并发布微信视频号视频实例演示 Python+selenium 自媒体自动化 - 实现自动上传并发布西瓜视频实例演示 Python+selenium 自媒体自动化 - 实现自动上传并发布小红书号短视频实例演示

02
领券