Python
简介
Python 是一种解释型、面向对象、动态数据类型的高级程序设计语言。
Python 由 吉多-范罗苏姆(Guido van Rossum、龟叔) 于 1989 年底发明,第一个公开发行版发行于 1991 年。
像 Perl 语言一样, Python 源代码同样遵循 GPL(GNU General Public License) 协议。
特点
- 可读性强
一个程序会被反复的修改,可读性强意味着让你可以在更短时间内学习和记忆,直接提高生产率。 - 简洁
程序员每天可编写的有效代码数是有限的。完成同样功能只用一半的代码,其实就是提高了一倍的生产率。
Python 是由C 语言开发,但是不再有C语言中指针等复杂数据类型,Python的简洁性让开发难度和代码幅度大幅降低,开发任务大大简化。程序员再也不需要关注复杂的语法,而是关注任务本身。 - 面向对象
- 免费和开源
- 可移植性和跨平台
Python会被编译成与操作系统相关的二进制代码,然后再解释执行。这种方式和java类似,大大提高了执行速度,也实现了跨平台。 - 丰富的库(丰富的标准库,多种多样的扩展库)
- 可扩展性。
可嵌入到C和C++语言。胶水式语言。
应用范围
- 网站开发
我们都熟悉网站开发,它是Python最典型的应用程序之一 。是Python附带的各种各样的框架和内容管理系统(CMS),它们可以简化Web开发人员的工作。这些网络开发框架的热门示例包括:Flask,Django,Pyramid,Bottle,著名的内容管理系统包括Django CMS , PloneCMS 和Wagtail 。
使用Python进行Web开发还具有其他一些好处,例如安全性,易伸缩性和便利性。更重要的是,Python带有对各种Web协议(如HTML,XML,常用的电子邮件协议,FTP)的开箱即用的支持。Python还拥有最大的库集合,这些库不仅可以增强Web应用程序的功能,而且使其更容易实现。
- 游戏开发
就像Web开发一样,Python配备了用于游戏开发的大量工具和库。(2000年代初非常流行的射击游戏《战地风云2》)是用Python开发的。
Python提供了很多2D和3D游戏开发库,包括:pygame,Pycap ,Construct, Panda3D,PySoy ,PyOpenGL。
Python还被用于开发一些现代流行的游戏, 例如《 模拟人生4》,《坦克世界》,《文明IV》和《夏娃在线》,开发员大量使用Python来完成很多任务。Mount&Blade,Doki Doki文学俱乐部,Frets on Fire和迪士尼的Toontown Online等游戏也用到了Python。
- 人工智能与机器学习
Python的稳定性和安全性使其成为处理大数据,以及构建机器学习系统的理想编程语言。更重要的是,Python大量的库促进了运行现代AI和ML系统的模型和算法的开发,一些受欢迎的三方库包括:
Scipy -- 科学和数值计算
Pandas -- 用于数据分析和处理
Keras -- 人工神经网络
TensorFlow -- 执行机器学习任务,尤其是深度神经网络
Numpy -- 复杂的数学函数和计算
Scikit-Learn -- 构建通用机器学习模型
- GUI开发(图形用户界面开发)
有时候应用程序只需要提供接口(API)即可,但是我们知道有些项目必须具有GUI,对于那些项目,Python为开发人员提供了很多选择来构建功能齐全的GUI。
Python易于理解的语法和模块化编程方法是创建快速响应的GUI的关键,同时使整个开发过程变得轻而易举。使用Python进行GUI开发的常用工具包括: PyQt、Tkinter、Python GTK+、wxWidgets、Kivy
- 图像处理
由于越来越多地使用机器学习,深度学习和神经网络,因此图像(预处理)工具的作用也猛增。为了满足这一需求,Python提供了许多库,这些库简化了数据科学家的许多初始准备工作。
一些流行的图像处理Python库包括OpenCV ,Scikit-Image和Python Imaging Library(PIL)。
使用Python的更常见的图像处理应用程序包括:GIMP , Corel PaintShop,Blender 和Houdini。
- 文本处理
文本处理是Python最常见的用途之一,文本处理使你可以处理大量文本,同时还可以根据需要灵活地构造文本。如果你正在考虑对行进行排序,提取文本,重新格式化段落等,就需要使用文本处理工具。
- 教育和培训项目
Python为所有想学习编程的初学者提供了一个完美的切入点。原因很简单,Python的语法与常规英语非常相似,因此易于理解和使用。与其他编程语言相比,Python的学习曲线更短,目前市场上有大量提供Python技能培训的课程。
- 音频和视频应用
Python可以用于构建音频和视频应用程序,诸如Pyo,pyAudioAnalysis,Dejavu之类的库可以轻松地处理基本信号处理,生成创造性的音频,音频识别等任务。至于视频部分,Python提供了几个库,例如Scikit-video,OpenCV 和SciPy,可以帮助您处理和准备供其他应用程序使用的视频。
用Python编写的流行音频和视频应用程序包括Spotify,Netflix和YouTube等大型公司。
- 网络爬虫
互联网拥有大量免费的信息。网络爬虫就是从不同的网站上爬取数据,然后存储在一个地方。一旦有了数据,个人和组织就可以利用这些数据解决一系列相关问题。
用于构建爬虫的著名工具包括:requests,BeautifulSoup ,MechanicalSoup ,Selenium等。
爬虫广泛用于价格跟踪器,研究和分析,社交媒体的情绪分析,机器学习项目等等。
- 数据科学与数据可视化
数据在现代世界中起着决定性的作用。通过收集和分析人们对有关事物的看法,能够对他们的行为做出预测。数据科学涉及识别问题,数据收集,数据处理,数据探索,数据分析和数据可视化。
Python生态系统提供了几个库,可以帮助您直接解决数据科学问题,例如: TensorFlow、PyTorch、Pandas、Scikit-Learn、Numpy
当您需要将研究结果传达用户或团队成员时,数据可视化就发挥了作用。Python生态系统用于数据可视化的库包括: Plotly、Matplotlib、Seaborn、Ggplot、Geoplotlib
- 科学和数字应用
对于不是专门来自AI,ML和DS领域,但仍需要线性代数,高级数学等类似形式的密集计算的项目,Python也为它们配备了完善的工具。这些工具包括Pandas ,IPython ,SciPy, NumericPython,Matplotlib等等。
- 软件开发
使用Python进行编程的范围不仅限于Web开发,游戏开发,科学甚至嵌入式系统。Python的各个方面使得它非常适合任何类型的软件开发。Python提供了许多功能,例如快速执行,高度兼容性,强大的社区支持以及大量的库。
使用Python构建的一些软件开发工具是Roundup,Buildbot,SCons,Mercurial,Orbiter和Allura。
最重要的是,Python能够与人工智能,机器学习和数据科学等不断发展的技术一起使用,使其成为众多开发人员的首选编程语言。除了用作项目中的主要编程语言之外,软件开发人员还使用Python作为项目管理,构建控制和测试的支持编程语言。
- 操作系统
操作系统是计算机的大脑。Python是为基于Linux的操作系统提供支持的众多编程语言之一。
现实世界中Python应用程序的两个流行实例来自Ubuntu的Ubiquity Installer和Red Hat Enterprise的Anaconda Installer,它们都是使用Python构建的。
同样, Gentoo Linux和Google的Chrome OS的程序包管理系统Portage也是用Python构建的。众所周知的事实是,C和Python的组合在设计和开发操作系统方面具有很高的优势。
- CAD应用
计算机辅助设计(CAD)应用主要用于汽车,航空航天,建筑等行业的产品设计,CAD应用程序使产品设计师和工程师能够设计精度高达毫米级的产品。
Python凭借其高度流行和高效的产品(例如FreeCAD,Fandango,PythonCAD,Blender和VintechRCAM)征服了CAD领域。 这些应用程序提供了行业标准的功能,例如宏录制,工作台,机器人模拟,草绘器,对多格式文件导入/导出的支持,技术绘图模块等等。
- 嵌入式应用
到目前为止,Python最吸引人的应用场景之一是能够在嵌入式硬件上运行。嵌入式硬件是一台微型计算机,旨在执行有限的操作。嵌入式应用程序是驱动硬件(即固件)的驱动力。这些应用程序的热门示例包括MicroPython,Zerynth,PyMite和EmbeddedPython。
到今天为止,我们已经有了详尽的嵌入式设备清单,因为它们几乎无处不在。例如,数码相机,智能手机,RaspberryPi和工业机器人只是可以用Python控制的众多设备中的一部分。此外,Python也可以用作设备固件中的抽象层,而C/C ++则负责处理系统级的工作。
什么时候不应该用 Python
Python是解释执行。性能较低。
因此,一些影响性能的功能可以使用C/C++/JAVA/GO (GO是一种新语言,写起了像Python,性能像C)去开发。
Python解释器
Python 程序的执行依赖于Python 解释器。常用的 Python 解释器有:
- CPython
使用c语言实现的解释器,最常用的解释器。通常说的解释器指的就是它。 - Jython
使用 java 语言实现的解释器。Jython 可以直接调用 java 类库,适合在java 平台上开发 - IronPython.NET
平台上使用的解释器。可直接调用.NET 平台的类,适合.NET 平台上开发 - PyPy
使用Python 语言实现的解释器