Python是一种易于学习又功能强大的编程语言外文翻译资料

 2021-10-27 09:10

Python is an easy to learn, powerful programming language. It has efficient high-level data structures and a simple but effective approach to object-oriented programming. Pythonrsquo;s elegant syntax and dynamic typing, together with its interpreted nature, make it an ideal language for scripting and rapid application development in many areas on most platforms.

The Python interpreter and the extensive standard library are freely available in source or binary form for all major platforms from the Python Web site, https://www.python.org/, and may be freely distributed. The same site also contains distributions of and pointers to many free third party Python modules, programs and tools, and additional documentation.

The Python interpreter is easily extended with new functions and data types implemented in C or C (or other languages callable from C). Python is also suitable as an extension language for customizable applications.

This tutorial introduces the reader informally to the basic concepts and features of the Python language and system. It helps to have a Python interpreter handy for hands-on experience, but all examples are self-contained, so the tutorial can be read off-line as well.

For a description of standard objects and modules, see The Python Standard Library. The Python Language Reference gives a more formal definition of the language. To write extensions in C or C , read Extending and Embedding the Python Interpreter and Python/C API Reference Manual. There are also several books covering Python in depth.

This tutorial does not attempt to be comprehensive and cover every single feature, or even every commonly used feature. Instead, it introduces many of Pythonrsquo;s most noteworthy features, and will give you a good idea of the languagersquo;s flavor and style. After reading it, you will be able to read and write Python modules and programs, and you will be ready to learn more about the various Python library modules described in The Python Standard Library.

If you do much work on computers, eventually you find that therersquo;s some task yoursquo;d like to automate. For example, you may wish to perform a search-and-replace over a large number of text files, or rename and rearrange a bunch of photo files in a complicated way. Perhaps yoursquo;d like to write a small custom database, or a specialized GUI application, or a simple game.

If yoursquo;re a professional software developer, you may have to work with several C/C /Java libraries but find the usual write/compile/test/re-compile cycle is too slow. Perhaps yoursquo;re writing a test suite for such a library and find writing the testing code a tedious task. Or maybe yoursquo;ve written a program that could use an extension language, and you donrsquo;t want to design and implement a whole new language for your application.

Python is just the language for you.

You could write a Unix shell script or Windows batch files for some of these tasks, but shell scripts are best at moving around files and changing text data, not well-suited for GUI applications or games. You could write a C/C /Java program, but it can take a lot of development time to get even a first-draft program. Python is simpler to use, available on Windows, Mac OS X, and Unix operating systems, and will help you get the job done more quickly.

Python is simple to use, but it is a real programming language, offering much more structure and support for large programs than shell scripts or batch files can offer. On the other hand, Python also offers much more error checking than C, and, being a very-high-level language, it has high-level data types built in, such as flexible arrays and dictionaries. Because of its more general data types Python is applicable to a much larger problem domain than Awk or even Perl, yet many things are at least as easy in Python as in those languages.

Python allows you to split your program into modules that can be reused in other Python programs. It comes with a large collection of standard modules that you can use as the basis of your programs — or as examples to start learning to program in Python. Some of these modules provide things like file I/O, system calls, sockets, and even interfaces to graphical user interface toolkits like Tk.

Python is an interpreted language, which can save you considerable time during program development because no compilation and linking is necessary. The interpreter can be used interactively, which makes it easy to experiment with features of the language, to write throw-away programs, or to test functions during bottom-up program development. It is also a handy desk calculator.

Python enables programs to be written compactly and readably. Programs written in Python are typically much shorter than equivalent C, C , or Java programs, for several reasons:

  • the high-level data types allow you to express complex operations in a single statement;
  • statement grouping is done by indentation instead of beginning and ending brackets;
  • no variable or argument declarations are necessary.

Python is extensible: if you know how to program in C it is easy to add a new built-in function or module to the interpreter, either to perform critical operations at maximum speed, or to link Python programs to libraries that may only be available in binary form (such as a vendor-specific graphics library). Once you are really hooked, you can link the Python interpreter into an application written in C and use it as an extension or command language for that application.

By the way, the language is named after the BBC show “Monty Pythonrsquo;s Flying Circus” and has nothing to do with reptiles. Making references to Monty Python skits in documentation is not only allowed, it is encouraged!

Now that you are all excited about Python, yoursquo;ll want to examine it in some more detail. Since the best way to learn a language is to use it, t

