python编程语言介绍-Python基础手册 1 —— Python语言介绍

2023-10-27

01fc43b4462a

python-logo.png

Python 是一门优雅而健壮的编程语言,它继承了传统编译语言的强大性和通用性,同时也借鉴了脚本语言和解释语言的简单性和易用性。

一、Python 的历史

Python是由创始人贵铎·范·罗萨姆(Guido van Rossum)在阿姆斯特丹于1989年圣诞节期间,为了打发圣诞节的无趣,开发的一个新的解释型脚本语言。之所以选中Python(大蟒蛇的意思)作为该编程语言的名字,是因为他是BBC当时正在热播的喜剧连续剧"Monty Python”的爱好者。

01fc43b4462a

Guido van Rossum.jpg

Python的第一个公开发行版发行于1991年,它是纯粹的自由软件, 源代码和解释器(CPython)都遵循 GPL(GNU General Public License)协议。

二、Python 的设计思想

Python被设计成是 "符合大脑思维习惯” 的,采用极简主义的设计理念,加以统一规范的交互模式。这使得Python易于学习、理解和记忆。Python 开发者的哲学是 "用一种方法,最好是只有一种方法来做一件事”。

Python是完全面向对象的编程语言,函数、模块、数字、字符串等内置类型都是对象。它的类支持多态、操作符重载、和多重继承等高级OOP概念,并且Python特有的简洁的语法和类型使得OOP十分易于使用。当然OOP只是Python的一个选择而已,就像C++一样,Python既支持面向对象编程,也支持面向过程编程的模式。

Python是一种解释型语言,目前Python的标准实现方式是将源代码的语句编译(转换)为字节码格式,然后通过解释器将字节码解释出来。Python没有将代码编译成底层的二进制代码,所以相较于C和C++等编译型语言,Python的执行速度会慢一些。但是Python的解释型语言特性提高了开发者开发速度,同时使它拥有解释型语言易于编写和调试等优点。

Python本身被设计为可扩展的,并非所有的特性和功能都集成到语言核心。Python提供了丰富的API和工具,以便程序员能够轻松地使用C/C++语言来编写扩充模块。Python为我们提供了非常完善的基础代码库,覆盖了正则表达式、网络、多线程、GUI、数据库、等领域。除了内置的库外,Python还有大量的第三方库,供你直接使用。

Python编译器本身也可以被集成到其它需要脚本语言的程序内,因此,很多人还把Python作为一种"胶水语言”(glue language)使用,使用Python将其他语言编写的程序进行集成和封装。2004 年,Python 已在Google 内部使用。Google Engine使用C++编写性能要求极高的部分,然后用Python或Java/Go调用相应的模块。他们的目的是 "Python where we can, C++ where we must",在操控硬件的场合使用 C++,在快速开发时候使用 Python。

注:我们在任意一个Python的交互解释器中输入:import this 命令,就可以看到Python的设计原则。EIBTI就是 "明了胜于晦涩” 的简写。

01fc43b4462a

clipboard.png

三、Python 的优点

1、软件质量高

Python秉承了简洁、清晰的语法,以及高度一致的编程模式。始终如一的设计风格,可以保证开发出相当规范的代码。

针对错误,Python 提供了"安全合理”的退出机制。Python支持异常处理,能有效捕获和处理程序运行时发生的错误,使你能够监控这些错误并进行处理。

Python代码能打包成模块和包,方便管理和发布,很适合团队协同开发。

2、开发速度快

Python致力于开发速度的最优化:简洁的语法、动态的类型、无需编译、丰富的库支持等特性使得程序员可以快速的进行项目开发。Python往往只要几十行代码就可以开发出需要几百行C代码的功能。

Python解析器能很方便地进行代码调试和测试,也可作为一个编程接口嵌入一个应用程序中。 这就使的在开发过程中可以直接进行调试,而避免了耗时而又麻烦的编译过程,大大提高了开发的速度和效率。

