ผลต่างระหว่างรุ่นของ "ภาษาไพทอน"

จากวิกิพีเดีย สารานุกรมเสรี
เนื้อหาที่ลบ เนื้อหาที่เพิ่ม
Sirakorn (คุย | ส่วนร่วม)
ป้ายระบุ: เครื่องมือแก้ไขต้นฉบับปี 2560
Sirakorn (คุย | ส่วนร่วม)
ป้ายระบุ: เครื่องมือแก้ไขต้นฉบับปี 2560
บรรทัด 183: บรรทัด 183:


== อ้างอิง ==
== อ้างอิง ==
{{รายการอ้างอิง}}
{{รายการอ้างอิง|refs=

<ref name="faq-created">{{cite web |url=https://docs.python.org/faq/general.html#why-was-python-created-in-the-first-place |title=Why was Python created in the first place? |work=General Python FAQ |publisher=Python Software Foundation |accessdate=22 March 2007}}</ref>

<ref name="98-interview">{{cite web |url=http://www.amk.ca/python/writing/gvr-interview |title=Interview with Guido van Rossum (July 1998) |last=Kuchling |first=Andrew M. |work=amk.ca |date=22 December 2006 |accessdate=12 March 2012 |url-status=dead |archiveurl=https://web.archive.org/web/20070501105422/http://www.amk.ca/python/writing/gvr-interview |archivedate=1 May 2007 |df=dmy-all }}</ref>

<ref name="AutoNT-1">{{ cite journal |last=van Rossum |first=Guido |year=1993 |title=An Introduction to Python for UNIX/C Programmers |journal=Proceedings of the NLUUG Najaarsconferentie (Dutch UNIX Users Group) |quote=even though the design of C is far from ideal, its influence on Python is considerable. |citeseerx=10.1.1.38.2023 }}</ref>

<ref name="classmix">{{cite web |url=https://docs.python.org/tutorial/classes.html |title=Classes |work=The Python Tutorial |publisher=Python Software Foundation |accessdate=20 February 2012 |quote=It is a mixture of the class mechanisms found in C++ and Modula-3}}</ref>

<ref name="effbot-call-by-object">{{cite web |url=http://effbot.org/zone/call-by-object.htm |title=Call By Object |work=effbot.org |last=Lundh |first=Fredrik |quote=replace "CLU" with "Python", "record" with "instance", and "procedure" with "function or method", and you get a pretty accurate description of Python's object model. |accessdate=21 November 2017}}</ref>

<ref name="AutoNT-2">{{cite web |url=https://www.python.org/download/releases/2.3/mro/ |title=The Python 2.3 Method Resolution Order |last=Simionato |first=Michele |publisher=Python Software Foundation |quote=The C3 method itself has nothing to do with Python, since it was invented by people working on Dylan and it is described in a paper intended for lispers}}</ref>

<ref name="AutoNT-3">{{cite web |url=https://docs.python.org/howto/functional.html |title=Functional Programming HOWTO |last=Kuchling |first=A. M. |work=Python v2.7.2 documentation |publisher=Python Software Foundation |accessdate=9 February 2012}}</ref>

<ref name="pep0238">{{cite web |url=https://www.python.org/dev/peps/pep-0238/ |title=PEP 238&nbsp;– Changing the Division Operator |first1=Moshe |last1=Zadka |first2=Guido |last2=van Rossum |date=11 March 2001 |work=Python Enhancement Proposals |publisher=Python Software Foundation |accessdate=23 October 2013}}</ref>

<ref name="AutoNT-4">{{cite web |url=https://www.python.org/dev/peps/pep-0255/ |title=PEP 255&nbsp;– Simple Generators |first1=Neil |last1=Schemenauer |first2=Tim |last2=Peters |first3=Magnus Lie |last3=Hetland |date=18 May 2001 |work=Python Enhancement Proposals |publisher=Python Software Foundation |accessdate=9 February 2012}}</ref>

<ref name="AutoNT-5">{{cite web |url=https://www.python.org/dev/peps/pep-0318/ |title=PEP 318&nbsp;– Decorators for Functions and Methods |first1=Kevin D. |last1=Smith |first2=Jim J. |last2=Jewett |first3=Skip |last3=Montanaro |first4=Anthony |last4=Baxter |date=2 September 2004 |work=Python Enhancement Proposals |publisher=Python Software Foundation |accessdate=24 February 2012}}</ref>

<ref name="AutoNT-6">{{cite web |url=https://docs.python.org/3.2/tutorial/controlflow.html |title=More Control Flow Tools |work=Python 3 documentation |publisher=Python Software Foundation |accessdate=24 July 2015}}</ref>

<ref name="bini">{{cite book |last=Bini |first=Ola |title=Practical JRuby on Rails Web 2.0 Projects: bringing Ruby on Rails to the Java platform |year=2007 |publisher=APress |location=Berkeley |isbn=978-1-59059-881-8 |page=[https://archive.org/details/practicaljrubyon0000bini/page/3 3] |url-access=registration |url=https://archive.org/details/practicaljrubyon0000bini/page/3 }}</ref>

<ref name="AutoNT-7">{{cite web |last=Kuhlman |first=Dave |url=https://www.davekuhlman.org/python_book_01.pdf|title=A Python Book: Beginning Python, Advanced Python, and Python Exercises |at=Section 1.1|url-status=dead |archiveurl=https://web.archive.org/web/20120623165941/http://cutter.rexx.com/~dkuhlman/python_book_01.html |archivedate=23 June 2012 |df=dmy-all }}</ref>

<ref name="About">{{cite web |url=https://www.python.org/about |title=About Python |publisher=Python Software Foundation |accessdate=24 April 2012}}, second section "Fans of Python use the phrase "batteries included" to describe the standard library, which covers everything from asynchronous processing to zip files."</ref>

<ref name="venners-interview-pt-1">{{cite web |url=http://www.artima.com/intv/pythonP.html |title=The Making of Python |last=Venners |first=Bill |date=13 January 2003 |work=Artima Developer |publisher=Artima |accessdate=22 March 2007}}</ref>

<ref name="timeline-of-python">{{cite web |url=https://python-history.blogspot.com/2009/01/brief-timeline-of-python.html
|title=A Brief Timeline of Python |last=van Rossum |first=Guido |date=20 January 2009 |work=The History of Python |accessdate=20 January 2009}}</ref>

<ref name="AutoNT-12">{{ cite mailing list |url=https://mail.python.org/pipermail/python-dev/2000-August/008881.html |title=SETL (was: Lukewarm about range literals) |date=29 August 2000 |accessdate=13 March 2011 |mailinglist=Python-Dev |last=van Rossum |first=Guido |authorlink=Guido van Rossum}}</ref>

<ref name="newin-2.0">{{cite web |url=https://docs.python.org/whatsnew/2.0.html |title=What's New in Python 2.0 |last1=Kuchling |first1=A. M. |last2=Zadka |first2=Moshe |date=16 October 2000 |publisher=Python Software Foundation |accessdate=11 February 2012}}</ref>

<ref name="3.0-release">{{cite web |url=https://www.python.org/download/releases/3.0/ |title=Python 3.0 Release |publisher=Python Software Foundation |accessdate=8 July 2009}}</ref>

<ref name="pep-3000">{{cite web |url=https://www.python.org/dev/peps/pep-3000/ |title=PEP 3000&nbsp;– Python 3000 |last=van Rossum |first=Guido |date=5 April 2006 |work=Python Enhancement Proposals |publisher=Python Software Foundation |accessdate=27 June 2009 |archive-url=https://web.archive.org/web/20160303231513/https://www.python.org/dev/peps/pep-3000/ |archive-date=3 March 2016 |url-status=dead }}</ref>

<ref name="AutoNT-13">{{cite web |url=https://www.python.org/community/pycon/dc2004/papers/24/metaclasses-pycon.pdf |archiveurl=https://web.archive.org/web/20090530030205/http://www.python.org/community/pycon/dc2004/papers/24/metaclasses-pycon.pdf |archivedate=30 May 2009 |title=Python Metaclasses: Who? Why? When? |last=The Cain Gang Ltd. |accessdate=27 June 2009 |url-status=dead |df=dmy-all }}</ref>

<ref name="AutoNT-14">{{cite web |url=https://docs.python.org/3.0/reference/datamodel.html#special-method-names |title=3.3. Special method names |work=The Python Language Reference |publisher=Python Software Foundation |accessdate=27 June 2009}}</ref>

<ref name="AutoNT-15">{{cite web |url=http://www.nongnu.org/pydbc/ |title=PyDBC: method preconditions, method postconditions and class invariants for Python |accessdate=24 September 2011}}</ref>

<ref name="AutoNT-16">{{cite web |url=http://www.wayforward.net/pycontract/ |title=Contracts for Python |accessdate=24 September 2011}}</ref>

<ref name="AutoNT-17">{{cite web |url=https://sites.google.com/site/pydatalog/ |title=PyDatalog |accessdate=22 July 2012}}</ref>

<ref name="AutoNT-18">{{cite web |url=https://docs.python.org/3/library/itertools.html |title=6.5 itertools&nbsp;– Functions creating iterators for efficient looping |publisher=Docs.python.org |accessdate=22 November 2016}}</ref>

<ref name="PEP20">{{cite web |url=https://www.python.org/dev/peps/pep-0020/ |title=PEP 20&nbsp;– The Zen of Python |last=Peters |first=Tim |date=19 August 2004 |work=Python Enhancement Proposals |publisher=Python Software Foundation |accessdate=24 November 2008}}</ref>

<ref name="AutoNT-19">{{cite book | url=http://shop.oreilly.com/product/9780596007973.do | title=Python Cookbook, 2nd Edition | publisher=[[O'Reilly Media]] |last1=Martelli |first1=Alex |last2=Ravenscroft |first2=Anna |last3=Ascher |first3=David | year=2005 | page=230 | isbn=978-0-596-00797-3}}</ref>

<ref name="AutoNT-20">{{Cite web|url=http://ebeab.com/2014/01/21/python-culture/|title=Ebeab.com|website=ebeab.com}}</ref>

<ref name="PepCite000">{{cite web |url=https://www.python.org/dev/peps/pep-0001/ |title=PEP 1&nbsp;– PEP Purpose and Guidelines |last1=Warsaw |first1=Barry |last2=Hylton |first2=Jeremy |last3=Goodger |first3=David |date=13 June 2000 |work=Python Enhancement Proposals |publisher=Python Software Foundation |accessdate=19 April 2011}}</ref>

<ref name="AutoNT-21">{{cite web |url=https://www.python.org/dev/intro/ |title=Guido, Some Guys, and a Mailing List: How Python is Developed |last=Cannon |first=Brett |work=python.org |publisher=Python Software Foundation |accessdate=27 June 2009 |url-status=dead |archiveurl=https://web.archive.org/web/20090601134342/http://www.python.org/dev/intro/ |archivedate=1 June 2009 }}</ref>

<ref name="release-schedule">{{cite web |url=https://mail.python.org/pipermail/python-dev/2002-April/022739.html |title=&#91;Python-Dev&#93; Release Schedules (was Stability & change) |last=Norwitz |first=Neal |date=8 April 2002 |accessdate=27 June 2009}}</ref>

<ref name="AutoNT-22">{{cite web |url=https://www.python.org/dev/peps/pep-0006/ |title=PEP 6&nbsp;– Bug Fix Releases |last1=Aahz |last2=Baxter |first2=Anthony |date=15 March 2001 |work=Python Enhancement Proposals |publisher=Python Software Foundation |accessdate=27 June 2009}}</ref>

<ref name="AutoNT-23">{{cite web |url=https://www.python.org/dev/buildbot/ |title=Python Buildbot |work=Python Developer’s Guide |publisher=Python Software Foundation |accessdate=24 September 2011}}</ref>

<ref name="AutoNT-24">{{cite web |url=https://docs.python.org/3/faq/general.html#why-is-it-called-python |title=General Python FAQ |work=Python v2.7.3 documentation |publisher=Docs.python.org |date= |accessdate=4 June 2020}}</ref>

<ref name="tutorial-chapter1">{{cite web |url=https://docs.python.org/tutorial/appetite.html |title=Whetting Your Appetite |work=The Python Tutorial |publisher=Python Software Foundation |accessdate=20 February 2012}}</ref>

<ref name="AutoNT-25">{{cite web |url=http://python.net/crew/mwh/hacks/objectthink.html |title=How to think like a Pythonista}}</ref>

<ref name="AutoNT-26">{{cite web |url=https://stackoverflow.com/questions/5033906/in-python-should-i-use-else-after-a-return-in-an-if-block |title=In Python, should I use else after a return in an if block? |date=17 February 2011 |work=[[Stack Overflow]] |publisher=Stack Exchange |accessdate=6 May 2011}}</ref>

<ref name="AutoNT-27">{{cite web |url=http://python.net/~goodger/projects/pycon/2007/idiomatic/handout.html |title=Code Like a Pythonista: Idiomatic Python |last=Goodger |first=David |access-date=24 March 2009 |archive-url=https://web.archive.org/web/20140527204143/http://python.net/~goodger/projects/pycon/2007/idiomatic/handout.html |archive-date=27 May 2014 |url-status=dead }}</ref>

<ref name="AutoNT-28">{{cite web |url=http://page.mi.fu-berlin.de/prechelt/Biblio/jccpprt_computer2000.pdf |title=An empirical comparison of C, C++, Java, Perl, Python, Rexx, and Tcl |first=Lutz |last=Prechelt <!-- "work" doesn't work.. |work=[http://page.mi.fu-berlin.de/prechelt/Biblio/ Bibliography of Lutz Prechelt]--> |date=14 March 2000 |accessdate=30 August 2013}}</ref>

<ref name="quotes-about-python">{{cite web |url=https://www.python.org/about/quotes/ |title=Quotes about Python |publisher=Python Software Foundation |accessdate=8 January 2012}}</ref>

<ref name="AutoNT-29">{{cite web |url=https://wiki.python.org/moin/OrganizationsUsingPython |title=Organizations Using Python |publisher=Python Software Foundation |accessdate=15 January 2009}}</ref>

<ref name="AutoNT-30">{{ cite journal |title=Python : the holy grail of programming |journal=CERN Bulletin |issue=31/2006 |publisher=CERN Publications |date=31 July 2006 |url=http://cdsweb.cern.ch/journal/CERNBulletin/2006/31/News%20Articles/974627?ln=en |accessdate=11 February 2012}}</ref>

<ref name="AutoNT-31">{{cite web |url=https://www.python.org/about/success/usa/ |title=Python Streamlines Space Shuttle Mission Design |last=Shafer |first=Daniel G. |date=17 January 2003 |publisher=Python Software Foundation |accessdate=24 November 2008}}</ref>

<ref name="AutoNT-32">{{cite web |url=https://www.python.org/about/success/ilm/ |title=Industrial Light & Magic Runs on Python |last=Fortenberry |first=Tim |date=17 January 2003 |publisher=Python Software Foundation |accessdate=11 February 2012}}</ref>

<ref name="AutoNT-33">{{cite web |url=http://www.eweek.com/c/a/Application-Development/Python-Slithers-into-Systems/ |title=Python Slithers into Systems |last=Taft |first=Darryl K. |date=5 March 2007 |work=eWeek.com |publisher=Ziff Davis Holdings |accessdate=24 September 2011}}</ref>

<ref name="AutoNT-34">{{cite web |title=TIOBE Programming Community Index Python |author=TIOBE Software Index |year=2015 |url=http://www.tiobe.com/index.php/paperinfo/tpci/Python.html |accessdate=10 September 2015}}</ref>

<ref name="AutoNT-35">{{cite web |title=Usage statistics and market share of Python for websites |year=2012 |url=http://w3techs.com/technologies/details/pl-python/all/all |accessdate=18 December 2012}}</ref>

<ref name="AutoNT-38">{{cite web |url=http://www.jasc.com/support/customercare/articles/psp9components.asp |title=jasc psp9components |url-status=dead |archiveurl=https://web.archive.org/web/20080319061519/http://www.jasc.com/support/customercare/articles/psp9components.asp |archivedate=19 March 2008 }}</ref>

<ref name="AutoNT-39">{{cite web |url=http://webhelp.esri.com/arcgisdesktop/9.2/index.cfm?TopicName=About_getting_started_with_writing_geoprocessing_scripts |title=About getting started with writing geoprocessing scripts |date=17 November 2006 |work=ArcGIS Desktop Help 9.2 |publisher=Environmental Systems Research Institute |accessdate=11 February 2012}}</ref>

<ref name="AutoNT-40">{{cite web |url=http://community.eveonline.com/news/dev-blogs/stackless-python-2.7/ |title=Stackless Python 2.7 |publisher=[[CCP Games]] |date=24 August 2010 |author=CCP porkbelly |work=EVE Community Dev Blogs |quote=As you may know, EVE has at its core the programming language known as Stackless Python.}}</ref>

<ref name="AutoNT-41">{{cite web |url=http://www.2kgames.com/civ4/blog_03.htm |title=Modding Sid Meier's Civilization IV |last=Caudill |first=Barry |date=20 September 2005 |publisher=[[Firaxis Games]] |archiveurl=https://web.archive.org/web/20101202164144/http://www.2kgames.com/civ4/blog_03.htm |archivedate=2 December 2010 |work=Sid Meier's Civilization IV Developer Blog |quote=we created three levels of tools ... The next level offers Python and XML support, letting modders with more experience manipulate the game world and everything in it. |url-status=dead |df=dmy-all }}</ref>

<ref name="AutoNT-42">{{cite web |url=https://code.google.com/apis/documents/docs/1.0/developers_guide_python.html |title=Python Language Guide (v1.0) |work=Google Documents List Data API v1.0 |archiveurl=https://web.archive.org/web/20100715145616/http://code.google.com/apis/documents/docs/1.0/developers_guide_python.html |archivedate=15 July 2010 |url-status=dead |df=dmy-all }}</ref>

<ref name="AutoNT-47">{{Cite web|url=http://www.nltk.org/|title=Natural Language Toolkit — NLTK 3.5b1 documentation|website=www.nltk.org}}</ref>

<ref name="AutoNT-49">{{cite web |url=http://www.immunitysec.com/products-immdbg.shtml |title=Immunity: Knowing You're Secure |url-status=dead |archiveurl=https://web.archive.org/web/20090216134332/http://immunitysec.com/products-immdbg.shtml |archivedate=16 February 2009 |df=dmy-all }}</ref>

<ref name="AutoNT-50">{{Cite web|url=https://www.coresecurity.com/|title=Core Security|website=Core Security}}</ref>

<ref name="AutoNT-51">{{cite web |url=http://sugarlabs.org/go/Sugar |title=What is Sugar? |publisher=Sugar Labs |accessdate=11 February 2012}}</ref>

<ref name="AutoNT-52">{{cite web |title=Is Python a good language for beginning programmers? |url=https://docs.python.org/faq/general.html#is-python-a-good-language-for-beginning-programmers |work=General Python FAQ |publisher=Python Software Foundation |accessdate=21 March 2007}}</ref>

<ref name="AutoNT-53">{{cite web |url=http://www.secnetix.de/~olli/Python/block_indentation.hawk |title=Myths about indentation in Python |publisher=Secnetix.de |accessdate=19 April 2011}}</ref>

<!--ref name="AutoNT-54">{{cite web |url=http://c2.com/cgi/wiki?PythonWhiteSpaceDiscussion |title=White Space Discussion |accessdate=1 January 2013}}</ref-->

<ref name="AutoNT-55">{{cite web |last=van Rossum |first=Guido |url=http://neopythonic.blogspot.be/2009/04/tail-recursion-elimination.html |title=Tail Recursion Elimination |publisher=Neopythonic.blogspot.be |date=22 April 2009 |accessdate=3 December 2012}}</ref>

<ref name="AutoNT-56">{{cite web |title=Language Design Is Not Just Solving Puzzles |url=http://www.artima.com/weblogs/viewpost.jsp?thread=147358 |first=Guido |last=van Rossum |date=9 February 2006 |accessdate=21 March 2007 |work=Artima forums |publisher=Artima}}</ref>

<ref name="AutoNT-57">{{cite web |url=https://www.python.org/dev/peps/pep-0342/ |title=PEP 342&nbsp;– Coroutines via Enhanced Generators |last1=van Rossum |first1=Guido |last2=Eby |first2=Phillip J. |date=10 May 2005 |work=Python Enhancement Proposals |publisher=Python Software Foundation |accessdate=19 February 2012}}</ref>

<ref name="AutoNT-58">{{cite web |url=https://www.python.org/dev/peps/pep-0380/ |title=PEP 380 |publisher=Python.org |date= |accessdate=3 December 2012}}</ref>

<ref name="AutoNT-59">{{cite web |url=https://www.python.org/dev/peps/pep-0289/ |title=PEP 289&nbsp;– Generator Expressions |last=Hettinger |first=Raymond |date=30 January 2002 |work=Python Enhancement Proposals |publisher=Python Software Foundation |accessdate=19 February 2012}}</ref>

<ref name="AutoNT-60">{{cite web |url=https://www.python.org/dev/peps/pep-0308/ |title=PEP 308&nbsp;– Conditional Expressions |last1=van Rossum |first1=Guido |last2=Hettinger |first2=Raymond |date=7 February 2003 |work=Python Enhancement Proposals |publisher=Python Software Foundation |accessdate=13 July 2011}}</ref>

<ref name="AutoNT-61">{{cite web |url=https://docs.python.org/faq/design.html#why-must-self-be-used-explicitly-in-method-definitions-and-calls |title=Why must 'self' be used explicitly in method definitions and calls? |work=Design and History FAQ |publisher=Python Software Foundation |accessdate=19 February 2012}}</ref>

<ref name="classy">{{cite web |title=The Python Language Reference, section 3.3. New-style and classic classes, for release 2.7.1 |accessdate=12 January 2011 |url=https://docs.python.org/reference/datamodel.html#new-style-and-classic-classes}}</ref>

<ref name="pep0237">{{cite web |url=https://www.python.org/dev/peps/pep-0237/ |title=PEP 237&nbsp;– Unifying Long Integers and Integers |last1=Zadka |first1=Moshe |last2=van Rossum |first2=Guido |date=11 March 2001 |work=Python Enhancement Proposals |publisher=Python Software Foundation |accessdate=24 September 2011}}</ref>

<ref name="AutoNT-62">{{cite web |url=https://python-history.blogspot.com/2010/08/why-pythons-integer-division-floors.html |title=Why Python's Integer Division Floors |accessdate=25 August 2010}}</ref>

<ref name="AutoNT-63">{{citation |url=https://docs.python.org/library/functions.html#round |accessdate=14 August 2011 |title=round |work=The Python standard library, release 2.7, §2: Built-in functions}}</ref>

<ref name="AutoNT-64">{{citation |url=https://docs.python.org/py3k/library/functions.html#round |accessdate=14 August 2011 |title=round |work=The Python standard library, release 3.2, §2: Built-in functions}}</ref>

<ref name="AutoNT-65">{{cite book | title=Python Essential Reference | url=https://archive.org/details/pythonessentialr00beaz_036 | url-access=limited | first1=David M. |last1=Beazley | edition=4th | year = 2009 | page =[https://archive.org/details/pythonessentialr00beaz_036/page/n90 66] }}</ref>

<ref name="CPL">{{cite book | title=The C Programming Language | first1=Brian W. | last1=Kernighan | first2=Dennis M. | last2=Ritchie |titlelink=The C Programming Language | edition=2nd | year=1988 | page=[https://archive.org/details/cprogramminglang00bria/page/206 206] }}</ref>

<ref name="AutoNT-66">{{cite web |url=https://www.python.org/dev/peps/pep-0007/ |title=PEP 7&nbsp;– Style Guide for C Code |last=van Rossum |first=Guido |date=5 June 2001 |work=Python Enhancement Proposals |publisher=Python Software Foundation |accessdate=24 November 2008}}</ref>

<ref name="AutoNT-67">{{cite web |url=https://docs.python.org/3/library/dis.html#python-bytecode-instructions |title=CPython byte code |publisher=Docs.python.org |accessdate=16 February 2016}}</ref>

<ref name="AutoNT-68">{{cite web |url=http://www.troeger.eu/teaching/pythonvm08.pdf |title=Python 2.5 internals |accessdate=19 April 2011}}</ref>

<ref name="AutoNT-69">{{cite web |url=http://www.oreilly.com/pub/a/oreilly/frank/rossum_1099.html |title=An Interview with Guido van Rossum |publisher=Oreilly.com |accessdate=24 November 2008}}</ref>

<ref name="AutoNT-70">{{cite web |url=https://pypy.org/compat.html |title=PyPy compatibility |publisher=Pypy.org |date= |accessdate=3 December 2012}}</ref>

<ref name="AutoNT-71">{{cite web |url=http://speed.pypy.org/ |title=speed comparison between CPython and Pypy |publisher=Speed.pypy.org |date= |accessdate=3 December 2012}}</ref>

<ref name="AutoNT-73">{{cite web |url=http://doc.pypy.org/en/latest/stackless.html |title=Application-level Stackless features — PyPy 2.0.2 documentation |publisher=Doc.pypy.org |accessdate=17 July 2013}}</ref>

<ref name="AutoNT-74">{{cite web |url=https://code.google.com/p/unladen-swallow/wiki/ProjectPlan |title=Plans for optimizing Python |work=Google Project Hosting |date=15 December 2009 |accessdate=24 September 2011}}</ref>

<ref name="AutoNT-86">{{cite web |first=Przemyslaw |last=Piotrowski |url=http://www.oracle.com/technetwork/articles/piotrowski-pythoncore-084049.html |title=Build a Rapid Web Development Environment for Python Server Pages and Oracle |work=Oracle Technology Network |publisher=Oracle |date=July 2006 |accessdate=12 March 2012}}</ref>

<ref name="AutoNT-88">{{cite web |url=https://www.python.org/dev/peps/pep-0327/ |title=PEP 327&nbsp;– Decimal Data Type |last=Batista |first=Facundo |date=17 October 2003 |work=Python Enhancement Proposals |publisher=Python Software Foundation |accessdate=24 November 2008}}</ref>

<ref name="AutoNT-89">{{cite web |url=https://www.python.org/dev/peps/pep-0333/ |title=PEP 333&nbsp;– Python Web Server Gateway Interface v1.0 |last=Eby |first=Phillip J. |date=7 December 2003 |work=Python Enhancement Proposals |publisher=Python Software Foundation |accessdate=19 February 2012}}</ref>

<ref name="AutoNT-90">{{cite web |url=http://boo.codehaus.org/Gotchas+for+Python+Users |title=Gotchas for Python Users |work=boo.codehaus.org |publisher=Codehaus Foundation |accessdate=24 November 2008 |url-status=dead |archiveurl=https://web.archive.org/web/20081211062108/http://boo.codehaus.org/Gotchas+for+Python+Users |archivedate=11 December 2008 |df=dmy-all }}</ref>

<ref name="AutoNT-91">{{cite web |url=http://cobra-language.com/docs/acknowledgements/ |title=Acknowledgements |last=Esterbrook |first=Charles |work=cobra-language.com |publisher=Cobra Language |accessdate=7 April 2010}}</ref>

<!-- <ref name="AutoNT-92">{{cite web |url=http://cobra-language.com/docs/python/ |title=Comparison to Python |last=Esterbrook |first=Charles |work=cobra-language.com |publisher=Cobra Language |accessdate=7 April 2010}}</ref>-->

<ref name="AutoNT-93">{{cite web |url=http://wiki.ecmascript.org/doku.php?id=proposals:iterators_and_generators |archive-url=https://web.archive.org/web/20071020082650/http://wiki.ecmascript.org/doku.php?id=proposals:iterators_and_generators |url-status=dead |archive-date=20 October 2007 |title=Proposals: iterators and generators [ES4 Wiki&#93; |publisher=wiki.ecmascript.org |accessdate=24 November 2008 }}</ref>

<ref name="AutoNT-94">{{cite news |url=https://techcrunch.com/2009/11/10/google-go-language/ |title=Google's Go: A New Programming Language That's Python Meets C++ |last=Kincaid |first=Jason |date=10 November 2009 |work=TechCrunch |accessdate=29 January 2010}}</ref>

<ref name="AutoNT-95">{{cite web |last=Strachan |first=James |date=29 August 2003 |title=Groovy&nbsp;– the birth of a new dynamic language for the Java platform |url=http://radio.weblogs.com/0112098/2003/08/29.html |access-date=11 June 2007 |archive-url=https://web.archive.org/web/20070405085722/http://radio.weblogs.com/0112098/2003/08/29.html |archive-date=5 April 2007 |url-status=dead }}</ref>

<ref name="linuxdevcenter">{{cite web |url=http://www.linuxdevcenter.com/pub/a/linux/2001/11/29/ruby.html |title=An Interview with the Creator of Ruby |publisher=Linuxdevcenter.com |date= |accessdate=3 December 2012}}</ref>

<ref name="AutoNT-99">{{cite web |url=http://www.tcl.tk/cgi-bin/tct/tip/3.html |title=TIP #3: TIP Format |last1=Kupries |first1=Andreas |last2=Fellows |first2=Donal K. |work=tcl.tk |publisher=Tcl Developer Xchange |date=14 September 2000 |accessdate=24 November 2008}}</ref>

<ref name="AutoNT-100">{{cite web |url=http://www.erlang.org/eeps/eep-0001.html |title=EEP 1: EEP Purpose and Guidelines |last1=Gustafsson |first1=Per |last2=Niskanen |first2=Raimo |publisher=erlang.org |date=29 January 2007 |accessdate=19 April 2011}}</ref>

<!-- <ref name="AutoNT-101">{{cite web |url=http://www.tiobe.com/index.php/content/paperinfo/tpci/ |title=TIOBE Programming Community Index for March 2012 |date=March 2012 |publisher=TIOBE Software |accessdate=25 March 2012}}</ref>-->

<ref name="lj-bdfl-resignation">{{cite magazine |url=https://www.linuxjournal.com/content/guido-van-rossum-stepping-down-role-pythons-benevolent-dictator-life |title=Guido van Rossum Stepping Down from Role as Python's Benevolent Dictator For Life |last=Fairchild |first=Carlie |magazine=Linux Journal |date=12 July 2018 |accessdate=13 July 2018}}</ref>

}}


== แหล่งข้อมูลอื่น ==
== แหล่งข้อมูลอื่น ==

รุ่นแก้ไขเมื่อ 14:22, 24 กรกฎาคม 2563

กระบวนทัศน์การเขียนโปรแกรม หลากหลายรูปแบบ เช่นการเขียนโปรแกรมเชิงวัตถุ, หรือการเขียนโปรแกรมเชิงฟังก์ชัน
ออกแบบโดย คีโด ฟัน โรสซึม
พัฒนาโดย มูลนิธิซอฟต์แวร์ไพทอน
เริ่มในปี ค.ศ. 1990 (1990)
รุ่นเสถียรล่าสุด 3.8.5
20 มิถุนายน ค.ศ. 2020 (2020-06-20)[1]
รุ่นกำลังพัฒนาล่าสุด 3.9.0b5
20 กรกฎาคม ค.ศ. 2020 (2020-07-20)[2]
ระบบปฏิบัติการ ลินุกซ์, วินโดวส์, แมคโอเอส และอื่นๆ
มีอิทธิพลจาก ABC, Perl, Lisp, Smalltalk, Tcl
มีอิทธิพลต่อ Ruby, Boo
ลิขสิทธิ์ ลิขสิทธิ์มูลนิธิซอฟต์แวร์ไพทอน
เว็บไซต์ www.python.org

ภาษาไพทอน (Python programming language) หรือที่มักเรียกกันว่าไพทอน เป็นภาษาระดับสูงซึ่งสร้างโดยคีโด ฟัน โรสซึม โดยเริ่มในปีพ.ศ.2533 การออกแบบของภาษาไพทอนมุ่งเน้นให้ผู้โปรแกรมสามารถอ่านชุดคำสั่งได้โดยง่ายผ่านการใช้งานอักขระเว้นว่าง (whitespaces) จำนวนมาก นอกจากนั้นการออกแบบภาษาไพทอนและการประยุกต์ใช้แนวคิดการเขียนโปรแกรมเชิงวัตถุในตัวภาษายังช่วยให้นักเขียนโปรแกรมสามารถเขียนโปรแกรมที่เป็นระเบียบ อ่านง่าย มีขนาดเล็ก และง่ายต่อการบำรุง[3]

ไพทอนเป็นภาษาแบบไดนามิกพร้อมตัวเก็บขยะ ไพทอนรองรับกระบวนทัศน์การเขียนโปรแกรมหลายรูปแบบ ซึ่งรวมถึงแต่ไม่จำกัดเพียงการเขียนโปรแกรมตามลำดับขั้น การเขียนโปรแกรมเชิงวัตถุ หรือการเขียนโปรแกรมเชิงฟังก์ชัน นอกจากนี้ไพทอนเป็นภาษาที่มักถูกอธิบายว่าเป็นภาษาโปรแกรมแบบ "มาพร้อมถ่าน" (batteries included) กล่าวคือไพทอนมาพร้อมกับไลบรารีมาตรฐานจำนวนมาก เช่นโครงสร้างข้อมูลแบบซับซ้อน และไลบรารีสำหรับคณิตศาสตร์

ไพทอนมักถูกมองว่าเป็นภาษาที่สร้างต่อจากภาษา ABC โดยไพทอน 2.0 ซึ่งออกเผยแพร่เมื่อปีพ.ศ.2543 มาพร้อมกับเครื่องมือสำหรับการเขียนโปรแกรมจำนวหนึ่ง อย่างเช่นตัวสร้างแถวรายการ (list comprehension)

ไพทอนรุ่น 3.0 เป็นไพทอนรุ่นที่ได้รับการปรับปรุงและแก้ไขจำนวนมาก ทว่าความเปลี่ยนแปลงไนไพทอน 3 นั้นเป็นการเปลี่ยนแปลงที่ไม่เข้ากันแบบย้อนหลัง กล่าวคือชุดคำสั่งที่เขียนสำหรับไพทอน 2 อาจไม่ทำงานตามปกติเมื่อสั่งให้ทำงานบนตัวแปลภาษาของไพทอน 3

ไพทอนรุ่น 2.0 หมดการสนับสนุนอย่างเป็นทางการในปีพ.ศ.2563 โดยการหมดการสนับสนุนนี้ถูกวางแผนตั้งแต่ปีพ.ศ.2558 และไพทอนรุ่น 2.7.18 เป็นไพทอนรุ่น 2.7 และรุ่นตระกูล 2.0 ตัวสุดท้ายที่ออกเผยแพร่[4] โดยหลังจากนี้จะไม่มีการสนับสนุนความปลอดภัยหรือการปรับปรุงอื่นใดเพิ่มเติมสำหรับภาษาไพทอนรุ่น 2.0 อีก[5][6]

อินเทอร์พรีเตอร์ของภาษาไพทอนสามารถใช้งานได้บนหลายระบบปฏิบัติการ ชุมชนนักพัฒนาโปรแกรมของไพทอนร่วมกันดูแลโครงการซีไพทอนโดยมีมูลนิธิซอฟต์แวร์ไพทอนซึ่งเป็นองค์กรไม่แสวงผลกำไร ทำหน้าที่ดูแลและจัดการทรัพยากรสำหรับการพัฒนาไพทอนและซีไพทอน

คุณสมบัติและปรัชญาการออกแบบ

ผู้ใช้ภาษาไพทอนสามารถเลือกกระบวนทัศน์การเขียนโปรแกรมตามที่ตนเองถนัดได้ โดยรองรับการเขียนโปรแกรมเชิงโครงสร้างและการเขียนโปรแกรมเชิงวัตถุอย่างเต็มรูปแบบ รวมถึงรองรับการเขียนโปรแกรมเชิงฟังก์ชัน (ทั้งในรูปแบบของการเขียนโปรแกรมเชิงลักษณะ และการเขียนโปรแกรมเชิงเมตาออบเจกต์) ส่วนขยายของไพทอนทำให้สามารถเขียนโปรแกรมด้วยกระบวนทัศน์อื่น เช่นการเขียนโปรแกรมเชิงตรรกะ

ไพทอนเก็บข้อมูลแบบไดนามิก (dynamic type) และใช้ขั้นตอนวิธีการนับการอ้างอิง (Reference counting) ประกอบรวมกับตัวเก็บขยะ (garbage collector) เพื่อจัดการหน่วยความจำ

ไพทอนมาพร้อมเครื่องมือสำหรับการเขียนโปรแกรมเชิงฟังก์ชั่นแบบที่พบในภาษาลิสป์ นอกจากนี้ไพทอนมีเครื่องมืออย่างเช่นฟังก์ชัน filter map และ reduce, เครื่องมือการสร้างลิสต์ (list comprehension), แถวลำดับแบบจับคู่ (ในชื่อของ Dictionary), เซต และเครื่องมือสร้างการวนซ้ำ (generator)

แนวคิดและหลักการของไพทอนถูกสรุปในเอกสารชื่อว่า Zen of Python ซึ่งระบุหลักการของภาษาไว้เช่น

  • สวยงามดีกว่าน่าเกลียด (Beautiful is better than ugly.)
  • ชัดแจ้งดีกว่าซ่อนเร้น (Explicit is better than implicit.)
  • เรียบง่ายดีกว่าซับซ้อน (Simple is better than complex.)
  • ซับซ้อนดีกว่ายุ่งเหยิง (Complex is better than complicated.)
  • ต้องใส่ใจการอ่านออกได้ง่าย (Readability counts.)

ไพทอนไม่ได้ถูกออกแบบมาให้มีคุณสมบัติและความสามารถในการทำงานทุกอย่าง แต่ไพทอนถูกออกแบบมาให้สามารถถูกต่อยอดได้ง่าย การออกแบบในลักษณะนี้ทำให้ตัวของภาษาไพทอนได้รับความนิยมเนื่องด้วยความสามารถในการเพิ่มส่วนต่อขยายหรือชุดคุณสมบัติลงไปในแอปพลิเคชั่นที่มีอยู่ก่อนหน้านี้ การออกแบบในลักษณะนี้มาจากวิสัยทัศน์ของฟัน โรสซึมที่ต้องการเห็นการออกแบบภาษาโปรแกรมที่มีระบบแกนกลางขนาดเล็ก แต่มาพร้อมไลบรารีชุดคำสั่งขนาดใหญ่ โดยเป้าหมายการออกแบบลักษณะนี้มาจากความไม่สะดวกในการใช้ภาษา ABC ที่ฟัน โรสซึมเคยเจอมาก่อนหน้านี้

โครงสร้างทางวากยสัมพันธ์ (syntax) ของภาษาไพทอนมุ่งเน้นความเรียบง่ายและไม่ยุ่งเหยิง ในขณะเดียวกันยังคงให้อิสระกับนักพัฒนาโปรแกรมในการเลือกวิธีการเขียนโปรแกรมได้เอง ปรัชญาการออกแบบนี้ของไพทอนอยู่บนความเชื่อที่ว่า "ควรจะมีทางเดียว—และทางเดียวเท่านั้น—ในการทำอะไรสักอย่าง" ("there should be one—and preferably only one—obvious way to do it") ซึ่งตรงกันข้ามกับแนวคิดการออกแบบของภาษาเพิร์ลที่เชื่อว่า "เราควรทำอะไรได้มากกว่าหนึ่งวิธี" ("There's more than one way to do it") หากจะกล่าวให้ละเอียด อะเล็กซ์ มาร์เตลลี ผู้เขียนตำราภาษาไพทอน และสมาชิกของมูลนิธิซอฟต์แวร์ไพทอน กล่าวว่า "ในวัฒนธรรมของไพทอน การอธิบายว่า[วิธีการเขียนโปรแกรม]บางอย่างนั้นฉลาดมาก ไม่ถือเป็นคำชม"

นักพัฒนาโปรแกรมที่ใช้ภาษาไพทอนมักพยายามหลีกเลี่ยงการปรับปรุงประสิทธิภาพก่อนถึงเวลาอันควร (premature optimisation) และมักปฏิเสธการรวมโค้ดของโครงการ CPython ที่ต้องแลกประสิทธิภาพที่เพิ่มขึ้นมาเล็กน้อยกับความอ่านยากของโค้ด โดยเมื่อต้องเขียนชุดคำสั่งที่เวลาประมวลผลเป็นเรื่องสำคัญ นักพัฒนาโปรแกรมไพทอนจะนิยมเขียนส่วยขยายของโปรแกรมนั้นด้วยภาษา C แยกออกมา หรือใช้ PyPy ซึ่งเป็นตัวแปลภาษาแบบในเวลา (Just-in-time compiler) สำหรับภาษาไพทอน นอกจากนี้นักพัฒนายังมีตัวเลือกอื่นเช่นการใช้ไซทอนซึ่งเป็นตัวแปลรหัสคำสั่งจากภาษาไพทอนไปเป็นภาษาซี

หนึ่งในเป้าหมายสำคัญของภาษาไพทอนคือความสนุกในการใช้งาน ชื่อของภาษาโปรแกรมมิงไพทอนนั้นมาจากชื่อของกลุ่มนักแสดงตลก Monty Python จากประเทศอังกฤษ ความมุ่งมั่นในการทำให้ภาษาไพทอนนั้นสนุกต่อการใช้นั้นพบเห็นได้เพิ่มเติมจากตัวอย่างของชุดคำสั่งในภาษาไพทอนบนเว็บไซต์ของโครงการไพทอนเอง ซึ่งเลือกใช้คำอย่างเช่น "spam and eggs" (เพื่อล้อกับตอนหนึ่งของรายการตลกจาก Monty Python) แทนที่จะเลือกใช้คำทั่วไปอย่าง foo และ bar ตามตัวอย่างภาษาโปรแกรมมิงอื่น

ชุมชนไพทอนมักนิยมใช้วลี "มีความเป็นไพทอน" (Pythonic) เพื่อกล่าวถึงรูปแบบของชุดคำสั่งของไพทอนที่มีความสะอาดสะอ้านและถูกเขียนขึ้นในลักษณะที่สอดคล้องกับปรัชญาการออกแบบดังกล่าว กล่าวคือมีความอ่านง่ายและแสดงถึงความรู้ในการเขียนชุดคำสั่งภาษาไพทอนได้เป็นอย่างดี ในทางตรงกันข้าม ชุดคำสั่งที่ไม่สามารถอ่านได้โดยง่าย (กล่าวคือชุดคำสั่งที่เหมือนการแปลงชุดคำจั่งจากภาษาโปรแกรมอื่นมาเป็นไพทอนแบบบรรทัดต่อบรรทัด) มักจะถูกเรียกว่าชุดคำสั่งที่ "ไม่มีความเป็นไพทอน" (Unpythonic)

ผู้ใช้ ผู้หลงใหล หรือผู้สันทัดภาษาไพทอนมักได้รับการขนานนามว่าเป็น "ไพธอนิสตา" (Pythonista)

จุดเด่นของภาษาไพทอน

ความเป็นภาษาสคริปต์

เนื่องจากไพทอนเป็นภาษาสคริปต์ ทำให้ใช้เวลาในการเขียนและคอมไพล์ไม่มาก ทำให้เหมาะกับงานด้านการดูแลระบบ (System administration) เป็นอย่างยิ่ง มีการสนับสนุนภาษาไพทอนโดยเป็นส่วนหนึ่งของระบบปฏิบัติการยูนิกซ์, ลินุกซ์ และสามารถติดตั้งให้ทำงานเป็นภาษาสคริปต์ของวินโดวส์ ผ่านระบบ Windows Script Host ได้อีกด้วย

ไวยากรณ์ที่อ่านง่าย

ไวยากรณ์ของไพทอนได้กำจัดการใช้สัญลักษณ์ที่ใช้ในการแบ่งบล็อกของโปรแกรม และใช้การย่อหน้าแทน ทำให้สามารถอ่านโปรแกรมที่เขียนได้ง่าย นอกจากนั้นยังมีการสนับสนุนการเขียน docstring ซึ่งเป็นข้อความสั้น ๆ ที่ใช้อธิบายการทำงานของฟังก์ชัน, คลาส และโมดูลอีกด้วย

ความเป็นภาษากาว

ไพทอนเป็นภาษากาว (Glue Language) ได้อย่างดีเนื่องจากสามารถเรียกใช้ภาษาโปรแกรมอื่น ๆ ได้หลายภาษา ทำให้เหมาะที่จะใช้เขียนเพื่อประสานงานโปรแกรมที่เขียนในภาษาต่างกันได้

ตัวอย่างภาษาโปรแกรมไพทอน

ตัวอย่างด้านล่างเป็นตัวอย่างสำหรับโปรแกรมซึ่งเขียนด้วยภาษาไพทอน 3 ซึ่งมีโครงสร้างทางวากยสัมพันธ์ต่างจากไพทอน 2

โปรแกรมสวัสดีชาวโลก

print('Hello, world!')

โปรแกรมสำหรับการคำนวณเลขแฟกทอเรียลของจำนวนเต็มบวกใดๆ

# คำสั่งในบรรทัดด้านล่างรับเข้าตัวเลข ก่อนแปลงเป็นจำนวนเต็มบวก
# ชุดคำสั่ง `int()` ในไพทอนจะตัดทศนิยมทิ้งโดยอัตโนมัติ
n = int(input('กรุณาป้อนข้อมูลรับเข้าตัวเลขใดๆ เพื่อคำนวณค่าแฟกทอเรียล: '))

# หากตัวเลขมีค่าน้อยกว่า 0 ให้ทำการยกแสดงข้อผิดพลาด (error raising)
# โดยให้แสดงข้อผิดพลาดแบบ `ValueError` ขึ้นมา
if n < 0:
    raise ValueError('คุณจำเป็นต้องป้อนจำนวนเต็มบวก')

# ประกาศค่าตั้งต้นของแฟกทอเรียล
fact = 1

# วนซ้ำสำหรับค่า i ตั้งแต่ 2 ถึง (n+1)
for i in range(2, n + 1):
    # เทียบเท่ากับ fact = fact * i
    fact *= i

# แสดงผลคำตอบ
print(fact)

ไพทอนในแพลตฟอร์มต่าง ๆ

ผู้เขียนโปรแกรมภาษาไพทอนสามารถเลือกใช้แพลตฟอร์ม

ซีไพทอน

ซีไพทอน (CPython) คือแพลตฟอร์มภาษาไพทอนดั้งเดิม โปรแกรมอินเทอร์พรีเตอร์ถูกเขียนโดยภาษาซี ซึ่งคอมไพล์ใช้ได้บนหลายระบบปฏิบัติการ เช่น วินโดวส์, ยูนิกซ์, ลินุกซ์ การใช้งานสามารถทำได้โดยการติดตั้งโปรแกรมอินเทอร์พรีเตอร์และแพ็คเกจที่จำเป็นต่าง ๆ

ไจธอน

ไจธอน (Jython) เป็นแพลตฟอร์มภาษาไพทอนที่ถูกพัฒนาบนแพลตฟอร์มจาวา เพื่อเพิ่มอำนวยความสะดวกในการใช้ความสามารถภาษาสคริปต์ของไพทอนลงในซอฟต์แวร์จาวาอื่น ๆ การใช้งานสามารถทำได้โดยการติดตั้งจาวาและเรียกไลบรารีของไจธอนซึ่งมาในรูปไบนารีเพื่อใช้งาน

ไพทอนดอตเน็ต

Python.NET เป็นการพัฒนาภาษาไพทอนให้สามารถทำงานบนดอตเน็ตเฟรมเวิร์กของไมโครซอฟท์ได้ โดยโปรแกรมที่ถูกเขียนจะถูกแปลงเป็น CLR ปัจจุบันมีโครงการที่นำภาษาไพทอนมาใช้บน .NET Framework ของไมโครซอฟท์แล้วคือโครงการ IronPython

ไลบรารีในไพทอน

การเขียนโปรแกรมในภาษาไพทอนโดยใช้ไลบรารีต่าง ๆ เป็นการลดภาระของโปรแกรมเมอร์ได้เป็นอย่างดี ทำให้โปรแกรมเมอร์ไม่ต้องเสียเวลากับการเขียนคำสั่งที่ซ้ำ ๆ เช่นการแสดงผลข้อมูลออกสู่หน้าจอ หรือการรับค่าต่าง ๆ

ไพทอนมีชุดไลบรารีมาตรฐานมาให้ตั้งแต่ติดตั้งอินเตอร์พรีเตอร์ นอกจากนั้นยังมีผู้พัฒนาจากทั่วโลกดำเนินการพัฒนาไลบรารีซึ่งช่วยอำนวยความสะดวกในด้านต่าง ๆ โดยจะเผยแพร่ในรูปแบบของแพ็คเกจต่าง ๆ ซึ่งสามารถติดตั้งเพิ่มเติมได้อีกด้วย

แพ็คเกจเพิ่มเติมที่น่าสนใจ

การนำไปใช้งาน

ด้วยความยืดหยุ่นของภาษาไพทอน และความเป็น ภาษาสคริปต์ทำให้มีการใช้งานไพทอนอย่างกว้างขวาง

ตัวแก้ไขสำหรับไพทอน

ผู้ใช้สามารถใช้ตัวแก้ไขข้อความทั่วไปในการแก้ไขโปรแกรมภาษาไพทอน นอกจากนั้นยังมี Integrated Development Environmentอื่น ๆ ให้เลือกใช้อีก อาทิ

  • PyScripter: เป็นชุดเครื่องมือสำหรับพัฒนาภาษาไพทอน บนระบบปฏิบัติการวินโดวน์ ที่ให้ผู้ใช้สามารถนำไปใช้ฟรี (open source)
  • Python IDLE: มีอยู่ในชุดอินเตอร์พรีเตอร์อยู่แล้ว สามารถเลือกติดตั้งได้
  • PythonWin: เป็นตัวแก้ไขในชุดของ PyWin32
  • ActivePython: จาก ActiveState (ล่าสุด รุ่น 2.5.1 )
  • SPE (Stani's Python Editor) : เป็นตัวแก้ไขที่มาพร้อมกับตัวออกแบบยูสเซอร์อินเทอร์เฟส wxGlade และเครื่องมือสำหรับ Regular Expression มีระบบ Syntax Highlight และการจัดย่อหน้าตามวากยสัมพันธ์ของไพทอนให้อัตโนมัติพัฒนาขึ้นจากภาษาไพทอนดาวน์โหลดใช้งานได้ฟรีที่ http://spe.pycs.net
  • WingIDE: ตัวแก้ไขที่มีระบบ Syntax Highlight และการจัดย่อหน้าตามไวยกรณ์ของไพทอนให้อัตโนมัติ แต่ไม่ใช่ฟรีแวร์
  • Komodo: ตัวแก้ไขที่มีระบบ Syntax Highlight, การจัดย่อหน้าตามไวยกรณ์ของไพทอนให้อัตโนมัติและเติมคำอัตโนมัติ เป็นตัวแก้ไขจาก ActiveState อีกตัวหนึ่ง ไม่ใช่ฟรีแวร์
  • Pydev: เป็น Python IDE สำหรับ Eclipse สามารถใช้พัฒนา Python, Jython และ Ironpython
  • PyCharm: เป็น Python IDE ที่สร้างขึ้นโดยบริษัท JetBrains แบ่งออกเป็น 2 เวอร์ชัน ได้แก่ Community Edition (ใช้งานฟรี) และ Professional Edition (เสียเงินสามารถทดลองใช้ได้ 30 วัน) โดย Professional Edition จะเพิ่มความสามารถในการตรวจ syntax ของเฟรมเวิร์กที่ได้รับความนิยมที่ใช้งานร่วมกับภาษาไพทอน เช่น Django, Flask, Google App Engine เป็นต้น

องค์กรสำคัญที่ใช้ไพทอน

ซอฟต์แวร์ที่เขียนด้วยไพทอน

  • บิตทอร์เรนต์ (BitTorrent)
  • Chandler โปรแกรมจัดการข้อมูลส่วนบุคคล
  • บางส่วนของ GNOME
  • บางส่วนของ Blender
  • Mailman โปรแกรมจัดการจดหมายกลุ่ม (เมลลิ่งลิสต์)
  • MoinMoin โปรแกรมวิกิ
  • Portage ส่วนจัดการแพกเกจของ Gentoo Linux
  • Zope แอปพลิเคชันเซิร์ฟเวอร์
  • เทอร์โบเกียร์ กรอบงานขนาดใหญ่สำหรับพัฒนาโปรแกรมประยุกต์บนเว็บ
  • Django กรอบงานขนาดใหญ่สำหรับพัฒนาโปรแกรมประยุกต์บนเว็บ

อ้างอิง

  1. "Python 3.5.0 Release". Python Software Foundation. สืบค้นเมื่อ 13 Sep 2015.
  2. "Python 3.9.0b5". Python.org. สืบค้นเมื่อ 20 July 2020.
  3. https://web.archive.org/web/20120623165941/http://cutter.rexx.com/~dkuhlman/python_book_01.html
  4. Peterson, Benjamin (2020-04-20). "Python Insider: Python 2.7.18, the last release of Python 2". Python Insider. สืบค้นเมื่อ 2020-04-27.
  5. "Sunsetting Python 2". Python.org (ภาษาอังกฤษ). สืบค้นเมื่อ 2019-09-22.
  6. "PEP 373 -- Python 2.7 Release Schedule". Python.org (ภาษาอังกฤษ). สืบค้นเมื่อ 2019-09-22.

อ้างอิงผิดพลาด: ป้ายระบุ <ref> ชื่อ "faq-created" ซึ่งนิยามใน <references> ไม่ถูกใช้ในข้อความก่อนหน้า
อ้างอิงผิดพลาด: ป้ายระบุ <ref> ชื่อ "98-interview" ซึ่งนิยามใน <references> ไม่ถูกใช้ในข้อความก่อนหน้า
อ้างอิงผิดพลาด: ป้ายระบุ <ref> ชื่อ "AutoNT-1" ซึ่งนิยามใน <references> ไม่ถูกใช้ในข้อความก่อนหน้า
อ้างอิงผิดพลาด: ป้ายระบุ <ref> ชื่อ "classmix" ซึ่งนิยามใน <references> ไม่ถูกใช้ในข้อความก่อนหน้า
อ้างอิงผิดพลาด: ป้ายระบุ <ref> ชื่อ "effbot-call-by-object" ซึ่งนิยามใน <references> ไม่ถูกใช้ในข้อความก่อนหน้า
อ้างอิงผิดพลาด: ป้ายระบุ <ref> ชื่อ "AutoNT-2" ซึ่งนิยามใน <references> ไม่ถูกใช้ในข้อความก่อนหน้า
อ้างอิงผิดพลาด: ป้ายระบุ <ref> ชื่อ "AutoNT-3" ซึ่งนิยามใน <references> ไม่ถูกใช้ในข้อความก่อนหน้า
อ้างอิงผิดพลาด: ป้ายระบุ <ref> ชื่อ "pep0238" ซึ่งนิยามใน <references> ไม่ถูกใช้ในข้อความก่อนหน้า
อ้างอิงผิดพลาด: ป้ายระบุ <ref> ชื่อ "AutoNT-4" ซึ่งนิยามใน <references> ไม่ถูกใช้ในข้อความก่อนหน้า
อ้างอิงผิดพลาด: ป้ายระบุ <ref> ชื่อ "AutoNT-5" ซึ่งนิยามใน <references> ไม่ถูกใช้ในข้อความก่อนหน้า
อ้างอิงผิดพลาด: ป้ายระบุ <ref> ชื่อ "AutoNT-6" ซึ่งนิยามใน <references> ไม่ถูกใช้ในข้อความก่อนหน้า
อ้างอิงผิดพลาด: ป้ายระบุ <ref> ชื่อ "bini" ซึ่งนิยามใน <references> ไม่ถูกใช้ในข้อความก่อนหน้า
อ้างอิงผิดพลาด: ป้ายระบุ <ref> ชื่อ "AutoNT-7" ซึ่งนิยามใน <references> ไม่ถูกใช้ในข้อความก่อนหน้า
อ้างอิงผิดพลาด: ป้ายระบุ <ref> ชื่อ "About" ซึ่งนิยามใน <references> ไม่ถูกใช้ในข้อความก่อนหน้า
อ้างอิงผิดพลาด: ป้ายระบุ <ref> ชื่อ "venners-interview-pt-1" ซึ่งนิยามใน <references> ไม่ถูกใช้ในข้อความก่อนหน้า
อ้างอิงผิดพลาด: ป้ายระบุ <ref> ชื่อ "timeline-of-python" ซึ่งนิยามใน <references> ไม่ถูกใช้ในข้อความก่อนหน้า
อ้างอิงผิดพลาด: ป้ายระบุ <ref> ชื่อ "AutoNT-12" ซึ่งนิยามใน <references> ไม่ถูกใช้ในข้อความก่อนหน้า
อ้างอิงผิดพลาด: ป้ายระบุ <ref> ชื่อ "newin-2.0" ซึ่งนิยามใน <references> ไม่ถูกใช้ในข้อความก่อนหน้า
อ้างอิงผิดพลาด: ป้ายระบุ <ref> ชื่อ "3.0-release" ซึ่งนิยามใน <references> ไม่ถูกใช้ในข้อความก่อนหน้า
อ้างอิงผิดพลาด: ป้ายระบุ <ref> ชื่อ "pep-3000" ซึ่งนิยามใน <references> ไม่ถูกใช้ในข้อความก่อนหน้า
อ้างอิงผิดพลาด: ป้ายระบุ <ref> ชื่อ "AutoNT-13" ซึ่งนิยามใน <references> ไม่ถูกใช้ในข้อความก่อนหน้า
อ้างอิงผิดพลาด: ป้ายระบุ <ref> ชื่อ "AutoNT-14" ซึ่งนิยามใน <references> ไม่ถูกใช้ในข้อความก่อนหน้า
อ้างอิงผิดพลาด: ป้ายระบุ <ref> ชื่อ "AutoNT-15" ซึ่งนิยามใน <references> ไม่ถูกใช้ในข้อความก่อนหน้า
อ้างอิงผิดพลาด: ป้ายระบุ <ref> ชื่อ "AutoNT-16" ซึ่งนิยามใน <references> ไม่ถูกใช้ในข้อความก่อนหน้า
อ้างอิงผิดพลาด: ป้ายระบุ <ref> ชื่อ "AutoNT-17" ซึ่งนิยามใน <references> ไม่ถูกใช้ในข้อความก่อนหน้า
อ้างอิงผิดพลาด: ป้ายระบุ <ref> ชื่อ "AutoNT-18" ซึ่งนิยามใน <references> ไม่ถูกใช้ในข้อความก่อนหน้า
อ้างอิงผิดพลาด: ป้ายระบุ <ref> ชื่อ "PEP20" ซึ่งนิยามใน <references> ไม่ถูกใช้ในข้อความก่อนหน้า
อ้างอิงผิดพลาด: ป้ายระบุ <ref> ชื่อ "AutoNT-19" ซึ่งนิยามใน <references> ไม่ถูกใช้ในข้อความก่อนหน้า
อ้างอิงผิดพลาด: ป้ายระบุ <ref> ชื่อ "AutoNT-20" ซึ่งนิยามใน <references> ไม่ถูกใช้ในข้อความก่อนหน้า
อ้างอิงผิดพลาด: ป้ายระบุ <ref> ชื่อ "PepCite000" ซึ่งนิยามใน <references> ไม่ถูกใช้ในข้อความก่อนหน้า
อ้างอิงผิดพลาด: ป้ายระบุ <ref> ชื่อ "AutoNT-21" ซึ่งนิยามใน <references> ไม่ถูกใช้ในข้อความก่อนหน้า
อ้างอิงผิดพลาด: ป้ายระบุ <ref> ชื่อ "release-schedule" ซึ่งนิยามใน <references> ไม่ถูกใช้ในข้อความก่อนหน้า
อ้างอิงผิดพลาด: ป้ายระบุ <ref> ชื่อ "AutoNT-22" ซึ่งนิยามใน <references> ไม่ถูกใช้ในข้อความก่อนหน้า
อ้างอิงผิดพลาด: ป้ายระบุ <ref> ชื่อ "AutoNT-23" ซึ่งนิยามใน <references> ไม่ถูกใช้ในข้อความก่อนหน้า
อ้างอิงผิดพลาด: ป้ายระบุ <ref> ชื่อ "AutoNT-24" ซึ่งนิยามใน <references> ไม่ถูกใช้ในข้อความก่อนหน้า
อ้างอิงผิดพลาด: ป้ายระบุ <ref> ชื่อ "tutorial-chapter1" ซึ่งนิยามใน <references> ไม่ถูกใช้ในข้อความก่อนหน้า
อ้างอิงผิดพลาด: ป้ายระบุ <ref> ชื่อ "AutoNT-25" ซึ่งนิยามใน <references> ไม่ถูกใช้ในข้อความก่อนหน้า
อ้างอิงผิดพลาด: ป้ายระบุ <ref> ชื่อ "AutoNT-26" ซึ่งนิยามใน <references> ไม่ถูกใช้ในข้อความก่อนหน้า
อ้างอิงผิดพลาด: ป้ายระบุ <ref> ชื่อ "AutoNT-27" ซึ่งนิยามใน <references> ไม่ถูกใช้ในข้อความก่อนหน้า
อ้างอิงผิดพลาด: ป้ายระบุ <ref> ชื่อ "AutoNT-28" ซึ่งนิยามใน <references> ไม่ถูกใช้ในข้อความก่อนหน้า
อ้างอิงผิดพลาด: ป้ายระบุ <ref> ชื่อ "quotes-about-python" ซึ่งนิยามใน <references> ไม่ถูกใช้ในข้อความก่อนหน้า
อ้างอิงผิดพลาด: ป้ายระบุ <ref> ชื่อ "AutoNT-29" ซึ่งนิยามใน <references> ไม่ถูกใช้ในข้อความก่อนหน้า
อ้างอิงผิดพลาด: ป้ายระบุ <ref> ชื่อ "AutoNT-30" ซึ่งนิยามใน <references> ไม่ถูกใช้ในข้อความก่อนหน้า
อ้างอิงผิดพลาด: ป้ายระบุ <ref> ชื่อ "AutoNT-31" ซึ่งนิยามใน <references> ไม่ถูกใช้ในข้อความก่อนหน้า
อ้างอิงผิดพลาด: ป้ายระบุ <ref> ชื่อ "AutoNT-32" ซึ่งนิยามใน <references> ไม่ถูกใช้ในข้อความก่อนหน้า
อ้างอิงผิดพลาด: ป้ายระบุ <ref> ชื่อ "AutoNT-33" ซึ่งนิยามใน <references> ไม่ถูกใช้ในข้อความก่อนหน้า
อ้างอิงผิดพลาด: ป้ายระบุ <ref> ชื่อ "AutoNT-34" ซึ่งนิยามใน <references> ไม่ถูกใช้ในข้อความก่อนหน้า
อ้างอิงผิดพลาด: ป้ายระบุ <ref> ชื่อ "AutoNT-35" ซึ่งนิยามใน <references> ไม่ถูกใช้ในข้อความก่อนหน้า
อ้างอิงผิดพลาด: ป้ายระบุ <ref> ชื่อ "AutoNT-38" ซึ่งนิยามใน <references> ไม่ถูกใช้ในข้อความก่อนหน้า
อ้างอิงผิดพลาด: ป้ายระบุ <ref> ชื่อ "AutoNT-39" ซึ่งนิยามใน <references> ไม่ถูกใช้ในข้อความก่อนหน้า
อ้างอิงผิดพลาด: ป้ายระบุ <ref> ชื่อ "AutoNT-40" ซึ่งนิยามใน <references> ไม่ถูกใช้ในข้อความก่อนหน้า
อ้างอิงผิดพลาด: ป้ายระบุ <ref> ชื่อ "AutoNT-41" ซึ่งนิยามใน <references> ไม่ถูกใช้ในข้อความก่อนหน้า
อ้างอิงผิดพลาด: ป้ายระบุ <ref> ชื่อ "AutoNT-42" ซึ่งนิยามใน <references> ไม่ถูกใช้ในข้อความก่อนหน้า
อ้างอิงผิดพลาด: ป้ายระบุ <ref> ชื่อ "AutoNT-47" ซึ่งนิยามใน <references> ไม่ถูกใช้ในข้อความก่อนหน้า
อ้างอิงผิดพลาด: ป้ายระบุ <ref> ชื่อ "AutoNT-49" ซึ่งนิยามใน <references> ไม่ถูกใช้ในข้อความก่อนหน้า
อ้างอิงผิดพลาด: ป้ายระบุ <ref> ชื่อ "AutoNT-50" ซึ่งนิยามใน <references> ไม่ถูกใช้ในข้อความก่อนหน้า
อ้างอิงผิดพลาด: ป้ายระบุ <ref> ชื่อ "AutoNT-51" ซึ่งนิยามใน <references> ไม่ถูกใช้ในข้อความก่อนหน้า
อ้างอิงผิดพลาด: ป้ายระบุ <ref> ชื่อ "AutoNT-52" ซึ่งนิยามใน <references> ไม่ถูกใช้ในข้อความก่อนหน้า
อ้างอิงผิดพลาด: ป้ายระบุ <ref> ชื่อ "AutoNT-53" ซึ่งนิยามใน <references> ไม่ถูกใช้ในข้อความก่อนหน้า
อ้างอิงผิดพลาด: ป้ายระบุ <ref> ชื่อ "AutoNT-55" ซึ่งนิยามใน <references> ไม่ถูกใช้ในข้อความก่อนหน้า
อ้างอิงผิดพลาด: ป้ายระบุ <ref> ชื่อ "AutoNT-56" ซึ่งนิยามใน <references> ไม่ถูกใช้ในข้อความก่อนหน้า
อ้างอิงผิดพลาด: ป้ายระบุ <ref> ชื่อ "AutoNT-57" ซึ่งนิยามใน <references> ไม่ถูกใช้ในข้อความก่อนหน้า
อ้างอิงผิดพลาด: ป้ายระบุ <ref> ชื่อ "AutoNT-58" ซึ่งนิยามใน <references> ไม่ถูกใช้ในข้อความก่อนหน้า
อ้างอิงผิดพลาด: ป้ายระบุ <ref> ชื่อ "AutoNT-59" ซึ่งนิยามใน <references> ไม่ถูกใช้ในข้อความก่อนหน้า
อ้างอิงผิดพลาด: ป้ายระบุ <ref> ชื่อ "AutoNT-60" ซึ่งนิยามใน <references> ไม่ถูกใช้ในข้อความก่อนหน้า
อ้างอิงผิดพลาด: ป้ายระบุ <ref> ชื่อ "AutoNT-61" ซึ่งนิยามใน <references> ไม่ถูกใช้ในข้อความก่อนหน้า
อ้างอิงผิดพลาด: ป้ายระบุ <ref> ชื่อ "classy" ซึ่งนิยามใน <references> ไม่ถูกใช้ในข้อความก่อนหน้า
อ้างอิงผิดพลาด: ป้ายระบุ <ref> ชื่อ "pep0237" ซึ่งนิยามใน <references> ไม่ถูกใช้ในข้อความก่อนหน้า
อ้างอิงผิดพลาด: ป้ายระบุ <ref> ชื่อ "AutoNT-62" ซึ่งนิยามใน <references> ไม่ถูกใช้ในข้อความก่อนหน้า
อ้างอิงผิดพลาด: ป้ายระบุ <ref> ชื่อ "AutoNT-63" ซึ่งนิยามใน <references> ไม่ถูกใช้ในข้อความก่อนหน้า
อ้างอิงผิดพลาด: ป้ายระบุ <ref> ชื่อ "AutoNT-64" ซึ่งนิยามใน <references> ไม่ถูกใช้ในข้อความก่อนหน้า
อ้างอิงผิดพลาด: ป้ายระบุ <ref> ชื่อ "AutoNT-65" ซึ่งนิยามใน <references> ไม่ถูกใช้ในข้อความก่อนหน้า
อ้างอิงผิดพลาด: ป้ายระบุ <ref> ชื่อ "CPL" ซึ่งนิยามใน <references> ไม่ถูกใช้ในข้อความก่อนหน้า
อ้างอิงผิดพลาด: ป้ายระบุ <ref> ชื่อ "AutoNT-66" ซึ่งนิยามใน <references> ไม่ถูกใช้ในข้อความก่อนหน้า
อ้างอิงผิดพลาด: ป้ายระบุ <ref> ชื่อ "AutoNT-67" ซึ่งนิยามใน <references> ไม่ถูกใช้ในข้อความก่อนหน้า
อ้างอิงผิดพลาด: ป้ายระบุ <ref> ชื่อ "AutoNT-68" ซึ่งนิยามใน <references> ไม่ถูกใช้ในข้อความก่อนหน้า
อ้างอิงผิดพลาด: ป้ายระบุ <ref> ชื่อ "AutoNT-69" ซึ่งนิยามใน <references> ไม่ถูกใช้ในข้อความก่อนหน้า
อ้างอิงผิดพลาด: ป้ายระบุ <ref> ชื่อ "AutoNT-70" ซึ่งนิยามใน <references> ไม่ถูกใช้ในข้อความก่อนหน้า
อ้างอิงผิดพลาด: ป้ายระบุ <ref> ชื่อ "AutoNT-71" ซึ่งนิยามใน <references> ไม่ถูกใช้ในข้อความก่อนหน้า
อ้างอิงผิดพลาด: ป้ายระบุ <ref> ชื่อ "AutoNT-73" ซึ่งนิยามใน <references> ไม่ถูกใช้ในข้อความก่อนหน้า
อ้างอิงผิดพลาด: ป้ายระบุ <ref> ชื่อ "AutoNT-74" ซึ่งนิยามใน <references> ไม่ถูกใช้ในข้อความก่อนหน้า
อ้างอิงผิดพลาด: ป้ายระบุ <ref> ชื่อ "AutoNT-86" ซึ่งนิยามใน <references> ไม่ถูกใช้ในข้อความก่อนหน้า
อ้างอิงผิดพลาด: ป้ายระบุ <ref> ชื่อ "AutoNT-88" ซึ่งนิยามใน <references> ไม่ถูกใช้ในข้อความก่อนหน้า
อ้างอิงผิดพลาด: ป้ายระบุ <ref> ชื่อ "AutoNT-89" ซึ่งนิยามใน <references> ไม่ถูกใช้ในข้อความก่อนหน้า
อ้างอิงผิดพลาด: ป้ายระบุ <ref> ชื่อ "AutoNT-90" ซึ่งนิยามใน <references> ไม่ถูกใช้ในข้อความก่อนหน้า
อ้างอิงผิดพลาด: ป้ายระบุ <ref> ชื่อ "AutoNT-91" ซึ่งนิยามใน <references> ไม่ถูกใช้ในข้อความก่อนหน้า
อ้างอิงผิดพลาด: ป้ายระบุ <ref> ชื่อ "AutoNT-93" ซึ่งนิยามใน <references> ไม่ถูกใช้ในข้อความก่อนหน้า
อ้างอิงผิดพลาด: ป้ายระบุ <ref> ชื่อ "AutoNT-94" ซึ่งนิยามใน <references> ไม่ถูกใช้ในข้อความก่อนหน้า
อ้างอิงผิดพลาด: ป้ายระบุ <ref> ชื่อ "AutoNT-95" ซึ่งนิยามใน <references> ไม่ถูกใช้ในข้อความก่อนหน้า
อ้างอิงผิดพลาด: ป้ายระบุ <ref> ชื่อ "linuxdevcenter" ซึ่งนิยามใน <references> ไม่ถูกใช้ในข้อความก่อนหน้า
อ้างอิงผิดพลาด: ป้ายระบุ <ref> ชื่อ "AutoNT-99" ซึ่งนิยามใน <references> ไม่ถูกใช้ในข้อความก่อนหน้า
อ้างอิงผิดพลาด: ป้ายระบุ <ref> ชื่อ "AutoNT-100" ซึ่งนิยามใน <references> ไม่ถูกใช้ในข้อความก่อนหน้า

อ้างอิงผิดพลาด: ป้ายระบุ <ref> ชื่อ "lj-bdfl-resignation" ซึ่งนิยามใน <references> ไม่ถูกใช้ในข้อความก่อนหน้า

แหล่งข้อมูลอื่น