Python是一种易于学习又功能强大的编程语言。它提供了高效的高级数据结构,还有简单有效的面向对象编程。Python优雅的语法和动态类型,以及解释型语言的本质,使它成为多数平台上写脚本和快速开发应用的理想语言。

Python解释器及丰富的标准库以源码或机器码的形式提供,可以到Python官网https://www.python.org/免费获取适用于各个主要系统平台的版本,并可自由地分发。这个网站还包含许多免费第三方Python模块、程序和工具以及附加文档的发布页面或链接。

Python解释器易于扩展,可以使用C或C (或者其他可以通过C调用的语言)扩展新的功能和数据类型。Python也可用于可定制化软件中的扩展程序语言。

这个教程非正式地介绍Python语言和系统的基本概念和功能。最好在阅读的时候准备一个Python解释器进行练习,不过所有的例子都是相互独立的,所以这个教程也可以离线阅读。

有关标准的对象和模块,参阅Python标准库。Python语言参考提供了更正式的语言参考。想要编写C或者C 扩展可以参考扩展和嵌入Python解释器和Python/CAPI参考手册。也有不少书籍深入讲解Python。

这个教程并没有完整包含每一个功能,甚至常用功能可能也没有全部涉及。这个教程只介绍Python中最值得注意的功能,也会让你体会到这个语言的风格特色。学习完这个教程,你将可以阅读和编写Python模块和程序,也可以开始学习更多的Python库模块,详见Python标准库。

如果你经常在电脑上工作,总会有些任务会想让它自动化。比如,对一大堆文本文件进行查找替换,对很多照片文件按照比较复杂的规则重命名并放入不同的文件夹。也可能你想写一个小型的数据库应用,一个特定的界面应用,或者一个简单的游戏。

如果你是专业的软件开发人员,你可能需要编写一些C/C /Java库,但总觉得通常的开发的流程(编写、编译、测试、再次编译等)太慢了。可能给这样的库写一组测试,就是很麻烦的工作了。或许你写了个软件,可以支持插件扩展语言,但你不想为了自己这一个应用,专门设计和实现一种新语言了。

那么,Python正好能满足你的需要。

对于这些任务,你也可以写Unix脚本或者Windows批处理完成,但是shell脚本最擅长移动文件和替换文本,并不适合GUI界面或者游戏开发。你可以写一个C/C /Java程序,但是可能第一版本的草稿都要很长的开发时间。Python的使用则更加简单,可以在Windows,MacOSX,以及Unix操作系统上使用,而且可以帮你更快地完成工作。

Python很容易使用,但它是一种真正的编程语言,提供了很多数据结构,也支持大型程序,远超shell脚本或批处理文件的功能。Python还提供比C语言更多的错误检查,而且作为一种“超高级语言”,它有高级的内置数据类型,比如灵活的数组和字典。正因为这些更加通用的数据类型,Python能够应付更多的问题,超过Awk甚至Perl,而且很多东西在Python中至少和那些语言同样简单。

Python允许你划分程序模块,在其他的Python程序中重用。它内置了很多的标准模块,你可以在此基础上开发程序——也可以作为例子,开始学习Python编程。例如,文件输入输出,系统调用,套接字,甚至图形界面接口工作包比如Tk。

Python是一种解释型语言,在程序开发阶段可以为你节省大量时间,因为不需要编译和链接。解释器可以交互式使用,这样就可以方便地尝试语言特性,写一些一次性的程序,或者在自底向上的程序开发中测试功能。它也是一个顺手的桌面计算器。

Python程序的书写是紧凑而易读的。Python代码通常比同样功能的C,C ,Java代码要短很多,原因列举如下:

  • 高级数据类型允许在一个表达式中表示复杂的操作;
  • 代码块的划分是按照缩进而不是成对的花括号;
  • 不需要预先定义变量或参数。

Python是“可扩展的”:如果你知道怎么写C语言程序,就能很容易地给解释器添加新的内置函数或模块,不论是让关键的程序以最高速度运行,还是把Python程序链接到只提供预编译程序的库(比如硬件相关的图形库)。一旦你真正链接上了,就能在Python解释器中扩展或者控制C语言编写的应用了。

顺便提一下,这种语言的名字(Python意为“蟒蛇”)来自于BBC节目“MontyPython的飞行马戏团”,而与爬行动物没有关系。在文档中用MontyPython来开玩笑不只是可以的,还是推荐的!