在Python 中,由于内存管理是由Python 解释器负责的,所以开发人员就可以从内存管理事务中解放出来,仅仅致力于开发计划中首要的应用程序设计。这使得Python编写的程序错误更少、更加健壮、开发周期更短。

3、功能强大

Python的功能足够强大,本身也足够强壮, 它还有许多面向其他系统的接口,所以完全可以使用 Python 开发整个系统的原型。

为了完成更多特定的任务,Python内置了许多预编码的库工具,从正则表达式到网络编程,再到数据库编程都支持。在web领域、数据分析领域等,Python还有强大的框架帮你快速开发你的服务。例如:Django、TruboGears、Pylons等。

4、易于扩展

Python易于扩展,(对于CPython)可以通过C或C++编写的模块进行功能扩展,使其能够成为一种灵活的黏合语言,可以脚本化处理其他系统和组件的行为。

5、跨平台

Python是跨平台的。在各种不同的操作系统上(Linux、windows、MacOS、Unix等)都可以看到Python 的身影。因为Python 是用C 写的,又由于C 的可移植性,使得Python 可以运行在任何带有ANSI C 编译器的平台上。尽管有一些针对不同平台开发的特有模块,但是在任何一个平台上用Python 开发的通用软件都可以稍事修改或者原封不动的在其他平台上运行。这种可移植性既适用于不同的架构,也适用于不同的操作系统。

四、Python 的缺点

第一个缺点就是运行速度慢。和C/C++程序相比Python的运行速度非常慢,因为Python是解释型语言,你的代码在执行时会一行一行地翻译成CPU能理解的机器码,这个翻译过程非常耗时,所以很慢。而C程序是运行前直接编译成CPU能执行的机器码,所以非常快。不过,根据二八定律,大多数程序对速度要求不高。某些对运行速度要求很高的情况,Python设计师倾向于使用JIT技术,或者用使用C/C++语言改写这部分程序。Python开发速度带来的效益往往比执行速度带来的损失更为重要,尤其是在现代计算机高速的处理能力情况下。

第二个缺点就是代码不能加密。如果要发布你的Python程序,实际上就是发布源代码。这一点跟C语言不同,C语言不用发布源代码,只需要把编译后的机器码发布出去。要从机器码完整反推出C代码是不可能的。

五、Python 的开发方向和应用场景

Web网络开发:

Python提供丰富的模块支持sockets编程,多线程编程,能方便快速地开发网络服务程序。支持最新的XML技术,支持json语言,数据库编程,而且Python的ORM框架,使得操作数据库非常方便。

Python还有优秀的Django、Tornado、Flask等web开发框架,还用众多的开源插件的支持,足以适用各种不同的web开发需求。

自动化运维。

Python对操作系统服务的内置接口,使其成为编写可移植的维护操作系统的管理工具和部件的理想工具。Python程序可以搜索文件和目录树,可以运行其他程序,可以使用进程和线程并行处理。

网络爬虫。

在文本处理方面,python提供的re模块能支持正则表达式,还提供SGML,XML分析模块,许多程序员利用python进行XML程序的开发。

图形处理。

有PIL、Tkinter等图形库支持,能方便进行图形处理。 多媒体应用 ,Python的PyOpenGL模块封装了"OpenGL应用程序编程接口”,能进行二和三维图像处理。PyGame模块可用于编写游戏软件

除此之外,Python还应用于游戏、人工智能、大数据分析、机器人等领域。

六、Python的种类

Cpython:

执行过程:程序----(c解释器)----(字节码)----(机器码)-----cpu

Python的官方版本,这是Python初始的以及维护得最好的实现,使用C编写。新的语言特性一般会最先在这里出现。CPython实现会将源文件(py文件)转换成字节码文件(pyc文件),然后运行在Python虚拟机上。

Jyhton:

