python简介

在这里插入图片描述
Python 是一门优雅而健壮的编程语言,它继承了传统编译语言的强大性和通用性,同时也借鉴了脚本语言和解释语言的易用性。

Python 的历史

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

在这里插入图片描述
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就是 “明了胜于晦涩” 的简写。
在这里插入图片描述

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++语言改写这部分程序。

而且你自己的时间是宝贵的资源,比CPU时间更珍贵。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版本。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

多张图片转为pdf怎么弄?

多张图片转为pdf怎么弄?在网络传输过程中,为了避免图片格式文件出现差错,并确保图片的清晰度和色彩不因不同设备而有所改变,常见的做法是将图片转换为PDF格式。然而,当涉及到多张图片时,逐一转换将会变得相…

PyCharm切换虚拟环境

PyCharm切换虚拟环境 为了满足不同任务需要不同版本的包,可以在Anaconda或者Miniconda创建多个虚拟环境文件夹,并在PyCharm下切换虚拟环境。 解决方案 1、打开Ananconda Prompt 2、创建自己的虚拟环境 格式:conda create -n 虚拟环境名字…

虚拟机的使用

首先需要安装VMware软件,这是虚拟机,在里面可以实现在windows的笔记本上运行包括,windows11和linux系统的开发和研究。 VMware是一种虚拟化技术,可以让你在一台物理计算机上运行多个操作系统和应用程序,而不需要重启或…

如何在,Linux中安装Luajit2.*

1.文件下载The LuaJIT Project 2.将下载文件上传到对应的服务器:例如/opt 3.进入对应的文件夹 4.make PREFIX/usr/local,设置安装路径 5.make install,编译安装 6.进入安装目录,cd /usr/local/include/luajit-2.0 7.luajit -v…

目标检测笔记(十二):如何通过界面化操作YOLOv5完成数据集的自动标注

文章目录 一、意义二、修改源码获取三、自动标注前期准备四、开始自动标注五、可视化标注效果六、XML转换TXT 一、意义 通过界面化操作YOLOv5完成数据集的自动标注的意义在于简化数据标注的流程,提高标注的效率和准确性。 传统的数据集标注通常需要手动绘制边界框…

第三届计算机、物联网与控制工程国际学术会议(CITCE 2023)

第三届计算机、物联网与控制工程国际学术会议(CITCE 2023) The 3rd International Conference on Computer, Internet of Things and Control Engineering(CITCE 2023) 第三届计算机、物联网与控制工程国际学术会议(CITCE 2023)…

ChatGPT在医疗领域可应用于改善与患者的沟通

注意:本信息仅供参考,发布该内容旨在传递更多信息的目的,并不意味着赞同其观点或证实其说法。 自从ChatGPT在2022年末对公众开放以来,OpenAI的这款生成式AI聊天机器人在医疗领域展示出了巨大潜力。它已经通过了美国医学执照考试&a…

NameError: name ‘_mysql‘ is not defined

报错信息 Traceback (most recent call last):File "/Users/xuruilong/Desktop/cmabc_back/.enve/lib/python3.9/site-packages/MySQLdb/__init__.py", line 18, in <module>from . import _mysql ImportError: dlopen(/Users/xuruilong/Desktop/cmabc_back/.…

无涯教程-Android - Intents/Filters

Android Intent 是要执行的操作的抽象描述。它可以与 startActivity 一起启动Activity&#xff0c;将 broadcastIntent 发送给任何BroadcastReceiver组件&#xff0c;并与 startService(Intent)或 bindService(Intent&#xff0c;ServiceConnection&#xff0c;int)与后台服务进…

Linux驱动——Tiny4412芯片_Source Insight的下载+Linux3.5内核下工程的创建

文章目录 前言Source Insight的下载1.下载地址2.下载步骤 linux3.5内核下工程的创建 前言 本博客仅作为笔记总结&#xff0c;以及帮助有需要的人&#xff0c;不作权威解释。 Source Insight的下载 1.下载地址 官网&#xff1a;https://www.sourceinsight.com/ 另外可以选择…

WPF C# .NET7 基础学习

学习视频地址&#xff1a;https://www.bilibili.com/video/BV1hx4y1G7C6?p3&vd_source986db470823ebc16fe0b3d235addf050 开发工具&#xff1a;Visual Studio 2022 Community 基础框架&#xff1a;.Net 6.0 下载创建过程略 .Net和.Framework 区别是Net是依赖项&#xff…

C语言(第三十天)

1. 什么是bug bug本意是昆虫”或“虫子”&#xff0c;现在一般是指在电脑系统或程序中&#xff0c;隐藏着的一些未被发现的缺陷或问 题&#xff0c;简称程序漏洞。 “Bug” 的创始人格蕾丝赫柏&#xff08;Grace Murray Hopper&#xff09;&#xff0c;她是一位为美国海军工作的…

不需要任何编程经验也能牢固掌握Java精髓——《Java官方入门教程(第9版·Java 17)》

《Java官方入门教程&#xff08;第9版Java 17&#xff09;》针对Java SE 17做了全面细致的更新&#xff0c;将引导你轻松学习最新的核心Java编程技能。《Java官方入门教程&#xff08;第9版Java 17&#xff09;》由畅销编程书作者Herbert Schildt撰写&#xff0c;开篇讲述基础知…

运放的选型

一、运放选型 二、运放选型实例 选择运放首先要回答三个问题&#xff1a; 1.运放的供电电压是多少&#xff0c;低于5V,12-16V之间&#xff0c;大于24V 2.运算放大器的增益带宽积和压摆率 3.性能 负载考虑的是Isc 不是轨到轨供电电压要高于最大输出电压2V

1.Python操作txt文本

文章目录 1.Python读取一个txt文件的内容并将其写入到另一个txt文件2.Python读取一个未知编码的文件并将其设置为指定编码格式3.Python实现txt文件中字符串的替换 1.Python读取一个txt文件的内容并将其写入到另一个txt文件 # -*- encoding:gb2312 -*- import chardetdef read_…

华为云软件精英实战营——感受软件改变世界,享受Coding乐趣

机器人已经在诸多领域显现出巨大的商业价值&#xff0c;华为云计算致力于以云助端的方式为机器人产业带来全新机会 如果您是开发爱好者&#xff0c;想了解华为云&#xff0c;想和其他自由开发者交流经验&#xff1b; 如果您是学生&#xff0c;想和正在从事软件开发行业的大佬…

Collections和CollectionUtils集合操作

0.引入依赖 <dependency><groupId>org.apache.commons</groupId><artifactId>commons-collections4</artifactId><version>4.4</version> </dependency> 一.Collections用法&#xff1a; 01、排序操作 reverse(List list)…

【跨域异常】

想在前端使用vue获取后端接口的数据&#xff0c;但是报了跨域异常&#xff0c;如下图所示。 一种解决的方式是&#xff0c;在后端Controller接口上加上CrossOrigin&#xff0c;从后端解决跨域问题。 还要注意前端请求的url要加上协议&#xff0c;比如http://

Maven之hibernate-validator 高版本问题

hibernate-validator 高版本问题 hibernate-validator 的高版本&#xff08;邮箱注解&#xff09;依赖于高版本的 el-api&#xff0c;tomcat 8 的 el-api 是 3.0&#xff0c;满足需要。但是 tomcat 7 的 el-api 只有 2.2&#xff0c;不满足其要求。 解决办法有 2 种&#xff…