现在你已经对Python跃跃欲试了,想要深入了解一些细节了。因为学习语言的最佳方式是使用它,本教程邀请你一边阅读,一边在Python解释器中玩耍。

在下一章节,会讲解使用解释器的方法。看起来相当枯燥,但是对于尝试后续的例子来说,是非常关键的。

教程的其他部分将通过示例介绍Python语言和系统中的不同功能,开始是比较简单的表达式、语句和数据类型,然后是函数和模块,最终接触一些高级概念,比如异常、用户定义的类。

作为一个流行的开源开发项目,Python拥有一个活跃的贡献者和用户支持社区,这些社区也可以让他们的软件可供其他Python开发人员在开源许可条款下使用。

这允许Python用户有效地共享和协作,从其他人已经创建的解决方案中受益于常见(有时甚至是罕见的)问题,以及可以提供他们自己的解决方案。

本指南涵盖了分发部分的流程。有关安装其他Python项目的指南,请参阅安装指南。

pip是首选的安装程序。从Python3.4开始,它默认包含在Python二进制安装程序中。

virtualenvironment是一种半隔离的Python环境,允许为特定的应用安装各自的包,而不是安装到整个系统。

venv是创建虚拟环境的标准工具,从Python3.3开始成为Python的组成部分。从Python3.4开始,它会默认安装pip到所创建的全部虚拟环境。

virtualenv是venv的第三方替代(及其前身)。它允许在Python3.4之前的版本中使用虚拟环境,那些版本或是完全不提供venv,或是不会自动安装pip到所创建的虚拟环境。

PythonPackagingIndex是一个由Python用户向其他用户发布开源许可软件包的公共仓库。

PythonPackagingAuthority是负责标准打包工具以及相关元数据和文件格式标准维护与改进的开发人员和文档作者团队。他们基于GitHub和BitBucket这两个平台维护着各种工具、文档和问题追踪系统。

distutils是最初的构建和分发系统,于1998年首次加入Python标准库。虽然直接使用distutils的方式已被淘汰,它仍然是当前打包和分发架构的基础,而且它不仅仍然是标准库的一部分,这个名称还以其他方式存在(例如用于协调Python打包标准开发流程的邮件列表就以此命名)。

Python通常非常依赖基于源代码的发布方式,也就是期望最终用户在安装过程中使用源码来编译生成扩展模块。

随着对二进制码wheel格式支持的引入,以及通过PythonPackagingIndex至少发布Windows和MacOSX版的wheel文件,预计此问题将逐步得到解决,因为用户将能够更频繁地安装预编译扩展,而不再需要自己编译它们。

某些用来安装科学计算类软件包的解决方案对于尚未提供预编译wheel文件的那些扩展模块来说,也有助于用户在无需进行本机编译的情况下获取二进制码扩展模块。

CPython参考解释器的一个特性是,除了允许执行Python代码之外,它还公开了一个丰富的CAPI供其他软件使用。此CAPI最常见的用途之一是创建可导入的C扩展,这些扩展允许在纯Python代码中不易实现的内容。

二进制扩展的典型用例分为三个常规类别:

  • 加速器模块:这些模块是完全独立的,并且只是为了比CPython中运行的等效纯Python代码运行得更快。理想情况下,如果加速版本在给定系统上不可用,加速器模块将始终具有纯Python等效用作后备。CPython标准库广泛使用加速器模块。
  • 包装器模块:创建这些模块是为了将现有的C接口暴露给Python代码。它们可以直接暴露底层C接口,或者暴露更多“Pythonic”API,利用Python语言功能使API更易于使用。CPython标准库广泛使用包装器模块。
  • 低级系统访问:创建这些模块是为了访问CPython运行时,操作系统或底层硬件的低级功能。通过特定于平台的代码,扩展模块可以实现纯Python代码中不可能实现的功能。许多CPython标准库模块都是用C语言编写的,以便访问未在语言级别公开的解释器内部。

C扩展的一个特别值得注意的特性是,当它们不需要回调到解释器运行时时,它们可以围绕长时间运行的操作释放CPython的全局解释器锁(无论这些操作是CPU还是IO绑定)。

并非所有扩展模块都能完全适合上述类别。例如,NumPy中包含的扩展模块跨越所有三种用例-它们出于速度原因将内部循环移动到C,包装用C,FORTRAN和其他语言编写的外部库,并为CPython和底层使用低级系统接口操作系统,支持矢量化操作的并发执行,并严格控制创建对象的确切内存布局。