执行过程:程序----(java解释器)----(字节码)----(机器码)-----cpu

Python的Java实现,此实现可用作Java应用程序的脚本语言,或可用于使用Java类库创建应用程序,它也经常用于为Java库创建测试。Jython会将Python代码动态编译成Java字节码,然后在JVM上运行。

PyPy:

执行过程:程序----(字节码)----(机器码)-----cpu

完全用Python编写的Python实现。它支持在其他实现中没有找到的几个高级功能,如stackless支持和一个Just in Time编译器。PyPy将Python的源码翻编译成字节码再编译成机器码。

其他类别:Python for .NET、IronPython、RubyPython、Brython ...

七、Python版本

python有两个版本,python 2.X和python 3:

python 2.x的最后一个版本是python2.7(于2010年发布),官方将支持到2020年。

python 3.X的第一个版本python 3.0(于2008年发布)

python 3.X不兼容 Python 2.X版本,官方也有发布python2.6作为过渡到Python 3.0的版本,2.6之后的版本都为过渡版本。

为什么要开发 Python 3.X版本呢?因为 python发展了20多年,里面有很多重复的功能,重复的模块,很多代码也变得不那么简洁,所以Guido决定进行一次彻底的升级,原则是去繁从简,从而有了后续的 Python 3.X版本。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python编程语言介绍-Python基础手册 1 —— Python语言介绍 的相关文章

