<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Python</title>
	<atom:link href="https://www.aitaocui.cn/tag/249829/feed" rel="self" type="application/rss+xml" />
	<link>https://www.aitaocui.cn</link>
	<description>翡翠玉石爱好者聚集地</description>
	<lastBuildDate>Sun, 27 Nov 2022 18:00:43 +0000</lastBuildDate>
	<language>zh-CN</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.1.1</generator>

<image>
	<url>https://www.aitaocui.cn/wp-content/uploads/2022/11/taocui.png</url>
	<title>Python</title>
	<link>https://www.aitaocui.cn</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Python(编程语言)</title>
		<link>https://www.aitaocui.cn/article/361840.html</link>
					<comments>https://www.aitaocui.cn/article/361840.html#respond</comments>
		
		<dc:creator><![CDATA[二分休止符]]></dc:creator>
		<pubDate>Sun, 27 Nov 2022 18:00:43 +0000</pubDate>
				<category><![CDATA[知识]]></category>
		<category><![CDATA[Python]]></category>
		<guid isPermaLink="false">https://www.aitaocui.cn/?p=361840</guid>

					<description><![CDATA[Python是一门开源免费、通用型的脚本编程语言，它上手简单，功能强大，坚持「极简主义」。/n/nPython类库（模块）极其丰富，这使得Python几乎无所不能，不管是传统的We...]]></description>
										<content:encoded><![CDATA[</p>
<article>
<p>Python是一门开源免费、通用型的脚本编程语言，它上手简单，功能强大，坚持「极简主义」。/n/nPython类库（模块）极其丰富，这使得Python几乎无所不能，不管是传统的Web开发、PC软件开发、Linux运维，还是当下火热的机器学习、大数据分析、网络爬虫，Python都能胜任。</p>
</article>
<p><img decoding="async" src="https://www.aitaocui.cn/wp-content/uploads/2022/08/20220828_630b6730ec060.jpg" /></p>
<article>
<h1>基本概念</h1>
<p>Python（KK英语发音：/&#x27;paɪθɑn/,DJ英语发音：/ˈpaiθən/）是一种面向对象、直译式计算机程序设计语言，由Guido van Rossum于1989年底发明。第一个公开发行版发行于1991年。Python语法简捷而清晰，具有丰富和强大的类库。</p>
<p>它常被昵称为胶水语言，它能够很轻松的把用其他语言制作的各种模块（尤其是C/C++）轻松地联结在一起。常见的一种应用情形是，使用python快速生成程序的原型（有时甚至是程序的最终界面），然后对其中有特别要求的部分，用更合适的语言改写。比如3D游戏中的图形渲染模块，速度要求非常高，就可以用C++重写。</p>
<h1>主要特点</h1>
<ol style="list-style-type:decimal">
<li>
<div>易于学习：Python有相对较少的关键字，结构简单，和一个明确定义的语法，学习起来更加简单。</div>
</li>
<li>
<div>易于阅读：Python代码定义的更清晰。</div>
</li>
<li>
<div>易于维护：Python的成功在于它的源代码是相当容易维护的。</div>
</li>
<li>
<div>一个广泛的标准库：Python的最大的优势之一是丰富的库，跨平台的，在UNIX，Windows和Macintosh兼容很好。</div>
</li>
<li>
<div>互动模式：互动模式的支持，您可以从终端输入执行代码并获得结果的语言，互动的测试和调试代码片断。</div>
</li>
<li>
<div>可移植：基于其开放源代码的特性，Python已经被移植（也就是使其工作）到许多平台。</div>
</li>
<li>
<div>可扩展：如果你需要一段运行很快的关键代码，或者是想要编写一些不愿开放的算法，你可以使用C或C++完成那部分程序，然后从你的Python程序中调用。</div>
</li>
<li>
<div>数据库：Python提供所有主要的商业数据库的接口。</div>
</li>
<li>
<div>GUI编程：Python支持GUI可以创建和移植到许多系统调用。</div>
</li>
<li>
<div>可嵌入：可以将Python嵌入到C/C++程序，让程序的用户获得&quot;脚本化&quot;的能力。</div>
</li>
</ol>
<h1>优点</h1>
<p>Python是一种不受局限、跨平台的开源编程语言，它功能强大且简单易学。因而得到了广泛应用和支持。</p>
</p>
<p>ArcGIS9.0社区中引入了Python。此后，Python被视为可供地理处理用户选择的脚本语言并得以不断发展。每个版本都进一步增强了Python体验，从而为您提供更多的功能以及更丰富、更友好的Python体验。</p>
</p>
<p>ESRI已将Python完全纳入ArcGIS中，并将其视为可满足我们用户社区需求的语言。下面仅介绍Pytho的部分优势：</p>
<p>1、易于学习，非常适合初学者，也特别适合专家使用</p>
<p>2、可伸缩程度高，适于大型项目或小型的一次性程序(称为脚本)</p>
<p>3、可移植，跨平台</p>
<p>4、可嵌入(使ArcGIS可脚本化)</p>
<p>5、稳定成熟</p>
<p>6、用户社区规模大</p>
<p>Python已延伸到ArcGIS中，成为了一种用于进行数据分析、数据转换、数据管理和地图自动化的语言，因而有助于提高工作效率。</p>
</p>
<h1>发展历程</h1>
<div></div>
<p>Python的创始人为Guido van Rossum。1989年圣诞节期间，在阿姆斯特丹，Guido为了打发圣诞节的无趣，决心开发一个新的脚本解释程序，做为ABC语言的一种继承。之所以选中Python（大蟒蛇的意思）作为程序的名字，是因为他是一个叫Monty Python的喜剧团体的爱好者。</p>
</p>
<p>ABC是由Guido参加设计的一种教学语言。就Guido本人看来，ABC这种语言非常优美和强大，是专门为非专业程序员设计的。但是ABC语言并没有成功，究其原因，Guido认为是非开放造成的。Guido决心在Python中避免这一错误。同时，他还想实现在ABC中闪现过但未曾实现的东西。</p>
</p>
<p>就这样，Python在Guido手中诞生了。实际上，第一个实现是在Mac机上。可以说，Python是从ABC发展起来，主要受到了Modula-3（另一种相当优美且强大的语言，为小型团体所设计的）的影响。并且结合了Unix shell和C的习惯。</p>
</p>
<h1>其他资料</h1>
<h2 id="a-d427f61e">风格</h2>
<p>Python在设计上坚持了清晰划一的风格，这使得Python成为一门易读、易维护，并且被大量用户所欢迎的、用途广泛的语言。</p>
</p>
<p>设计者开发时总的指导思想是，对于一个特定的问题，只要有一种最好的方法来解决就好了。这在由Tim Peters写的python格言（称为The Zen of Python）里面表述为：There should be one&#8211; and preferably only one &#8211;obvious way to do it. 这正好和Perl语言（另一种功能类似的高级动态语言）的中心思想TMTOWTDI（There&#x27;s More Than One Way To Do It）完全相反。</p>
</p>
<p>Python的作者有意的设计限制性很强的语法，使得不好的编程习惯（例如if语句的下一行不向右缩进）都不能通过编译。其中很重要的一项就是Python的缩进规则。</p>
</p>
<p>一个和其他大多数语言（如C）的区别就是，一个模块的界限，完全是由每行的首字符在这一行的位置来决定的（而C语言是用一对花括号{}来明确的定出模块的边界的，与字符的位置毫无关系）。这一点曾经引起过争议。因为自从C这类的语言诞生后，语言的语法含义与字符的排列方式分离开来，曾经被认为是一种程序语言的进步。不过不可否认的是，通过强制程序员们缩进（包括if，for和函数定义等所有需要使用模块的地方），Python确实使得程序更加清晰和美观。</p>
<h2 id="a-63a5831c">设计定位</h2>
<p>Python的设计哲学是“优雅”、“明确”、“简单”。因此，Perl语言中“总是有多种方法来做同一件事”的理念在Python开发者中通常是难以忍受的。Python开发者的哲学是“用一种方法，最好是只有一种方法来做一件事”。在设计Python语言时，如果面临多种选择，Python开发者一般会拒绝花俏的语法，而选择明确的没有或者很少有歧义的语法。由于这种设计观念的差异，Python源代码通常被认为比Perl具备更好的可读性，并且能够支撑大规模的软件开发。这些准则被称为Python格言。在Python解释器内运行import this可以获得完整的列表。</p>
</p>
<p>Python开发人员尽量避开不成熟或者不重要的优化。一些针对非重要部位的加快运行速度的补丁通常不会被合并到Python内。所以很多人认为Python很慢。不过，根据二八定律，大多数程序对速度要求不高。在某些对运行速度要求很高的情况，Python设计师倾向于使用JIT技术，或者用使用C/C++语言改写这部分程序。可用的JIT技术是PyPy。</p>
</p>
<p>Python是完全面向对象的语言。函数、模块、数字、字符串都是对象。并且完全支持继承、重载、派生、多继承，有益于增强源代码的复用性。Python支持重载运算符和动态类型。相对于Lisp这种传统的函数式编程语言，Python对函数式设计只提供了有限的支持。有两个标准库(functools, itertools)提供了Haskell和Standard ML中久经考验的函数式程序设计工具。</p>
</p>
<p>虽然Python可能被粗略地分类为“脚本语言”（script language），但实际上一些大规模软件开发计划例如Zope、Mnet及BitTorrent，Google也广泛地使用它。Python的支持者较喜欢称它为一种高级动态编程语言，原因是“脚本语言”泛指仅作简单程序设计任务的语言，如shellscript、VBScript等只能处理简单任务的编程语言，并不能与Python相提并论。</p>
</p>
<p>Python本身被设计为可扩充的。并非所有的特性和功能都集成到语言核心。Python提供了丰富的API和工具，以便程序员能够轻松地使用C语言、C++、Cython来编写扩充模块。Python编译器本身也可以被集成到其它需要脚本语言的程序内。因此，很多人还把Python作为一种“胶水语言”（glue language）使用。使用Python将其他语言编写的程序进行集成和封装。在Google内部的很多项目，例如Google Engine使用C++编写性能要求极高的部分，然后用Python或Java/Go调用相应的模块。《Python技术手册》的作者马特利（Alex Martelli）说：“这很难讲，不过，2004年，Python已在Google内部使用，Google召募许多Python高手，但在这之前就已决定使用Python，他们的目的是 Python where we can, C++ where we must，在操控硬件的场合使用C++，在快速开发时候使用Python。”</p>
</p>
<p>执行</p>
</p>
<p>Python在执行时，首先会将.py文件中的源代码编译成Python的byte code（字节码），然后再由Python Virtual Machine（Python虚拟机）来执行这些编译好的byte code。这种机制的基本思想跟Java，.NET是一致的。然而，Python Virtual Machine与Java或.NET的Virtual Machine不同的是，Python的Virtual Machine是一种更高级的Virtual Machine。</p>
</p>
<p>这里的高级并不是通常意义上的高级，不是说Python的Virtual Machine比Java或.NET的功能更强大，而是说和Java或.NET相比，Python的Virtual Machine距离真实机器的距离更远。或者可以这么说，Python的Virtual Machine是一种抽象层次更高的Virtual Machine。</p>
</p>
<p>基于C的Python编译出的字节码文件，通常是pyc格式。</p>
</p>
<h2 id="a-5bf64418">升级</h2>
<p>Python的3.0版本，在开发阶段被称为Python 3000，或简称Py3k。相对于Python的早期版本，这是一个较大的升级。为了不带入过多的累赘，Python 3.0在设计的时候就没有考虑向下兼容。许多针对早期Python版本设计的程序都无法在Python 3.0上正常运行。为了照顾现有程序，Python 2.6作为一个过渡版本，基本使用了Python 2.x的语法和库，同时考虑了向Python 3.0的迁移。基于早期Python版本而能正常运行于Python 2.6并无警告的程序可以通过一个2to3的转换工具无缝迁移到Python 3.0。</p>
</p>
<p>Python 3.0的变化主要在以下几个方面：</p>
</p>
<p>部分函数和语句的改变：最引人注意的改变是print语句没有了，取而代之的是print函数。</p>
</p>
<p>字符串和字节：类似Java，str类表示一个Unicode字符串，代替了早期版本的unicode类。而一堆字节则用类似b“abc”的语法创建，用bytes类表示。</p>
</p>
<h1>标准库</h1>
<p>Python拥有一个强大的标准库。Python语言的核心只包含数字、字符串、列表、字典、文件等常见类型和函数，而由Python标准库提供了系统管理、网络通信、文本处理、数据库接口、图形系统、XML处理等额外的功能。Python标准库命名接口清晰、文档良好，很容易学习和使用。</p>
</p>
<p>Python社区提供了大量的第三方模块，使用方式与标准库类似。它们的功能无所不包，覆盖科学计算、Web开发、数据库接口、图形系统多个领域，并且大多成熟而稳定。第三方模块可以使用Python或者C语言编写。SWIG,SIP常用于将C语言编写的程序库转化为Python模块。Boost C++ Libraries包含了一组库，Boost.Python，使得以Python或C++编写的程序能互相调用。借助于拥有基于标准库的大量工具、能够使用低级语言如C和可以作为其他库接口的C++，Python已成为一种强大的应用于其他语言与工具之间的胶水语言。</p>
</p>
<p>Python标准库的主要功能有：</p>
</p>
<p>文本处理，包含文本格式化、正则表达式匹配、文本差异计算与合并、Unicode支持，二进制数据处理等功能；</p>
</p>
<p>文件处理，包含文件操作、创建临时文件、文件压缩与归档、操作配置文件等功能；</p>
</p>
<p>操作系统功能，包含线程与进程支持、IO复用、日期与时间处理、调用系统函数、写日记(logging)等功能；</p>
</p>
<p>网络通信，包含网络套接字，SSL加密通信、异步网络通信等功能；</p>
</p>
<p>网络协议，支持HTTP，FTP，SMTP，POP，IMAP，NNTP，XMLRPC等多种网络协议，并提供了编写网络服务器的框架；</p>
</p>
<p>W3C格式支持，包含HTML，SGML，XML的处理；</p>
</p>
<p>其它功能，包括国际化支持、数学运算、HASH、Tkinter等。</p>
</p>
<h2 id="a-55c0836c">开发环境</h2>
<p>●IDLE：Python内置IDE(随python安装包提供)</p>
</p>
<p>●Komodo和Komodo Edit：后者是前者的免费精简版</p>
</p>
<p>●PythonWin：ActivePython或pywin32均提供该IDE，仅适用于Windows</p>
</p>
<p>●SPE（Stani&#x27;s Python Editor）：功能较多的自由软件，基于wxPython</p>
</p>
<p>●Ulipad：功能较全的自由软件，基于wxPython；作者是中国Python高手limodou</p>
</p>
<p>●WingIDE：可能是功能最全的IDE，但不是自由软件(教育用户和开源用户可以申请免费key)</p>
</p>
<p>●Eric：基于PyQt的自由软件，功能强大。全名是：The Eric Python IDE</p>
</p>
<p>●PyScripter：使用Delphi开发的轻量级的开源Python IDE，支持Python2.6和3.0。</p>
</p>
<p>●PyPE：一个开源的跨平台的PythonIDE。</p>
</p>
<p>●bpython：类Unix操作系统下使用curses库开发的轻量级的Python解释器。语法提示功能。</p>
</p>
<h2 id="a-9ff16bd9">IDE软件</h2>
</p>
<p>●eclipse + pydev插件：方便调试程序</p>
</p>
<p>●emacs：自带python支持，自动补全、refactor等功能需要插件支持</p>
</p>
<p>●Vim:最新7.3版编译时可以加入python支持，提供python代码自动提示支持</p>
</p>
<p>●Visual Studio 2003 + VisualPython：仅适用Windows，已停止维护，功能较差</p>
</p>
<p>●Visual Studio 2010 + Python Tools for Visual Studio</p>
</p>
<p>●TextMate</p>
</p>
<p>●Netbeans IDE</p>
</p>
<p>另外，诸如EditPlus、UltraEdit、PSPad等通用的程序员文本编辑器软件也能对Python代码编辑提供一定的支持，比如代码自动着色、注释快捷键等，但是否够得上集成开发环境的水平，尚有待评估。</p>
</p>
<h2 id="a-6f4c7fad">问题</h2>
<p>1、运行速度慢</p>
</p>
<p>2、国内市场较小</p>
</p>
<p>3、中文资料匮乏（好的python中文资料屈指可数）。托社区的福，有几本优秀的教材已经被翻译了，但入门级教材多，高级内容还是只能看英语版</p>
</p>
<p>4、构架选择太多，不过这也从另一个侧面说明，python比较优秀，吸引的人才多，项目也多</p>
</p>
<h1>学习网站</h1>
</p>
<p>Python官方文档</p>
</p>
<p>PythonTab中文网</p>
</p>
<p>Python爱好者论坛</p>
</p>
<p>Pythoner在线互动交流平台</p>
</p>
<p>python菜鸟教程</p>
</p>
<p>python基础教程</p>
</article>
<div class="mt-3 mb-3" style="max-width: 770px;height: auto;">
                                    </div>
<div class="mt-3 mb-3" style="max-width: 770px;height: auto;">
                                    </div>
<div class="mt-3 mb-3" style="max-width: 770px;height: auto;">
                                    </div>
]]></content:encoded>
					
					<wfw:commentRss>https://www.aitaocui.cn/article/361840.html/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