使用二进制扩展的主要缺点是它使得后续软件分发更加困难。使用Python的一个优点是它主要是跨平台的,用于编写扩展模块的语言(通常是C或C ,但实际上任何可以绑定到CPythonCAPI的语言)通常都要求为其创建自定义二进制文件不同的平台。

这意味着二进制扩展:

  • 要求最终用户能够从源代码构建它们,或者有人为常见平台发布预构建的二进制文件
  • 可能与CPython参考解释器的不同构建不兼容
  • 通常无法与PyPy,IronPython或Jython等替代解释器一起正常工作
  • 如果手动编码,通过要求维护者不仅熟悉Python,而且熟悉用于创建二进制扩展的语言,以及CPythonCAPI的详细信息,使维护更加困难。
  • 如果提供纯Python回退实现,则要求在两个位置实现更改,并在测试套件中引入额外的复杂性以确保始终执行两个版本,从而使维护更加困难。

依赖二进制扩展的另一个缺点是替代导入机制(例如直接从zip文件导入模块的能力)通常不适用于扩展模块(因为大多数平台上的动态加载机制只能从磁盘加载库)。

当扩展模块刚刚用于使代码运行得更快时(在分析确定了速度增加值得额外维护工作的代码之后),还应考虑许多其他替代方案:

  • 寻找现有的优化替代品。CPython标准库包含许多优化的数据结构和算法(特别是在内置collections和itertools模块中)。PythonPackageIndex还提供了其他选择。有时,适当选择标准库或第三方模块可以避免创建自己的加速器模块。
  • 对于长时间运行的应用程序,JIT编译的PyPy解释器可以提供标准CPython运行时的合适替代方案。采用PyPy的主要障碍通常是依赖于其他二进制扩展模块-而PyPy模拟CPythonCAPI,依赖于此的模块会导致PyPyJIT出现问题,而仿真层经常会暴露CPython扩展模块中的潜在缺陷目前容忍(经常围绕引用计数错误-具有一个实时引用的对象而不是两个通常不会破坏任何东西,但是没有引用而不是一个是主要问题)。
  • Cython是一个成熟的静态编译器,可以将大多数Python代码编译为C扩展模块。初始编译提供了一些速度提升(通过绕过CPython解释器层),Cython的可选静态类型功能可以为速度提升提供额外的机会。使用Cython仍然具有增加分发生成的应用程序的复杂性的缺点,但是具有减少Python程序员进入门槛的优点(相对于其他语言,如C或C )。
  • Numba是一个更新的工具,由科学Python社区的成员创建,旨在利用LLVM允许在运行时选择性地将Python应用程序的部分编译为本机机器代码。它要求LLVM在运行代码的系统上可用,但可以显着提高速度,特别是对于适合矢量化的操作。

CABI(应用程序二进制接口)是在多个应用程序之间共享功能的通用标准。CPythonCAPI(应用程序编程接口)的优势之一是允许Python用户使用该功能。然而,手工包装模块是相当繁琐的,因此应该考虑许多其他替代方法。

下面描述的方法根本不简化分发情况,但是它们可以显着减少使包装器模块保持最新的维护负担。

  • 除了用于创建加速器模块之外,Cython还可用于创建包装器模块。它仍然涉及手工包装接口,因此可能不是包装大型API的好选择。
  • cffi是一些由PyPy开发人员创建的项目,它使已经熟悉Python和C的开发人员可以直接将他们的C模块暴露给Python应用程序。它还使基于其头文件包装C模块变得相对简单,即使您自己不了解C也是如此。

其中一个关键优势cffi是它与PyPyJIT兼容,允许CFFI包装器模块完全参与PyPy的跟踪JIT优化。

  • SWIG是一个包装器接口生成器,它允许各种编程语言(包括Python)与C和C 代码进行交互。
  • ctypes当标头信息不可用时,标准库的模块虽然可用于访问C级接口,但是它只能在CABI级别运行,因此在实际导出的接口之间没有自动一致性检查。库和Python代码中声明的库。相比之下,上述替代方案都能够在CAPI级别上运行,使用C头文件来确保被包装的库导出的接口与Python包装器模块所期望的接口之间的一致性。虽然cffi可以直接在CABI级别运行,但它会遇
原文和译文剩余内容已隐藏,您需要先支付 20元 才能查看原文和译文全部内容!立即支付

以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。