随机推荐

  • NB-IoT是个什么鬼?

    众所周知 随着物联网技术的发展 联网设备日益迅猛增长 据Gartner预测 2016年将有64亿物联网设备投入使用 同比增长30 并将在2020年达到208亿 在5G物联网时代下 NB IoT作为一个强有力的蜂窝物联网基础网络 无疑将在物联
  • Vue监听滚动实现锚点定位(双向)

    这里很感谢 http www jb51 net article 110325 htm 这篇文章带来的启发 但是我和他不同 网上的方法都是 这样计算滚动条距离窗口顶部的距离 注意是窗口 用的是document对象 Chrome documen
  • 面试准备:Spring/Spring MVC常见面试题汇总

    文章目录 1 Spring框架有什么优点 2 什么是AOP 3 实现AOP的方式 AOP织入的三种时期 Spring AOP是怎么实现的 4 JDK动态代理实现方式 5 PageHelper实现方式 6 什么是IoC 什么是DI 7 Spr
  • NEON技术粗浅认识

    1 简介 微处理器处理数据主要分为以下几种 Single instruction single data SISD Single instruction multiple data vectormode SIMD Single instru
  • 为什么被马斯克解雇了3次,特斯拉自动驾驶团队却越来越强?

    很多人问我 作为一个汽车厂商 怎么样才能够抓住汽车智能化的时代机遇 建立自动驾驶自研能力 因为其中最让人头疼的就是建立人工智能 AI 自研能力 车厂已经意识到自动驾驶自研能力非常重要 2021年6月30日 上汽集团董事长陈虹在股东大会回答股
  • QString,const char*,char*相互直接转换方法

    整合网络上的解决方法 解决方法一 1 string转const char string s abc const char c s s c str const char 转string 直接赋值即可 const char c s abc st
  • Python学习小记(1)—命令指示符

    一 命令指示符如何打开使用 1 使用组合快捷键 Win R 打开运行对话框 然后在打开后面输入 cmd 命令操作符快捷名称 2 电脑的开始 附件里面找到命令提示符入口 二 学习Python时 常用的命令语句 1 当先进入某盘时 直接输入盘的
  • Arduino VS 树莓派:哪个才是你的菜?

    假设你正在寻找一台微型计算机 它能够驱动一台激光炮塔向彩色气球射击 作为一名极客 你可能常会幻想到类似的场景 那么你很可能已经听说过Arduino和树莓派 Raspberry Pi 了 但是却拿不定主意 到底哪种微型计算机才适合你的个人项目
  • centos7的一些变化,firewalld替换iptables、systemctl 替换service

    1 防火墙命令用firewalld取代了iptables了 查看防火墙状态 systemctl status firewalld 临时关闭防火墙命令 reboot之后 防火墙自动起来 systemctl stop firewalld 永久关
  • QGIS加载谷歌地图(google map)方法

    目录 第一步 第二步 将Google提供的网络地图 包括地图和卫星影像等 作为图层加载到QGIS中 有时可辅助地学分析 QGIS已经提供了OpenStreetMap 在 XYZ Tiles 里面加载即可 谷歌街道地图 http mt2 go
  • 同样是做自媒体,为什么有的人能月入过万,你只能月入几块?

    经常有粉丝跟大周说 自媒体的红利期是不是已经过去了呢 收益低 做自媒体的收益还不够交电费的呢 同样是做自媒体 为什么有的人可以月入过万甚至更多 而一些人只能收益个位数甚至赚不到钱 我们都知道小马过河的故事 牛告诉小马河很浅 松鼠告诉小马河很
  • server 2003搭建文件服务器,使用Windows Server 2003搭建安全文件服务器

    ZDNetChina服务器站 8月14日x86技巧 启用并配置文件服务 Windows Server 2003的管理工具中有一项功能叫做 管理您的服务器 启动该工具之后 可以看到当前服务器上启用的所有服务 并可对这些服务进行管理 点击该界面
  • IOC和DI的关系

    IOC 控制反转 全称为 Inverse of Control 将对在自身对象中的一个内置对象的控制反转 反转后不再由自己本身的对象进行控制这个内置对象的创建 而是由第三方系统去控制这个内置对象的创建 简单来说就是把本来在类内部控制的对象
  • LLM Data Pipelines: 解析大语言模型训练数据集处理的复杂流程

    编者按 在训练大语言模型的过程中 构建高质量的训练数据集是非常关键的一步 但关于构建大模型训练所需数据集的通用数据处理流程 Data pipelines 的相关资料极为稀少 本文主要介绍了基于Common Crawl数据集的数据处理流程 首
  • 基于Spring Boot+ Vue的健身房管理系统与实现

    小熊学Java全能学 面试指南 https javaxiaobear cn 摘要 随着健身行业的快速发展 健身房管理系统成为了提高管理效率和用户体验的重要工具 本论文旨在设计与实现一种基于前后端分离的健身房管理系统 通过前后端分离的架构模式
  • R语言笔记:机器学习【决策树(Decision Tree】

    写在开头 我是一个学R的小白 因为读研老师要求开始接触R 记一记笔记留给自己以后回顾 顺便分享出来嘻嘻 我把需要深入的的函数进行介绍 方便了解这些函数的用法 一些简单的函数我就不放出来啦 决策树这部分的笔记主要是利用分类回归法哈 rpart
  • Python_集合去重的底层原理

    Python 集合去重的底层原理 https www cnblogs com linshuhui p 9580620 html
  • JAVA枚举类型(enum)的巧妙应用

    枚举类型的应用 实例 总结 根据接口文档的需求 需要使用通用的返回值类型进行返回 实例 return 调用的error方法就是先new一个ApiRestResponse对象 然后返回 之前在controller层调用的ImoocMallEx
  • Java和Java之父

    詹姆斯 高斯林 James Gosling 1955年5月19日出生于加拿大 是Java编程语言的共同创始人之一 一般公认他为 Java之父 1983年高斯林获得了美国卡内基梅隆大学计算机科学博士学位 博士论文的题目是 The Algebr
  • python编程语言介绍-Python基础手册 1 —— Python语言介绍

    python logo png Python 是一门优雅而健壮的编程语言 它继承了传统编译语言的强大性和通用性 同时也借鉴了脚本语言和解释语言的简单性和易用性 一 Python 的历史 Python是由创始人贵铎 范 罗萨姆 Guido v