1.好学编程:11 个最佳的源码 Python 编译器和解释器
2.用python做的软件必须开源吗?
3.Python到底什么是全局解释器锁(GIL)?
4.Jython什么是Jython(旧称JPython)
5.ç¼ç¨pythonè¯è¨ï¼
好学编程:11 个最佳的 Python 编译器和解释器
Python,作为一门对初学者友好的源码编程语言,因其多用途、源码解释性和面向对象特性而备受青睐。源码它的源码简洁性使得学习和维护变得简单,其解释器兼容Windows、源码广告任务系统源码Linux和Mac OS,源码这增加了其可移植性和可扩展性。源码 尽管普遍认为Python是源码解释性语言,但其实它也包含编译过程。源码代码在执行时首先被编译,源码形成字节码,源码再通过Python虚拟机在机器和操作系统上运行。源码本文将带你深入了解款针对Python程序员的源码优秀编译器和解释器: Brython:将Python转化为JavaScript,适用于Web开发,源码包括手机浏览器,支持HTML5/CSS3和流行框架。 Pyjs:轻量级编译器,能在浏览器中直接执行Python脚本,支持Ajax和Widget Set API。 WinPython:专为Windows设计,预装数据科学库,如Numpy和Pandas,支持C++编译器。源码解除域名绑定 Skulpt:Python在浏览器的实现,无需额外插件,适合在HTML中嵌入。 Shed Skin:将Python转为C++,通过C++高效实现提高性能。 Active Python:跨平台发行版,提供额外的兼容性和功能。 Transcrypt:编译Python为Java,支持矩阵运算和Node.js运行。 Nutika:源码到源码编译器,支持Python库和扩展,适合数据科学项目。 Jython:基于Java,可在任何JVM平台上运行,支持多种软件包解决方案。 CPython:默认且广泛使用的编译器,由C语言编写,包含编译步骤。 IronPython:在.NET和Mono框架上运行,提供交互式控制台和.NET库支持。 这些工具展示了Python的多样性和适应性,无论你是想在Web、桌面应用还是lsp源码 边长标注跨平台开发中使用Python,都有相应的编译器和解释器可供选择。希望这些信息对你的Python学习之路有所帮助,更多编程知识,好学编程将继续分享。用python做的软件必须开源吗?
软件是否必须开源,取决于其许可证条款。Python语言本身遵循的是一个兼容GPL协议的许可证,而非以GPL协议发布,这意味着个人或组织在使用Python语言开发软件时不需要强制开源。
然而,Python解释器的许可证情况可能会影响代码的开源性。例如,CPython解释器遵循的是GNU Lesser General Public License (LGPL)或GNU General Public License (GPL)中的一个版本,允许在专有软件中使用Python,而不需要公开源代码。PyPy解释器使用的是MIT许可证,允许更广泛的使用场景,包括专有软件。Jython解释器使用许可证与CPython类似。
当讨论到软件许可证时,关键在于理解不同许可证之间的关系与差异。许可证限制范围通常局限于软件本身,而不是vc 创建窗口源码使用软件产生的衍生作品。例如,如果在发明了能够读取意念的笔后将其设计图纸开源,并声明遵循GPL许可证,那么该许可证仅应用于笔的设计,而不影响使用者在图纸基础上进行修改后产生的任何衍生作品。
第三方库的许可证同样重要。例如,paramiko库遵循LGPL协议,允许在专有软件中使用而不需开源。然而,如果项目中使用了特定的第三方库,该库的许可证可能要求其用户开源代码,这将直接影响项目开源性。因此,开发者在选择使用第三方库时,必须仔细研究并理解其许可证条款。
总之,Python软件是否必须开源取决于其许可证条款,特别是当涉及到第三方库的使用时,需要仔细研究这些库的许可证以避免违反开源要求。开发者应确保理解并遵守所有相关的许可证规定,以避免法律问题和确保项目的合规性。
Python到底什么是video.js 源码全局解释器锁(GIL)?
解释器在理解全局解释器锁(GIL)之前,需要先大致理解一下解释器。Python作为一门解释性语言,先把源代码编译为字节码,再放进虚拟机中执行,整个过程是由解释器执行并完成的。
但是解释器并不是只有一种,官方的解释器是基于C语言开发的 CPython。但是除了CPython,还有基于Java实现的Jython、基于RPython实现的RPython等等。
了解了解释器,才能理解全局解释器锁。在官方文档中时这样介绍的:在CPython中,GIL是一个互斥锁,它在任一时刻只允许一个线程对字节码进行执行。这样避免了竞争危害,从而保证了线程安全。简单来说就是,互斥锁之所以存在是因为CPython的内存管理不是“线程安全的”。这里需要强调的是:GIL是CPython中人为设计出来的,因此并不是所有的Python解释器都有GIL。比如Jython中就没有GIL,Jython的设计者甚至为此专门埋了个彩蛋。
GIL同一时刻只允许一个线程对字节码进行执行,因此Python的多线程程序并不能利用多核CPU的优势。既然如此,为什么要设计GIL呢?根据上述官方文档中的说明,GIL的设计以是为了避免“竞争危害”以保证线程安全,那么什么又是“竞争危害”呢?
举个例子:有一个数字a = 2和两个线程,其中线程一:a += 2,线程二:a *= 3。那个对于这个数字a,根据线程执行顺序的不对,可能得到4种结果,即。这种由于线程存取、运算先后秩序的不同导致的最终运算结果的不同,称为“竞争危害”。全局解释锁正是为了避免这一危害。
根据官方文档自己的说法,即官方自己也认为,GIL并不是一个最好的选择,因为它不能发挥现代计算机系统多核处理器的优势。既然如此,为什么不舍弃GIL呢?还是官方文档:无法舍弃GIL的原因主要在于:在GIL和CPython的已经开发了大量的features、libraries和packages。如果舍弃GIL,就意味着一切都要推倒重来,这个工程太大了。
既然如此,是不是创建多线程已经没有意义了呢?还是先看看官方文档:幸运的是,许多可能阻塞或长时间运行的操作,如I/O、图像处理、NumPy数字计算,发生在GIL之外。因此,只有在多线程程序中花费大量时间在解释CPython字节码内时,GIL才会成为瓶颈。
有没有办法摆脱GIL的限制呢?答案是有的,主要有以下几种办法:多进程、尝试其他解释器。多进程通过创建多个进程,而每个进程有自己独立的GIL,因此不会出现进程之间对于开锁的争抢。但是缺点也是有的,线程之间的通信相对容易,而进程之间的通信则负责得多。因此,如果使用多进程需要解决进程间通信的问题,比如创建一个Queue进行put和get。并不是所有的解释器都有GIL,比如Jython就没有GIL。但缺点也是显而易见的,Jypthon目前只适用于Python 2,且没有庞大的社区支持。此外,基于RPython实现的PyPy虽然也有GIL,但是在特定情况下,它会比CPython快得多,当然缺点也是一样的,比较小众,社区支持有限。
Jython什么是Jython(旧称JPython)
要理解Jython,首先要熟悉Python,一种由C编写的高级编程语言,由Guido van Rossum创建并发展起来。Python以其简洁、方便和易读性受到开发者喜爱,而Java的普及也催生了Jython的需求,即Python在Java中的实现。为区分,我们用CPython指代Python的C语言版本,Jython则特指Java实现,而Python则代表其设计原则和语言规范。 Jython与Python的代码风格相似,注重简洁,如使用缩进代替大括号,新的行表示新语句的开始,且允许省略分号。Jython去掉了Java中的访问修饰符,这为开发提供了灵活性,让开发者更专注于程序逻辑。与Java相比,Jython采用动态类型,无需过多关注类型定义,专注于实现功能。 Jython的历史可以追溯到Jim Hugunin,他是Guido的同事,他认识到将Python与Java结合的必要性,创建了初始版本的JPython。然而,由于工作变动,Jim未能继续该项目,随后Barry Warsaw在CNRI接手了Jython的开发。当Python团队离开CNRI后,Jython在Sourceforge上发展为更开放的模型,Finn Bock在此期间对Jython做出了重要贡献,使得它成为一个有价值的工具。 Finn Bock和Samuele Pedroni是Jython的重要贡献者,Finn领导的项目小组推动了Jython的发展,而Samuele主要在类装载和导入机制等领域做出了革新。Finn和Samuele目前是Jython开发的主力。Jython的成功与其开放源代码的本质和这些杰出贡献者的努力密不可分。扩展资料
Jython是一种完整的语言,而不是一个Java翻译器或仅仅是一个Python编译器,它是一个Python语言在Java中的完全实现。Jython也有很多从CPython中继承的模块库。最有趣的事情是Jython不像CPython或其他任何高级语言,它提供了对其实现语言的一切存取。所以Jython不仅给你提供了Python的库,同时也提供了所有的Java类。这使其有一个巨大的资源库。ç¼ç¨pythonè¯è¨ï¼
Pythonç¼ç¨è¯è¨æä»ä¹ç¹ç¹
1.ç®åæå¦ãæç¡®ä¼é ãå¼åé度快
â ç®åæå¦ï¼ä¸CåJava对æ¯ï¼pythonçå¦ä¹ ææ¬åé¾åº¦æ²çº¿ä½äºå¾å¤ï¼æ´éåæ°æå ¥é¨ï¼æ¯èªåºåä¸çææ¯æç¬è·¯çº¿ã
â¡æç¡®ä¼é ï¼pythonçè¯æ³é常ç®æ´ï¼ä»£ç éå°ï¼é常容æç¼åï¼ä»£ç çæµè¯ãéæãç»´æ¤çé½é常容æãä¸ä¸ªå°å°çèæ¬ï¼ç¨Cå¯è½éè¦è¡ä»£ç ãç¨Javaå¯è½è¦å ç¾è¡ï¼ä½æ¯ç¨pythonå¾å¾åªéè¦å åè¡å°±è½å®ç°ã
â¢å¼åé度快ï¼è®ºå¼åé度ï¼pythonçå¼åé度说第äºæ²¡äººæ¢ç§°ç¬¬ä¸ï¼è¿æ¯äººå°½çç¥çäºæ ã
2.跨平å°ãå¯ç§»æ¤ãå¯æ©å±ã解éåãé¢å对象çå¨æè¯è¨
â 跨平å°ï¼pythonå ¨é¢æ¯æWindowsãLinuxåMACç主æµæä½ç³»ç»ãæè°è·¨å¹³å°ï¼æ¯æ使ç¨ä¸åçæä½ç³»ç»å¼åç¨åºãè¿è¡ç¨åºï¼ä¸ç¨ä¿®æ¹ä»£ç ã
â¡å¯ç§»æ¤ï¼ä»£ç é常ä¸éè¦å¤å°æ¹å¨å°±è½ç§»æ¤å°å«çå¹³å°ä¸ä½¿ç¨ã
â¢å¯æ©å±ï¼pythonè¯è¨æ¬èº«ç±Cè¯è¨ç¼åèæçï¼ä½ å®å ¨å¯ä»¥å¨pythonä¸åµå ¥Cï¼ä»èæé«ä»£ç çè¿è¡é度åæçãä½ ä¹å¯ä»¥ä½¿ç¨Cè¯è¨éåpythonçä»»ä½æ¨¡åï¼ä»æ ¹æ¬ä¸æ¹åpythonã
â£è§£éåï¼pythonè¯è¨å¨æ§è¡è¿ç¨ä¸ç±è§£éå¨éè¡åæï¼éè¡è¿è¡å¹¶è¾åºç»æã
â¤é¢å对象ï¼pythonè¯è¨å ·å¤ææçé¢å对象ç¹æ§ååè½ï¼æ¯æåºäºç±»çç¨åºå¼åã
3.å ç½®çµæ± ï¼å¤§éçæ ååºå第ä¸æ¹åº
python为æ们æä¾äºé常å®åçåºç¡åºï¼è¦çäºç³»ç»ãç½ç»ãæ件ãGUIãæ°æ®åºãææ¬å¤ççæ¹æ¹é¢é¢ï¼è¿äºæ¯éå解éå¨è¢«é»è®¤å®è£ çï¼åå¹³å°éç¨ï¼ä½ æ éå®è£ 第ä¸æ¹æ¯æå°±å¯ä»¥å®æ大å¤æ°å·¥ä½ï¼è¿ä¸ç¹ç¹è¢«å½¢è±¡å°ç§°ä½å ç½®çµæ± ã
4.社åºæ´»è·ãè´¡ç®è å¤ãäºå¸®äºå©
ææ¯ç¤¾åºå¯ä»¥ç»æ们对è¯è¨çå¦ä¹ å使ç¨æä¾å·¨å¤§ç帮å©ï¼æ 论æ¯åæçå¦ä¹ ï¼è¿æ¯æ¥åçå·¥ä½ï¼åªè¦æé®é¢ï¼ææ¯ç¤¾åºç大çé½å¯ä»¥å¸®æ们解å³ï¼æè¿äºå©åï¼å¯ä»¥å¸®æ们æ´å¥½å°äºè§£ãå¦ä¹ å使ç¨ä¸é¨è¯è¨ãææ¯ç¤¾åºåæ¶è¿æ¨å¨pythonè¯è¨çåå±æ¹åãåè½éæ±ï¼ä¿ä½¿å ¬å¸ä¼ä¸æ´å¤å°ä½¿ç¨pythonè¯è¨ï¼æèpythonç¨åºåã
5.å¼æºè¯è¨ï¼åå±å¨å巨大
pythonæ¯åºäºCè¯è¨ç¼åçï¼å¹¶ä¸ä½¿ç¨GPLå¼æºåè®®ï¼ä½ å¯ä»¥å è´¹è·åå®çæºä»£ç ï¼è¿è¡å¦ä¹ ãç 究çè³æ¹è¿ãä¼äººæ¾æ´ç«ç°é«ï¼ææ´å¤ç人åä¸pythonçå¼åï¼ä¿ä½¿å®æ´å¥½çåå±ï¼è¢«æ´å¤çåºç¨ï¼å½¢æè¯æ§å¾ªç¯ãpython为ä»ä¹ä¼è¶æ¥è¶ç«å°±æ¯å 为å®çå¼æ¾æ§ï¼èªç±æ§ï¼èèµ·äºäººæ°ï¼å½¢æäºç¤¾åºï¼æå¾å¤äººå¨å ¶ä¸åè´¡ç®ï¼ç¨ç人è¶æ¥è¶å¤ï¼èªç¶å°±æé«äºå¸åºå æçï¼ä¼ä¸ãå ¬å¸ãå家就ä¸å¾ä¸ä½¿ç¨pythonï¼æä¾pythonç¨åºåå²ä½å°±è¶æ¥è¶å¤ï¼è¿å°±æ¯å¼æºåéã
pythonæ¯ä¸ç§ä»ä¹ç±»åçç¼ç¨è¯è¨
Pythonæ¯ä¸ç§å¹¿æ³ä½¿ç¨çé«çº§ç¼ç¨è¯è¨ï¼å±äºéç¨åç¼ç¨è¯è¨ï¼ç±åå¤Â·èç½èå§åé ï¼ç¬¬ä¸çåå¸äºå¹´ãå¯ä»¥è§ä¹ä¸ºä¸ç§æ¹è¯ï¼å å ¥ä¸äºå ¶ä»ç¼ç¨è¯è¨çä¼ç¹ï¼å¦é¢å对象ï¼çLISPãä½ä¸ºä¸ç§è§£éåè¯è¨ï¼Pythonç设计å²å¦å¼ºè°ä»£ç çå¯è¯»æ§åç®æ´çè¯æ³ï¼å°¤å ¶æ¯ä½¿ç¨ç©ºæ ¼ç¼©è¿åå代ç åï¼èé使ç¨å¤§æ¬å·æè å ³é®è¯ï¼ã?
ç¸æ¯äºC++æJavaï¼Python让å¼åè è½å¤ç¨æ´å°ç代ç 表达æ³æ³ãä¸ç®¡æ¯å°åè¿æ¯å¤§åç¨åºï¼è¯¥è¯è¨é½è¯å¾è®©ç¨åºçç»ææ¸ æ°æäºã
Pythonå¦ä¹ 路线ï¼
第ä¸é¶æ®µPythonåºç¡ä¸Linuxæ°æ®åºï¼è¿æ¯Pythonçå ¥é¨é¶æ®µï¼ä¹æ¯å¸®å©æ好åºç¡çéè¦é¶æ®µï¼è®©ä½ å¯ä»¥å ·å¤åºç¡çç¼ç¨è½åï¼å¹¶ææ¡MySQLè¿é¶å 容ãåæ¶ï¼å¦åè¿å¯ä»¥éè¿æå¦ç¥è¯å®æé¶è¡èªå¨æ款æºç³»ç»å®æãè±æ±è¯å ¸ãæè¯è§£æå¨çé¶æ®µé¡¹ç®ã
第äºé¶æ®µWEBå ¨æ ï¼ä½ å¯ä»¥ææ¡ææ¡WEBå端ææ¯å 容ãWEBå端æ¡æ¶ï¼å¹¶çç»ä½¿ç¨FlaskãTornadoãDjangoãå¦å®åå¯ä»¥å®æç±é²èãæ°æ®çæ§åå°çé¶æ®µé¡¹ç®ã
第ä¸é¶æ®µæ°æ®åæ+人工æºè½ï¼ä½ å¯ä»¥ææ¡ç¬è«ãæ°æ®ééï¼æ°æ®æºæä¸ç®æ³è¿é¶å人工æºè½ææ¯ãå¦å®åå¯ä»¥å®æç¬è«ãå¾ç马èµå ãçµå½±æ¨èç³»ç»ãå°éé¢æµã人工æºè½é¡¹ç®çé¶æ®µé¡¹ç®ã
第åé¶æ®µé«çº§è¿é¶ï¼ä½ å¯ä»¥ææ¡èªå¨åè¿ç»´ä¸åºåé¾å¼åææ¯ï¼å¯ä»¥å®æèªå¨åè¿ç»´é¡¹ç®ãåºåé¾çé¶æ®µé¡¹ç®ã
以ä¸å 容åè?ç¾åº¦ç¾ç§-Python
pythonè¯è¨æ¯ä»ä¹ï¼Pythonæ¯ä¸ç§è®¡ç®æºç¨åºè®¾è®¡è¯è¨ï¼ä½ å¯è½å·²ç»å¬è¯´è¿å¾å¤æµè¡çç¼ç¨è¯è¨ï¼æ¯å¦é常é¾å¦çCè¯è¨ï¼é常æµè¡çJavaè¯è¨ï¼éååå¦è çBasicè¯è¨ï¼éåç½é¡µç¼ç¨çJavaScriptçï¼Pythonå°±æ¯å ¶ä¸ä¹ä¸ã
ç¸å¯¹äºå ¶ä»ç¼ç¨è¯è¨ï¼Pythonå ·æèªå·±ç¬ç¹çä¼å¿ï¼å®å¯ä»¥ç¨æå°ç代ç å®æä»»å¡ãæ¯å¦å®æåä¸ä¸ªä»»å¡ï¼Cè¯è¨è¦åè¡ä»£ç ï¼Javaéè¦è¡ï¼èPythonå¯è½åªéè¦è¡ï¼æ以说Pythonæ¯ä¸é¨é常é«çº§çç¼ç¨è¯è¨ã
pythonæ¯ä»ä¹è¯è¨åç±»:çµè/ç½ç»ç¨åºè®¾è®¡å ¶ä»ç¼ç¨è¯è¨
é®é¢æè¿°:
ä»çä¸ææ¯ä»ä¹ï¼ä»æä»ä¹ç¹ç¹
解æ:
Pythonæ¯ä»ä¹ï¼
Pythonæ¯ä¸ç§å¼æ¾æºä»£ç çèæ¬ç¼ç¨è¯è¨ï¼è¿ç§èæ¬è¯è¨ç¹å«å¼ºè°å¼åé度å代ç çæ¸ æ°ç¨åº¦ãå®å¯ä»¥ç¨æ¥å¼ååç§ç¨åºï¼ä»ç®åçèæ¬ä»»å¡å°å¤æçãé¢å对象çåºç¨ç¨åºé½æ大æ¾èº«æçå°æ¹ãPythonè¿è¢«å½ä½ä¸ç§å ¥é¨ç¨åºåæéåææ¡çä¼ç§è¯è¨ï¼å 为å®å è´¹ãé¢å对象ãæ©å±æ§å¼ºåæ¶æ§è¡ä¸¥æ ¼çç¼ç æ åã
Pythonæ¯å è´¹ç
GuidovanRossumäºå¹´å¼å§å¼åPythonï¼æåçç®çæ éæ¯ä¸ä¸ªèªå¨±ç项ç®ãä½ä¸ºMontyPythonçé£è¡é©¬æå¢èç®çç±å¥½è ï¼ä»ç»èªå·±å¼åçè¿ç§ç¼ç¨è¯è¨èµ·äºç°å¨è¿ä¸ªå¤æªçååï¼ä¸æææå°±æ¯å¤§èãPythonæå设计为ä¸ç§å代Amoebaåå¸å¼æä½ç³»ç»ABCçèæ¬è¯è¨ï¼ä½ä¸ä¹ è¿ç§æ°åç¼ç¨è¯è¨å¾å¿«å°±åå±æå¯ä»¥è§£å³ç¸å½å¤é®é¢çå©å¨ï¼ç°å¨æ´å¼å ¥å°äºå¤ç§å¹³å°ã
Guidoç®åè¿æ¯Python软件åºéä¼ç主å¸ã该ç»ç»æç §GNUå ¬å ±è®¸å¯åè®®çè¦æ±æ¥æPythonçç¥è¯äº§æå许å¯æãPythonå¯ä»¥ç¨å¨å¤ç§å¹³å°ä¸ï¼å æ¬WindowsãMacintoshååç§å¸¸è§çUNIXç³»ç»ãå¦å¤é对PalmOSå微软çPocketPCçç¸åºçæ¬ä¹å¨å¼åä¸ã
Pythonåè´¨è¶ ç¾¤
è½ç¶Python常ç¨æ¥å建ç®åçèæ¬ï¼ä½å®éç¨çç¼ç¨ææ¯å¯ä¸ç®åï¼æ¯å¦é¢å对象ç¼ç ãå¥æ¥åã线ç¨åGUIççãåå¦ä½ æ¯ä¸ä½åå ¥æµçç¨åºåï¼è¿äºç¹æ§æ¾ç¶å¯¹ä½ 太æ帮å©äºï¼å ä¸ºä½ å¯ä»¥å¾å¿«çææççç¼ç¨è¯æ³åç¼ç å®è·µï¼ä¹ååå¦ä¹ å ¶ä»è¯è¨ï¼æ¯å¦Javaæè C++çå¼å ¥çææ¯æ¦å¿µå°±å®¹æå¤äºãèæ¬å¯ä»¥åç¬æ§è¡ï¼ä¸è¿ï¼ä½ è¿å¯ä»¥éè¿ç±»æ件åå类对象类å以å åå©ç¨è¿ç§è¯è¨ç强大åè½ã
Pythonåºå«äºå ¶ä»é¢å对象è¯è¨çå ³é®æ两ç¹ãé¦å ï¼Python强è°ç©ºæ ¼åç¼ç ç»æï¼ä»è令å¼åè ç代ç å ·æè¯å¥½çéç¨æ§ãå ¶æ¬¡ï¼æ§è¡èæ¬ä¹åæ é¡»ç¼è¯Python代ç ï¼è¿å°±æ¯å®ä¸ºä»ä¹è¢«å½ä½èæ¬è¯è¨çåå ã
Pythonæäºæ©å±
Pythonè¯è¨æä¸ä¸ªå¼äººæ³¨ç®çä¼å¿ï¼å®å¯ä»¥é对è¯è¨æ æ³å®æåè½çå½æ°è°ç¨å½æ°åºãPythonè¿å ·ææäºç¸å½æç¨çå·¥å ·å¸®å©å¼ååºå¤æçåºç¨ç¨åºãå ¶ä¸æ常ç¨çå°±æ¯Tkinkerï¼è¿ç§å·¥å ·å¯ä»¥å®ç°è·¨å¹³å°çGUIå¼åãå¦ä¸ç§wxPythonå·¥å ·åæ¯å¯¹wxWindows跨平å°C++æ¡æ¶çæ©å±ãWxPythonç®åå·²ç»æ¯æWindowsåLinuxå¹³å°ãPythonImagingLibraryå¯ä»¥è®©Pythonå建ãæå¼ãç¼è¾åä¿®æ¹å¾è±¡ï¼å æ¬.gifã.jpegå.pngçã为äºäºè§£å¸¸ç¨çPythonæ©å±ååºç¨ï¼ä½ ä¸å¦¨è®¿é®ä¸TheVaultsofParnassusã
Pythonèªèº«è¿å¯ä»¥åµå ¥å°å ¶ä»ç¼ç¨è¯è¨ä¸ãæ常è§çå°±æ¯jython/]Jythonï¼è¿æ¯ä¸ç§ç¨Javaç¼åçPython解éå¨ãè¿æ ·ä½ å°±å¯ä»¥åæ¶å©ç¨ä¸¤ç§è¯è¨çä¼ç¹ãä½ è¿å¯ä»¥å¨å¼ºå¤§çJavaåºç¨ç¨åºæ¡æ¶ä¸ç»åPythonæ¸ æ°çè¯æ³æ¥å建åºä¾èµäºä¸¤ç§è¯è¨åºçåºç¨ç¨åºã
ç¼ç æ å
ä¸¥æ ¼çPythonè¯æ³æ¯å级ç¨åºå忽ç¥è¿ä¸å¼ºå¤§ç¼ç¨è¯è¨çæ主è¦åå ãå大å¤æ°çå ¶ä»é¢åWebèæ¬è¯è¨ä¸åçæ¯ï¼Pythonç空ç½æçä¸ä¾èµäºæ¬å·æè åå·æ¥è¡¨ç¤ºè¯å¥ç»æï¼æ¢è¡åå ä½ç¬¦ç¨æ¥æ述代ç çå¯è§ç»æãè¿ç§ç¼ç¨æ¹å¼ä¹çä¹ä¸ä»¤äººæå°åç¦ï¼ä½å´å¯¹ä½ å¦æè«å¤§ç好å¤ï¼è¿å°±æ¯ä»£ç çå¯é æ§ãPythonè¿ç§ç»æåæ¯å»ºç«å¨ä¸é¢çç论ä¹ä¸ï¼å¼åè çå·¥ä½æ¶é´æ¯æºæ财产ä¸ææä»·å¼çè´¢å¯ãä¸æ¦ä½ ä¹ æ¯äºç¼åPython代ç çè§åãå®é ä¸ä½ å°±ä¹ æ¯äºä¸ç§å 建çç¼ç æ åãè¿ä¹æ£æ¯å¤§å¤æ°Pythonå¼åè æä¾èµçæ åã
è·åPython
ä½ å¯ä»¥ä»[url=python]pythonæè å类平å°ä¸çPythonçæ¬ãActiveStateç½ç«ä¹åå¸ç¨äºWindowsãLinuxåSolarisçå¹³å°çPythonåºã
æç®åçPython代ç
ä¸é¢æ们举ä¾è¯´æPythonãåè®¾ä½ ç®å使ç¨çæ¯Windowsç³»ç»ï¼èä¸å·²ç»å®è£ äºPythonï¼è¯·é¦å å¯å¨IDLEï¼ä¹å°±æ¯PythonçGUIãç°å¨å¤äºPythonShellä¸ï¼å¦æä½ å¨UNIXç±»åçç³»ç»ä¸å°±éè¦é®å ¥pythonç±»åæç¤ºä½ çPythonå¯æ§è¡æ件ï¼ãæ¥çå¨""æ示符ä¸é®å ¥ï¼
print"HelloWorld"
è¿ä¸ªå¤§å®¶è³çè½è¯¦çç¨åºå°±å¨å±å¹ä¸æ¾ç¤ºåºç»æï¼ä½ è¿å¯ä»¥å¦ä¸æ示ç»åéèµå¼ï¼
myvar=
printmyvar
å¨ä¸ä¾ä¸ä¼æ¾ç¤ºç»æã
å¦æä½ å¼åçèæ¬æ é¡»å¨PythonShellä¸ç´æ¥è¾å ¥Pythonå°±æ´æç¨äºãç¨åºæ¸ åAå°±å å«äºä¸ä¸ªHelloWorldèæ¬ç示ä¾ï¼å ¶ä¸ç¼åäºif-elseè¯å¥ã
ä½ å¯ä»¥å¨å½ä»¤è¡ä¸é®å ¥scriptname.pyæ¥æ§è¡èªå·±çèæ¬ï¼pyæ¯Pythonèæ¬çæ åæ件æ©å±åï¼ãä½ åºè¯¥è½çå°æ£ç¡®çæ¾ç¤ºç»æãæ¸ åAä¸ï¼è·çifåelseä¹åç±å ä½ç¬¦ç¼©æçè¯å¥å°±æ¯ç©ºç½æ ¼å¼åçä¸é¨åã
è¿äºå¾ç®åç示ä¾æ¼ç¤ºäºPythonæ¸ æ°çè¯æ³ã为äºäºè§£æ´å¤æå ³Pythonç¼ç¨çä¿¡æ¯ï¼ä½ ä¸å¦¨æ¥çä¸Pythonç½ç«ä¸çåå¦è æåãå¦æä½ ä¸ä¹ æ¯äºä¸ç½æµè§ï¼é£ä¹ä½ è¿å¯ä»¥é 读O'ReillyåNewRidersåºççæå ³å¾ä¹¦ãæ¯å¦HowtoThinkLikeaComputerScientist:LearningwithPythonåPythonEssentialReferenceã
å°ç»
ä¸è®ºä½ æ¯ä¸ä½åå¦ç¼ç¨è¯è¨ä»¥å¾å¢é¿èªå·±ç¥è¯æè½çå ¥é¨ç¨åºåè¿æ¯ä¸ºäºè°åæ´å¤§ä»£ç å¯é æ§çPerlé«æï¼ä½ é½ä¼åç°Pythonæ¯ä¸ç§ç¸å½çµæ´»å强大çç¼ç¨è¯è¨ãå®å¯ä»¥å¼ååºåç§åæ ·çåºç¨ç¨åºï¼ä»åè½é½å¤çé®ä»¶å表软件å°åç§è·¨å¹³å°çGUIåºç¨ç¨åºä¸åºä¿±å ¨ã
ä¸é¢ç¨å°çæ¸ åA[re:xyb]
#ListA
#(IfyouareonanUNIXtypesystemyoumayhavetomodifythefirstlinetopointto
yourPythonexecutable.)
#!/usr/bin/pythonmyvar="HelloWorld"ifmyvar=="HelloWorld":printmyvarelse:print"myvardoesnotequalHelloWorld"
[ç²¾å]å¦å¤ï¼æä¹ä»ç»ä¸æ¬ä¹¦[re:xyb]
(enthusiast)
--:
BruceEckelçThinkinginPythonï¼å¯ä»¥ä»è¿éä¸è½½ã
BruceEckelå·²ç»åºççThinkinginJavaåThinkinginC++å¯é½æ¯é¼é¼å¤§åãä»æ£å¨åçæThinkinginPythonåThinkinginPatternï¼ä¸ç¥éä»ä¹æ¶åå¯ä»¥åºçã
å ¶ä»BruceEckelçèä½ä¸è½½ç®å½ï¼BruceEckel'sFreeElectronicBooks
æç« é项ï¼
pythonæ¯æ好çç¼ç¨è¯è¨å?â å¼åæçé«ï¼Pythonå ·æé常强大ç第ä¸æ¹åºï¼å¨æ¤åºç¡ä¸è¿è¡å¼åï¼å¾å¤§ç¨åº¦ä¸æé«å¼åæç
â¡é¢å对象ï¼pythonçç¼ç¨ææ³æ´ç¬¦å人类çæç»´é»è¾ï¼ä¸éè¦åCè¯è¨é£æ ·å»ç解计ç®æºçè¿è¡æç»´
â¢å è´¹ãå¼æºï¼å¯ä»¥èªç±é 读æºä»£ç 并è¿è¡æ¹å¨ï¼å®ç°æ³è¦çåè½ï¼å¹¶ä¸ç½ç»ä¸æå·²ç»å¾å¤Pythonçå¦ä¹ èµæº
â£å¯ç§»æ¤æ§ï¼å¯ä»¥å¨å¾å¤å¹³å°ä¸æ ç¼è¿æ¥ï¼å æ¬LinuxãWindowsãFreeBSDãSolarisçç
â¤å¯æ©å±æ§ï¼å¦ææ³è®©ä¸æ®µä»£ç è¿è¡çæ´å¿«ï¼å¯ä»¥éæ©Cè¯è¨æè C++æ¥ç¼åï¼ç¶åå¨Pythonä¸ç´æ¥ä½¿ç¨
â¥ç®åæå¦ï¼ç¸å¯¹äºjavaçï¼è¯æ³æ´ç®åï¼æ´æä¸æï¼éç¨äºç¼ç¨åå¦è
Pythonæ¯ä»ä¹ç¼ç¨è¯è¨ï¼Pythonçåºå±è¯è¨æ¯Cã大å¤æ°é«çº§è¯è¨é½æ¯å¨Cè¯è¨çåºç¡ä¸å¼åçï¼æ¯å¦PythonãJavaãC#â¦â¦ï¼è¿äºçåºå±é½æ¯Cã
Pythonæ¯ä¸ç§å¹¿æ³ä½¿ç¨ç解éåãé«çº§ç¼ç¨ãéç¨åç¼ç¨è¯è¨ï¼ç±åå¤Â·èç½èå§åé ï¼ç¬¬ä¸çåå¸äºå¹´ãå¯ä»¥è§ä¹ä¸ºä¸ç§æ¹è¯çLISPã
Pythonç设计å²å¦å¼ºè°ä»£ç çå¯è¯»æ§åç®æ´çè¯æ³ãç¸æ¯äºC++æè Javaï¼Python让å¼åè è½å¤ç¨æ´å°ç代ç 表达æ³æ³ãä¸ç®¡æ¯å°åè¿æ¯å¤§åç¨åºï¼è¯¥è¯è¨é½è¯å¾è®©ç¨åºçç»ææ¸ æ°æäºã
ä¸SchemeãRubyãPerlãTclçå¨æç±»åç¼ç¨è¯è¨ä¸æ ·ï¼Pythonæ¥æå¨æç±»åç³»ç»ååå¾åæ¶åè½ï¼è½å¤èªå¨ç®¡çå å使ç¨ï¼å¹¶ä¸æ¯æå¤ç§ç¼ç¨èå¼ï¼å æ¬é¢å对象ãå½ä»¤å¼ãå½æ°å¼åè¿ç¨å¼ç¼ç¨ãå ¶æ¬èº«æ¥æä¸ä¸ªå·¨å¤§è广æ³çæ ååºã
Python解éå¨æ¬èº«å ä¹å¯ä»¥å¨ææçæä½ç³»ç»ä¸è¿è¡ãPythonçå ¶ä¸ä¸ä¸ªè§£éå¨CPythonæ¯ç¨Cè¯è¨ç¼åçï¼æ¯ä¸ä¸ªç±ç¤¾ç¾¤é©±å¨çèªç±è½¯ä»¶ï¼å½åç±Python软件åºéä¼ç®¡çã