{"query": "python programming", "source": "duckduckgo_html", "count": 5, "results": [{"title": "Welcome to Python.org", "url": "https://www.python.org/", "description": "Pythonis a versatile and easy-to-learnprogramminglanguage that lets you work quickly and integrate systems more effectively. LearnPythonbasics, download the latest version, access documentation, find jobs, events, success stories and more on the official website.", "source": "duckduckgo_html", "extra": {}, "content": "Get Started\nWhether you're new to programming or an experienced developer, it's easy to learn and use Python.\nDownload\nPython source code and installers are available for download for all versions!\nLatest: Python 3.14.8\nDocs\nDocumentation for Python's standard library, along with tutorials and guides, are available online.\nJobs\nLooking for work or have a Python related position that you're trying to hire for? Our relaunched community-run job board is the place to go.\nLatest News\nUpcoming Events\nUse Python for\u2026\n- Web Development: Django, Pyramid, Bottle, Tornado, Flask, Litestar, FastAPI\n- GUI Development: tkInter, PyGObject, PyQt, PySide, Kivy, wxPython, DearPyGui\n- AI and Machine Learning: PyTorch, TensorFlow, scikit-learn, Transformers, Anthropic, LangChain\n- Scientific and Numeric: SciPy, Pandas, IPython\n- Software Development: Buildbot, Trac, Roundup\n- System Administration: Ansible, Salt, OpenStack, xonsh\n>>> Python Software Foundation\nThe mission of the Python Software Foundation is to promote, protect, and advance the Python programming language, and to support and facilitate the growth of a diverse and international community of Python programmers. Learn more"}, {"title": "Online Python Compiler (Editor) - Programiz", "url": "https://www.programiz.com/python-programming/online-compiler/", "description": "Write and run your code using our onlinePythoncompiler (editor). Enjoy additional features like code sharing, dark mode and code visualization.", "source": "duckduckgo_html", "extra": {}, "content": "Write and run your code using our onlinePythoncompiler (editor). Enjoy additional features like code sharing, dark mode and code visualization."}, {"title": "Python Tutorial - W3Schools", "url": "https://www.w3schools.com/python/", "description": "Pythonis a popularprogramminglanguage.Pythoncan be used on a server to create web applications.Pythonis easy to learn - You will enjoy it!", "source": "duckduckgo_html", "extra": {}, "content": "Python Tutorial\nLearn Python\nPython is a popular programming language.\nPython can be used on a server to create web applications.\nPython is easy to learn - You will enjoy it!\nLearning by Examples\nWith our \"Try it Yourself\" editor, you can edit Python code and view the result.\nClick on the \"Try it Yourself\" button to see how it works.\nPython File Handling\nIn our File Handling section you will learn how to open, read, write, and delete files.\nPython Database Handling\nIn our database section you will learn how to access and work with MySQL and MongoDB databases:\nPython Exercises\nMany chapters in this tutorial end with an exercise where you can check your level of knowledge.\nPython Examples\nLearn by examples! This tutorial supplements all explanations with clarifying examples.\nPython Quiz\nTest your Python skills with a quiz.\nPython Reference\nYou will also find complete function and method references:\nDownload Python\nDownload Python from the official Python web site: https://python.org\nGet Certified in coding\nComplete the W3Schools coding course, strengthen your knowledge, and earn a certificate you can add to your CV, portfolio, and LinkedIn profile."}, {"title": "Download Python | Python.org", "url": "https://www.python.org/downloads/", "description": "The official home of thePythonProgrammingLanguage", "source": "duckduckgo_html", "extra": {}, "content": "Active Python releases\nFor more information visit the Python Developer's Guide.\n- 3.15 pre-release Download 2026-10-01 (planned) 2031-10 PEP 790\n- 3.14 bugfix Download 2025-10-07 2030-10 PEP 745\n- 3.13 security Download 2024-10-07 2029-10 PEP 719\n- 3.12 security Download 2023-10-02 2028-10 PEP 693\n- 3.11 security Download 2022-10-24 2027-10 PEP 664\n- 3.10 end-of-life, last release was 3.10.22 Download 2021-10-04 2026-10-01 PEP 619\nLooking for a specific release?\nPython releases by version number:\n- Python 3.14.8 Sept. 30, 2026 Download Release notes\n- Python 3.14.7 Aug. 5, 2026 Download Release notes\n- Python 3.14.6 June 10, 2026 Download Release notes\n- Python 3.14.5 May 10, 2026 Download Release notes\n- Python 3.14.4 April 7, 2026 Download Release notes\n- Python 3.14.3 Feb. 3, 2026 Download Release notes\n- Python 3.14.2 Dec. 5, 2025 Download Release notes\n- Python 3.14.1 Dec. 2, 2025 Download Release notes\n- Python 3.14.0 Oct. 7, 2025 Download Release notes\n- Python 3.13.16 Sept. 30, 2026 Download Release notes\n- Python 3.13.15 Aug. 5, 2026 Download Release notes\n- Python 3.13.14 June 10, 2026 Download Release notes\n- Python 3.13.13 April 7, 2026 Download Release notes\n- Python 3.13.12 Feb. 3, 2026 Download Release notes\n- Python 3.13.11 Dec. 5, 2025 Download Release notes\n- Python 3.13.10 Dec. 2, 2025 Download Release notes\n- Python 3.13.9 Oct. 14, 2025 Download Release notes\n- Python 3.13.8 Oct. 7, 2025 Download Release notes\n- Python 3.13.7 Aug. 14, 2025 Download Release notes\n- Python 3.13.6 Aug. 6, 2025 Download Release notes\n- Python 3.13.5 June 11, 2025 Download Release notes\n- Python 3.13.4 June 3, 2025 Download Release notes\n- Python 3.13.3 April 8, 2025 Download Release notes\n- Python 3.13.2 Feb. 4, 2025 Download Release notes\n- Python 3.13.1 Dec. 3, 2024 Download Release notes\n- Python 3.13.0 Oct. 7, 2024 Download Release notes\n- Python 3.12.15 Sept. 30, 2026 Download Release notes\n- Python 3.12.14 Aug. 12, 2026 Download Release notes\n- Python 3.12.13 March 3, 2026 Download Release notes\n- Python 3.12.12 Oct. 9, 2025 Download Release notes\n- Python 3.12.11 June 3, 2025 Download Release notes\n- Python 3.12.10 April 8, 2025 Download Release notes\n- Python 3.12.9 Feb. 4, 2025 Download Release notes\n- Python 3.12.8 Dec. 3, 2024 Download Release notes\n- Python 3.12.7 Oct. 1, 2024 Download Release notes\n- Python 3.12.6 Sept. 6, 2024 Download Release notes\n- Python 3.12.5 Aug. 6, 2024 Download Release notes\n- Python 3.12.4 June 6, 2024 Download Release notes\n- Python 3.12.3 April 9, 2024 Download Release notes\n- Python 3.12.2 Feb. 6, 2024 Download Release notes\n- Python 3.12.1 Dec. 8, 2023 Download Release notes\n- Python 3.12.0 Oct. 2, 2023 Download Release notes\n- Python 3.11.17 Oct. 1, 2026 Download Release notes\n- Python 3.11.16 Aug. 12, 2026 Download Release notes\n- Python 3.11.15 March 3, 2026 Download Release notes\n- Python 3.11.14 Oct. 9, 2025 Download Release notes\n- Python 3.11.13 June 3, 2025 Download Release notes\n- Python 3.11.12 April 8, 2025 Download Release notes\n- Python 3.11.11 Dec. 3, 2024 Download Release notes\n- Python 3.11.10 Sept. 7, 2024 Download Release notes\n- Python 3.11.9 April 2, 2024 Download Release notes\n- Python 3.11.8 Feb. 6, 2024 Download Release notes\n- Python 3.11.7 Dec. 4, 2023 Download Release notes\n- Python 3.11.6 Oct. 2, 2023 Download Release notes\n- Python 3.11.5 Aug. 24, 2023 Download Release notes\n- Python 3.11.4 June 6, 2023 Download Release notes\n- Python 3.11.3 April 5, 2023 Download Release notes\n- Python 3.11.2 Feb. 8, 2023 Download Release notes\n- Python 3.11.1 Dec. 6, 2022 Download Release notes\n- Python 3.11.0 Oct. 24, 2022 Download Release notes\n- Python 3.10.22 Oct. 1, 2026 Download Release notes\n- Python 3.10.21 Aug. 12, 2026 Download Release notes\n- Python 3.10.20 March 3, 2026 Download Release notes\n- Python 3.10.19 Oct. 9, 2025 Download Release notes\n- Python 3.10.18 June 3, 2025 Download Release notes\n- Python 3.10.17 April 8, 2025 Download Release notes\n- Python 3.10.16 Dec. 3, 2024 Download Release notes\n- Python 3.10.15 Sept. 7, 2024 Download Release notes\n- Python 3.10.14 March 19, 2024 Download Release notes\n- Python 3.10.13 Aug. 24, 2023 Download Release notes\n- Python 3.10.12 June 6, 2023 Download Release notes\n- Python 3.10.11 April 5, 2023 Download Release notes\n- Python 3.10.10 Feb. 8, 2023 Download Release notes\n- Python 3.10.9 Dec. 6, 2022 Download Release notes\n- Python 3.10.8 Oct. 11, 2022 Download Release notes\n- Python 3.10.7 Sept. 6, 2022 Download Release notes\n- Python 3.10.6 Aug. 2, 2022 Download Release notes\n- Python 3.10.5 June 6, 2022 Download Release notes\n- Python 3.10.4 March 24, 2022 Download Release notes\n- Python 3.10.3 March 16, 2022 Download Release notes\n- Python 3.10.2 Jan. 14, 2022 Download Release notes\n- Python 3.10.1 Dec. 6, 2021 Download Release notes\n- Python 3.10.0 Oct. 4, 2021 Download Release notes\n- Python 3.9.25 Oct. 31, 2025 Download Release notes\n- Python 3.9.24 Oct. 9, 2025 Download Release notes\n- Python 3.9.23 June 3, 2025 Download Release notes\n- Python 3.9.22 April 8, 2025 Download Release notes\n- Python 3.9.21 Dec. 3, 2024 Download Release notes\n- Python 3.9.20 Sept. 6, 2024 Download Release notes\n- Python 3.9.19 March 19, 2024 Download Release notes\n- Python 3.9.18 Aug. 24, 2023 Download Release notes\n- Python 3.9.17 June 6, 2023 Download Release notes\n- Python 3.9.16 Dec. 6, 2022 Download Release notes\n- Python 3.9.15 Oct. 11, 2022 Download Release notes\n- Python 3.9.14 Sept. 6, 2022 Download Release notes\n- Python 3.9.13 May 17, 2022 Download Release notes\n- Python 3.9.12 March 23, 2022 Download Release notes\n- Python 3.9.11 March 16, 2022 Download Release notes\n- Python 3.9.10 Jan. 14, 2022 Download Release notes\n- Python 3.9.9 Nov. 15, 2021 Download Release notes\n- Python 3.9.8 Nov. 5, 2021 Download Release notes\n- Python 3.9.7 Aug. 30, 2021 Download Release notes\n- Python 3.9.6 June 28, 2021 Download Release notes\n- Python 3.9.5 May 3, 2021 Download Release notes\n- Python 3.9.4 April 4, 2021 Download Release notes\n- Python 3.9.2 Feb. 19, 2021 Download Release notes\n- Python 3.9.1 Dec. 7, 2020 Download Release notes\n- Python 3.9.0 Oct. 5, 2020 Download Release notes\n- Python 3.8.20 Sept. 6, 2024 Download Release notes\n- Python 3.8.19 March 19, 2024 Download Release notes\n- Python 3.8.18 Aug. 24, 2023 Download Release notes\n- Python 3.8.17 June 6, 2023 Download Release notes\n- Python 3.8.16 Dec. 6, 2022 Download Release notes\n- Python 3.8.15 Oct. 11, 2022 Download Release notes\n- Python 3.8.14 Sept. 6, 2022 Download Release notes\n- Python 3.8.13 March 16, 2022 Download Release notes\n- Python 3.8.12 Aug. 30, 2021 Download Release notes\n- Python 3.8.11 June 28, 2021 Download Release notes\n- Python 3.8.10 May 3, 2021 Download Release notes\n- Python 3.8.9 April 2, 2021 Download Release notes\n- Python 3.8.8 Feb. 19, 2021 Download Release notes\n- Python 3.8.7 Dec. 21, 2020 Download Release notes\n- Python 3.8.6 Sept. 24, 2020 Download Release notes\n- Python 3.8.5 July 20, 2020 Download Release notes\n- Python 3.8.4 July 13, 2020 Download Release notes\n- Python 3.8.3 May 13, 2020 Download Release notes\n- Python 3.8.2 Feb. 24, 2020 Download Release notes\n- Python 3.8.1 Dec. 18, 2019 Download Release notes\n- Python 3.8.0 Oct. 14, 2019 Download Release notes\n- Python 3.7.17 June 6, 2023 Download Release notes\n- Python 3.7.16 Dec. 6, 2022 Download Release notes\n- Python 3.7.15 Oct. 11, 2022 Download Release notes\n- Python 3.7.14 Sept. 6, 2022 Download Release notes\n- Python 3.7.13 March 16, 2022 Download Release notes\n- Python 3.7.12 Sept. 4, 2021 Download Release notes\n- Python 3.7.11 June 28, 2021 Download Release notes\n- Python 3.7.10 Feb. 15, 2021 Download Release notes\n- Python 3.7.9 Aug. 17, 2020 Download Release notes\n- Python 3.7.8 June 27, 2020 Download Release notes\n- Python 3.7.7 March 10, 2020 Download Release notes\n- Python 3.7.6 Dec. 18, 2019 Download Release notes\n- Python 3.7.5 Oct. 15, 2019 Download Release notes\n- Python 3.7.4 July 8, 2019 Download Release notes\n- Python 3.7.3 March 25, 2019 Download Release notes\n- Python 3.7.2 Dec. 24, 2018 Download Release notes\n- Python 3.7.1 Oct. 20, 2018 Download Release notes\n- Python 3.7.0 June 27, 2018 Download Release notes\n- Python 3.6.15 Sept. 4, 2021 Download Release notes\n- Python 3.6.14 June 28, 2021 Download Release notes\n- Python 3.6.13 Feb. 15, 2021 Download Release notes\n- Python 3.6.12 Aug. 17, 2020 Download Release notes\n- Python 3.6.11 June 27, 2020 Download Release notes\n- Python 3.6.10 Dec. 18, 2019 Download Release notes\n- Python 3.6.9 July 2, 2019 Download Release notes\n- Python 3.6.8 Dec. 24, 2018 Download Release notes\n- Python 3.6.7 Oct. 20, 2018 Download Release notes\n- Python 3.6.6 June 27, 2018 Download Release notes\n- Python 3.6.5 March 28, 2018 Download Release notes\n- Python 3.6.4 Dec. 19, 2017 Download Release notes\n- Python 3.6.3 Oct. 3, 2017 Download Release notes\n- Python 3.6.2 July 17, 2017 Download Release notes\n- Python 3.6.1 March 21, 2017 Download Release notes\n- Python 3.6.0 Dec. 23, 2016 Download Release notes\n- Python 3.5.10 Sept. 5, 2020 Download Release notes\n- Python 3.5.9 Nov. 2, 2019 Download Release notes\n- Python 3.5.8 Oct. 29, 2019 Download Release notes\n- Python 3.5.7 March 18, 2019 Download Release notes\n- Python 3.5.6 Aug. 2, 2018 Download Release notes\n- Python 3.5.5 Feb. 5, 2018 Download Release notes\n- Python 3.5.4 Aug. 8, 2017 Download Release notes\n- Python 3.5.3 Jan. 17, 2017 Download Release notes\n- Python 3.5.2 June 27, 2016 Download Release notes\n- Python 3.5.1 Dec. 7, 2015 Download Release notes\n- Python 3.5.0 Sept. 13, 2015 Download Release notes\n- Python 3.4.10 March 18, 2019 Download Release notes\n- Python 3.4.9 Aug. 2, 2018 Download Release notes\n- Python 3.4.8 Feb. 5, 2018 Download Release notes\n- Python 3.4.7 Aug. 9, 2017 Download Release notes\n- Python 3.4.6 Jan. 17, 2017 Download Release notes\n- Python 3.4.5 June 27, 2016 Download Release notes\n- Python 3.4.4 Dec. 21, 2015 Download Release notes\n- Python 3.4.3 Feb. 25, 2015 Download Release notes\n- Python 3.4.2 Oct. 13, 2014 Download Release notes\n- Python 3.4.1 May 19, 2014 Download Release notes\n- Python 3.4.0 March 17, 2014 Download Release notes\n- Python 3.3.7 Sept. 19, 2017 Download Release notes\n- Python 3.3.6 Oct. 12, 2014 Download Release notes\n- Python 3.3.5 March 9, 2014 Download Release notes\n- Python 3.3.4 Feb. 9, 2014 Download Release notes\n- Python 3.3.3 Nov. 17, 2013 Download Release notes\n- Python 3.3.2 May 15, 2013 Download Release notes\n- Python 3.3.1 April 6, 2013 Download Release notes\n- Python 3.3.0 Sept. 29, 2012 Download Release notes\n- Python 3.2.6 Oct. 12, 2014 Download Release notes\n- Python 3.2.5 May 15, 2013 Download Release notes\n- Python 3.2.4 April 6, 2013 Download Release notes\n- Python 3.2.3 April 10, 2012 Download Release notes\n- Python 3.2.2 Sept. 3, 2011 Download Release notes\n- Python 3.2.1 July 9, 2011 Download Release notes\n- Python 3.2.0 Feb. 20, 2011 Download Release notes\n- Python 3.1.5 April 9, 2012 Download Release notes\n- Python 3.1.4 June 11, 2011 Download Release notes\n- Python 3.1.3 Nov. 27, 2010 Download Release notes\n- Python 3.1.2 March 20, 2010 Download Release notes\n- Python 3.1.1 Aug. 17, 2009 Download Release notes\n- Python 3.1.0 June 26, 2009 Download Release notes\n- Python 3.0.1 Feb. 13, 2009 Download Release notes\n- Python 3.0.0 Dec. 3, 2008 Download Release notes\n- Python 2.7.18 April 20, 2020 Download Release notes\n- Python 2.7.17 Oct. 19, 2019 Download Release notes\n- Python 2.7.16 March 4, 2019 Download Release notes\n- Python 2.7.15 May 1, 2018 Download Release notes\n- Python 2.7.14 Sept. 16, 2017 Download Release notes\n- Python 2.7.13 Dec. 17, 2016 Download Release notes\n- Python 2.7.12 June 25, 2016 Download Release notes\n- Python 2.7.11 Dec. 5, 2015 Download Release notes\n- Python 2.7.10 May 23, 2015 Download Release notes\n- Python 2.7.9 Dec. 10, 2014 Download Release notes\n- Python 2.7.8 July 2, 2014 Download Release notes\n- Python 2.7.7 June 1, 2014 Download Release notes\n- Python 2.7.6 Nov. 10, 2013 Download Release notes\n- Python 2.7.5 May 12, 2013 Download Release notes\n- Python 2.7.4 April 6, 2013 Download Release notes\n- Python 2.7.3 April 9, 2012 Download Release notes\n- Python 2.7.2 June 11, 2011 Download Release notes\n- Python 2.7.1 Nov. 27, 2010 Download Release notes\n- Python 2.7.0 July 3, 2010 Download Release notes\n- Python 2.6.9 Oct. 29, 2013 Download Release notes\n- Python 2.6.8 April 10, 2012 Download Release notes\n- Python 2.6.7 June 3, 2011 Download Release notes\n- Python 2.6.6 Aug. 24, 2010 Download Release notes\n- Python 2.6.5 March 18, 2010 Download Release notes\n- Python 2.6.4 Oct. 26, 2009 Download Release notes\n- Python 2.6.3 Oct. 2, 2009 Download Release notes\n- Python 2.6.2 April 14, 2009 Download Release notes\n- Python 2.6.1 Dec. 4, 2008 Download Release notes\n- Python 2.6.0 Oct. 2, 2008 Download Release notes\n- Python 2.5.6 May 26, 2011 Download Release notes\n- Python 2.5.5 Jan. 31, 2010 Download Release notes\n- Python 2.5.4 Dec. 23, 2008 Download Release notes\n- Python 2.5.3 Dec. 19, 2008 Download Release notes\n- Python 2.5.2 Feb. 21, 2008 Download Release notes\n- Python 2.5.1 April 19, 2007 Download Release notes\n- Python 2.5.0 Sept. 19, 2006 Download Release notes\n- Python 2.4.6 Dec. 19, 2008 Download Release notes\n- Python 2.4.5 March 11, 2008 Download Release notes\n- Python 2.4.4 Oct. 18, 2006 Download Release notes\n- Python 2.4.3 April 15, 2006 Download Release notes\n- Python 2.4.2 Sept. 27, 2005 Download Release notes\n- Python 2.4.1 March 30, 2005 Download Release notes\n- Python 2.4.0 Nov. 30, 2004 Download Release notes\n- Python 2.3.7 March 11, 2008 Download Release notes\n- Python 2.3.6 Nov. 1, 2006 Download Release notes\n- Python 2.3.5 Feb. 8, 2005 Download Release notes\n- Python 2.3.4 May 27, 2004 Download Release notes\n- Python 2.3.3 Dec. 19, 2003 Download Release notes\n- Python 2.3.2 Oct. 3, 2003 Download Release notes\n- Python 2.3.1 Sept. 23, 2003 Download Release notes\n- Python 2.3.0 July 29, 2003 Download Release notes\n- Python 2.2.3 May 30, 2003 Download Release notes\n- Python 2.2.2 Oct. 14, 2002 Download Release notes\n- Python 2.2.1 April 10, 2002 Download Release notes\n- Python 2.2.0 Dec. 21, 2001 Download Release notes\n- Python 2.1.3 April 9, 2002 Download Release notes\n- Python 2.0.1 June 22, 2001 Download Release notes\nLicenses\nAll Python releases are Open Source. Historically, most, but not all, Python releases have also been GPL-compatible. The Licenses page details GPL-compatibility and Terms and Conditions.\nSources\nFor most Unix systems, you must download and compile the source code. The same source code archive can also be used to build the Windows and Mac versions, and is the starting point for ports to all other platforms.\nDownload the latest Python 3 source.\nAlternative implementations\nThis site hosts the \"traditional\" implementation of Python (nicknamed CPython). A number of alternative implementations are available as well.\nHistory\nPython was created in the early 1990s by Guido van Rossum at Stichting Mathematisch Centrum in the Netherlands as a successor of a language called ABC. Guido remains Python\u2019s principal author, although it includes many contributions from others.\nRelease schedules\n- Python 3.16 release schedule\n- Python 3.15 release schedule\n- Python 3.14 release schedule\n- Python 3.13 release schedule\n- Python 3.12 release schedule\n- Python 3.11 release schedule\n- Python 3.10 release schedule\nSee Status of Python versions for all an overview of all versions, including unsupported.\nInformation about specific ports, and developer info\nHow to verify your downloaded files are genuine\nSigstore verification\nStarting with the Python 3.11.0, Python 3.10.7, and Python 3.9.14 releases, CPython release artifacts are signed with Sigstore. See our dedicated Sigstore Information page for how it works.\nOpenPGP verification\nPython versions before 3.14 are also signed using OpenPGP private keys of the respective release manager. In this case, verification through the release manager's public key is also possible. See our dedicated OpenPGP Verification page for how it works.\nSee PEP 761 for why OpenPGP key verification was dropped in Python 3.14.\nWindows\n(Updated for Azure Trusted Signing, which applies for all releases chronologically from 3.14.0a1)\nThe Windows installers and all binaries produced as part of each Python release are signed using an Authenticode signing certificate issued to the Python Software Foundation. This can be verified by viewing the properties of any executable file, looking at the Digital Signatures tab, and confirming the name of the signer. Our full certificate subject is CN = Python Software Foundation, O = Python Software Foundation, L = Beaverton, S = Oregon, C = US\nand as of 14th October 2024 the certificate authority is Microsoft Identity Verification Root Certificate Authority\n. Our previous certificates were issued by DigiCert.\nNote that some executables may not be signed, notably, the default pip\ncommand. These are not built as part of Python, but are included from third-party libraries. Files that are intended to be modified before use cannot be signed and so will not have a signature.\nmacOS installer packages\nInstaller packages for Python on macOS downloadable from python.org are signed with with an Apple Developer ID Installer certificate.\nAs of Python 3.11.4 and 3.12.0b1 (2023-05-23), release installer packages are signed with certificates issued to the Python Software Foundation (Apple Developer ID BMM5U3QVKW).\nInstaller packages for previous releases were signed with certificates issued to Ned Deily (DJ3H93M7VJ).\nOther useful items\n- Looking for third-party Python modules? The Python Package Index has many of them.\n- You can view the standard documentation online, or you can download it in HTML, EPUB and other formats. See the main Documentation page.\n- Tip: even if you download a ready-made binary for your platform, it makes sense to also download the source. This lets you browse the standard library (the subdirectory Lib) and the standard collections of tools (Tools) that come with it. There's a lot you can learn from the source!\nWant to contribute?\nWant to contribute? See the Python Developer's Guide to learn about how Python development is managed."}, {"title": "Python (programming language) - Wikipedia", "url": "https://en.wikipedia.org/wiki/Python_(programming_language)", "description": "Pythonis a high-level, general-purposeprogramminglanguage that emphasizes code readability, simplicity, and ease-of-writing with the use of significant indentation, [38] an extensive (\"batteries-included\") standard library, and garbage collection.Pythonsupports multipleprogrammingparadigms but with an emphasis on object-orientedprogrammingand dynamic typing. Guido van Rossum began ...", "source": "duckduckgo_html", "extra": {}, "content": "Python (programming language)\nPython is a high-level, general-purpose programming language that emphasizes code readability, simplicity, and ease-of-writing with the use of significant indentation,[38] an extensive (\"batteries-included\") standard library, and garbage collection. Python supports multiple programming paradigms but with an emphasis on object-oriented programming and dynamic typing.\nGuido van Rossum began working on Python in the late 1980s as a successor to the ABC programming language. Python 3.0, released in 2008, was a major revision and not completely backward-compatible with earlier versions. Beginning with Python 3.5,[39] capabilities and keywords for typing were added to the language, allowing optional static typing.[40] As of 2026[update], the Python Software Foundation supports Python 3.11, 3.12, 3.13, and 3.14, following the project's annual release cycle and five-year support policy. Python 3.15.0rc3 (which defaults to UTF-8) is out in preview, a \"surprise third release candidate for Python 3.15.0! .. so this week\u2019s planned 3.15.0 final is postponed until October 9th, 2026\" to allow more users to test it.[41][42][43] Earlier versions in the 3.x series have reached end-of-life and no longer receive security updates.\nPython is widely taught as an introductory programming language.[44]\nHistory\n[edit]Python was conceived in the late 1980s[11] by Guido van Rossum at Centrum Wiskunde & Informatica (CWI) in the Netherlands.[45] It was designed as a successor to the ABC programming language, which was inspired by SETL,[46] capable of exception handling and interfacing with the Amoeba operating system.[18] Python implementation began in December 1989.[45] Van Rossum first released it in 1991 as Python 0.9.0.[45] Van Rossum assumed sole responsibility for the project, as the lead developer, until 12 July 2018, when he announced his \"permanent vacation\" from responsibilities as Python's \"benevolent dictator for life\" (BDFL); this title was bestowed on him by the Python community to reflect his long-term commitment as the project's chief decision-maker.[47][c] In January 2019, active Python core developers elected a five-member Steering Council to lead the project.[48][49]\nThe name Python derives from the British comedy series Monty Python's Flying Circus.[50] (See \u00a7 Naming.)\nPython 2.0 was released on 16 October 2000, featuring many new features such as list comprehensions, cycle-detecting garbage collection, reference counting, and Unicode support.[51] Python 2.7's end-of-life was initially set for 2015, and then postponed to 2020 out of concern that a large body of existing code could not easily be forward-ported to Python 3.[52][53] It no longer receives security patches or updates.[54][55] While Python 2.7 and older versions are officially unsupported, a different unofficial Python implementation, PyPy, continues to support Python 2, i.e., \"2.7.18+\" (plus 3.11 and 3.12), with the plus signifying (at least some) \"backported security updates\".[56]\nPython 3.0 was released on 3 December 2008, and was a major revision and not completely backward-compatible with earlier versions, with some new semantics and changed syntax. Python 2.7.18, released in 2020, was the last release of Python 2.[57] Several releases in the Python 3.x series have added new syntax to the language, and made a few (considered very minor) backward-incompatible changes.\nAs of October 2026[update], Python 3.14.8 an \"expedited security release\"[58] is the latest stable release, and since 3.14 official Android binary releases are available. All older 3.x versions had a security update down to Python 3.10.22. Python 3.11 is, since October 2026, the oldest supported branch.[59] Python 3.15 has release candidate 3 out, it is the final planned release candidate and adds e.g. frozendict\nand sentinel\nbuilt-in types, and a new soft keyword, lazy\n, for lazy imports.[60] Releases receive two years of full support followed by three years of security support.\nDesign philosophy and features\n[edit]Python is a multi-paradigm programming language. Object-oriented programming and structured programming are fully supported, and many of their features support functional programming and aspect-oriented programming \u2013 including metaprogramming[61] and metaobjects.[62] Many other paradigms are supported via extensions, including design by contract[63][64] and logic programming.[65] Python is often referred to as a \u2018glue language\u2019[66] because it is purposely designed to be able to integrate components written in other languages.\nPython uses dynamic typing and a combination of reference counting and a cycle-detecting garbage collector for memory management.[67] It uses dynamic name resolution (late binding), which binds method and variable names during program execution.\nPython's design offers some support for functional programming in the \"Lisp tradition\". It has filter\n, map\n, and reduce\nfunctions; list comprehensions, dictionaries, sets, and generator expressions.[68] The standard library has two modules (itertools\nand functools\n) that implement functional tools borrowed from Haskell and Standard ML.[69]\nPython's core philosophy is summarized in the Zen of Python (PEP 20) written by Tim Peters, which includes aphorisms such as these:[70]\n- Explicit is better than implicit.\n- Simple is better than complex.\n- Readability counts.\n- Special cases aren't special enough to break the rules.\n- Although practicality beats purity, errors should never pass silently, unless explicitly silenced.\n- There should be one\u2014and preferably only one\u2014obvious way to do it.\nHowever, Python has received criticism for violating these principles and adding unnecessary language bloat.[71] Responses to these criticisms note that the Zen of Python is a guideline rather than a rule.[72] The addition of some new features had been controversial: Guido van Rossum resigned as Benevolent Dictator for Life after conflict about adding the assignment expression operator in Python 3.8.[73][74]\nNevertheless, rather than building all functionality into its core, Python was designed to be highly extensible through modules. This compact modularity has made it particularly popular as a means of adding programmable interfaces to existing applications. Van Rossum's vision of a small core language with a large standard library and an easily extensible interpreter stemmed from his frustrations with ABC, which represented the opposite approach.[11]\nPython claims to strive for a simpler, less-cluttered syntax and grammar, while giving developers a choice in their coding methodology. Python lacks do .. while\nloops, which Rossum considered harmful.[75] In contrast to Perl's motto \"there is more than one way to do it\", Python advocates an approach where \"there should be one \u2013 and preferably only one \u2013 obvious way to do it\".[70] In practice, however, Python provides many ways to achieve a given goal. There are at least three ways to format a string literal, with no certainty as to which one a programmer should use.[76] Alex Martelli is a Fellow at the Python Software Foundation and Python book author; he wrote that \"To describe something as 'clever' is not considered a compliment in the Python culture.\"[77]\nPython's developers typically prioritize readability over performance. For example, they reject patches to non-critical parts of the CPython reference implementation that would offer increases in speed that do not justify the cost of clarity and readability.[78][failed verification] Execution speed can be improved by moving speed-critical functions to extension modules written in languages such as C, or by using a just-in-time compiler like PyPy. Also, it is possible to transpile to other languages. However, this approach either fails to achieve the expected speed-up, since Python is a very dynamic language, or only a restricted subset of Python is compiled (with potential minor semantic changes).[79]\nPython is meant to be a fun language to use.[80]: 3 This goal is reflected in the name \u2013 a tribute to the British comedy group Monty Python[81] \u2013 and in playful approaches to some tutorials and reference materials. For instance, some code examples use the terms \"spam\" and \"eggs\" (in reference to a Monty Python sketch), rather than the typical terms \"foo\" and \"bar\".[80][82]\nA common neologism in the Python community is pythonic, which has a broad range of meanings related to program style: Pythonic code may use Python idioms well; be natural or show fluency in the language; or conform with Python's minimalist philosophy and emphasis on readability.[83]\nEnhancement Proposals\n[edit]Python Enhancement Proposals[note 1] are a design document for either providing information to the Python community, or proposal for new feature in Python.[84] PEPs are intended to explain new processes in Python, provide naming conventions or document the processes in the language.[85] PEPs are overseen by Python Steering Council.[85]\nThere are 3 kinds of PEPs, with those are being standards track PEP[note 2], Informational PEP[note 3] and Process PEPs[note 4] which has their own unique meanings.[84][86] They were firstly introduced in 2000, inspired by other RfCs (requests for comments) and Design Enhancement Proposals.[86] Most known PEPs are PEP \u2013 1, PEP \u2013 8, PEP \u2013 20, PEP \u2013 257 and others.[86]\nSyntax and semantics\n[edit]Python is meant to be an easily readable language. Its formatting is visually uncluttered and often uses English keywords where other languages use punctuation. Unlike many other languages, it does not use curly brackets to delimit blocks, and semicolons after statements are allowed but rarely used. It has fewer syntactic exceptions and special cases than C or Pascal.[87]\nIndentation\n[edit]Python uses whitespace indentation, rather than curly brackets or keywords, to delimit blocks. An increase in indentation comes after certain statements; a decrease in indentation signifies the end of the current block.[88] Thus, the program's visual structure accurately represents its semantic structure.[89] This feature is sometimes termed the off-side rule. Some other languages use indentation this way; but in most, indentation has no semantic meaning. The recommended indent size is four spaces.[90]\nStatements and control flow\n[edit]Python's statements include the following:\n- The assignment statement, using a single equals sign\n=\n- The\nif\nstatement, which conditionally executes a block of code, along withelse\nandelif\n(a contraction ofelse if\n) - The\nfor\nstatement, which iterates over an iterable object, capturing each element to a variable for use by the attached block; the variable is not deleted when the loop finishes - The\nwhile\nstatement, which executes a block of code as long as boolean condition is true - The\ntry\nstatement, which allows exceptions raised in its attached code block to be caught and handled byexcept\nclauses (or new syntaxexcept*\nin Python 3.11 for exception groups);[91] thetry\nstatement also ensures that clean-up code in afinally\nblock is always run regardless of how the block exits - The\nraise\nstatement, used to raise a specified exception or re-raise a caught exception - The\nclass\nstatement, which executes a block of code and attaches its local namespace to a class, for use in object-oriented programming - The\ndef\nstatement, which defines a function or method - The\nwith\nstatement, which encloses a code block within a context manager, allowing resource-acquisition-is-initialization (RAII)-like behavior and replacing a common try/finally idiom[92] Examples of a context include acquiring a lock before some code is run, and then releasing the lock; or opening and then closing a file - The\nbreak\nstatement, which exits a loop - The\ncontinue\nstatement, which skips the rest of the current iteration and continues with the next - The\ndel\nstatement, which removes a variable\u2014deleting the reference from the name to the value, and producing an error if the variable is referred to before it is redefined[d] - The\npass\nstatement, serving as a NOP (i.e., no operation), which is syntactically needed to create an empty code block - The\nassert\nstatement, used in debugging to check for conditions that should apply - The\nyield\nstatement, which returns a value from a generator function (and also an operator); used to implement coroutines - The\nreturn\nstatement, used to return a value from a function - The\nimport\nandfrom\nstatements, used to import modules whose functions or variables can be used in the current program. Python 3.15 adds a new functionality to lazily import with a new keyword: \"Thelazy\nkeyword works with bothimport\nandfrom ... import\nstatements.\"[43] - The\nmatch\nandcase\nstatements, analogous to a switch statement construct, which compares an expression against one or more cases as a control-flow measure\nThe assignment statement (=\n) binds a name as a reference to a separate, dynamically allocated object. Variables may subsequently be rebound at any time to any object. In Python, a variable name is a generic reference holder without a fixed data type; however, it always refers to some object with a type. This is called dynamic typing\u2014in contrast to statically-typed languages, where each variable may contain only a value of a certain type.\nPython does not support tail call optimization or first-class continuations; according to Van Rossum, the language never will.[93][94] However, better support for coroutine-like functionality is provided by extending Python's generators.[95] Before 2.5, generators were lazy iterators; data was passed unidirectionally out of the generator. From Python 2.5 on, it is possible to pass data back into a generator function; and from version 3.3, data can be passed through multiple stack levels.[96]\nExpressions\n[edit]Python's expressions include the following:\n- The\n+\n,-\n, and*\noperators for mathematical addition, subtraction, and multiplication are similar to other languages, but the behavior of division differs. There are two types of division in Python: floor division (or integer division)//\n, and floating-point division/\n.[97] Python uses the**\noperator for exponentiation. - Python uses the\n+\noperator for string concatenation. The language uses the*\noperator for duplicating a string a specified number of times. - The\n@\ninfix operator is intended to be used by libraries such as NumPy for matrix multiplication.[98][99] - The syntax\n:=\n, called the \"walrus operator\", was introduced in Python 3.8. This operator assigns values to variables as part of a larger expression.[100] - In Python,\n==\ncompares two objects by value. Python'sis\noperator may be used to compare object identities (i.e., comparison by reference), and comparisons may be chained\u2014for example,a <= b <= c\n. - Python uses\nand\n,or\n, andnot\nas Boolean operators. - Python has a type of expression called a list comprehension, and a more general expression called a generator expression.[68]\n- Anonymous functions are implemented using lambda expressions; however, there may be only one expression in each body.\n- Conditional expressions are written as\nx if c else y\n.[101] (This is different in operand order from thec ? x : y\noperator common to many other languages.) - Python makes a distinction between lists and tuples. Lists are written as\n[1, 2, 3]\n, are mutable, and cannot be used as the keys of dictionaries (since dictionary keys must be immutable in Python). Tuples, written as(1, 2, 3)\n, are immutable and thus can be used as the keys of dictionaries, provided that all of the tuple's elements are immutable. The+\noperator can be used to concatenate two tuples, which does not directly modify their contents, but produces a new tuple containing the elements of both. For example, given the variablet\ninitially equal to(1, 2, 3)\n, executingt = t + (4, 5)\nfirst evaluatest + (4, 5)\n, which yields(1, 2, 3, 4, 5)\n; this result is then assigned back tot\n\u2014thereby effectively \"modifying the contents\" oft\nwhile conforming to the immutable nature of tuple objects. Parentheses are optional for tuples in unambiguous contexts.[102] - Python features sequence unpacking where multiple expressions, each evaluating to something assignable (e.g., a variable or a writable property) are associated just as in forming tuple literal; as a whole, the results are then put on the left-hand side of the equal sign in an assignment statement. This statement expects an iterable object on the right-hand side of the equal sign to produce the same number of values as the writable expressions on the left-hand side; while iterating, the statement assigns each of the values produced on the right to the corresponding expression on the left.[103]\n- Python has a \"string format\" operator\n%\nthat functions analogously toprintf\nformat strings in the C language\u2014e.g.\"spam=%s eggs=%d\" % (\"blah\", 2)\nevaluates to\"spam=blah eggs=2\"\n. In Python 2.6+ and 3+, this operator was supplemented by theformat()\nmethod of thestr\nclass, e.g.,\"spam={0} eggs={1}\".format(\"blah\", 2)\n. Python 3.6 added \"f-strings\":spam = \"blah\"; eggs = 2; f'spam={spam} eggs={eggs}'\n.[104] - Strings in Python can be concatenated by \"adding\" them (using the same operator as for adding integers and floats); e.g.,\n\"spam\" + \"eggs\"\nreturns\"spameggs\"\n. If strings contain numbers, they are concatenated as strings rather than as integers, e.g.\"2\" + \"2\"\nreturns\"22\"\n. - Python supports string literals in several ways:\n- Delimited by single or double quotation marks; single and double quotation marks have equivalent functionality (unlike in Unix shells, Perl, and Perl-influenced languages). Both marks use the backslash (\n\\\n) as an escape character. String interpolation became available in Python 3.6 as \"formatted string literals\".[104] - Triple-quoted, i.e., starting and ending with three single or double quotation marks; this may span multiple lines and function like here documents in shells, Perl, and Ruby.\n- Raw string varieties, denoted by prefixing the string literal with\nr\n. Escape sequences are not interpreted; hence raw strings are useful where literal backslashes are common, such as in regular expressions and Windows-style paths. (Compare \"@\n-quoting\" in C#.)\n- Delimited by single or double quotation marks; single and double quotation marks have equivalent functionality (unlike in Unix shells, Perl, and Perl-influenced languages). Both marks use the backslash (\n- Python has array index and array slicing expressions in lists, which are written as\na[key]\n,a[start:stop]\nora[start:stop:step]\n. Indexes are zero-based, and negative indexes are relative to the end. Slices take elements from the start index up to, but not including, the stop index. The (optional) third slice parameter, called step or stride, allows elements to be skipped or reversed. Slice indexes may be omitted\u2014for example,a[:]\nreturns a copy of the entire list. Each element of a slice is a shallow copy.\nIn Python, a distinction between expressions and statements is rigidly enforced, in contrast to languages such as Common Lisp, Scheme, or Ruby. This distinction leads to duplicating some functionality, for example:\n- List comprehensions vs.\nfor\n-loops - Conditional expressions vs.\nif\nblocks - The\neval()\nvs.exec()\nbuilt-in functions (in Python 2,exec\nis a statement); the former function is for expressions, while the latter is for statements\nA statement cannot be part of an expression; because of this restriction, expressions such as list and dict\ncomprehensions (and lambda expressions) cannot contain statements. As a particular case, an assignment statement such as a = 1\ncannot be part of the conditional expression of a conditional statement.\nTyping\n[edit]Python uses duck typing, and it has typed objects but untyped variable names. Type constraints are not checked at definition time; rather, operations on an object may fail at usage time, indicating that the object is not of an appropriate type. Despite being dynamically typed, Python is strongly typed, forbidding operations that are poorly defined (e.g., adding a number and a string) rather than quietly attempting to interpret them.\nPython allows programmers to define their own types using classes, most often for object-oriented programming. New instances of classes are constructed by calling the class, for example, SpamClass()\nor EggsClass()\n); the classes are instances of the metaclass type\n(which is an instance of itself), thereby allowing metaprogramming and reflection.\nBefore version 3.0, Python had two kinds of classes, both using the same syntax: old-style and new-style.[105] Current Python versions support the semantics of only the new style.\nPython supports optional type annotations.[5][106] These annotations are not enforced by the language, but may be used by external tools such as mypy to catch errors. Python includes a module typing\nincluding several type names for type annotations.[107][108] Also, mypy supports a Python compiler called mypyc, which leverages type annotations for optimization.[109]\nArithmetic operations\n[edit]Python includes conventional symbols for arithmetic operators (+\n, -\n, *\n, /\n), the floor-division operator //\n, and the modulo operator %\n. (With the modulo operator, a remainder can be negative, e.g., 4 % -3 == -2\n.) Python also offers the **\nsymbol for exponentiation, e.g. 5**3 == 125\nand 9**0.5 == 3.0\n, as well as the matrix\u2011multiplication operator @\n.[115] These operators work as in traditional mathematics; with the same precedence rules, the infix operators +\nand -\ncan also be unary, to represent positive and negative numbers respectively.\nDivision between integers produces floating-point results. The behavior of division has changed significantly over time:[116]\n- The current version of Python (i.e., since 3.0) changed the\n/\noperator to always represent floating-point division, e.g.,5/2 == 2.5\n. - The floor division\n//\noperator was introduced, meaning that7//3 == 2\n,-7//3 == -3\n,7.5//3 == 2.0\n, and-7.5//3 == -3.0\n. For Python 2.7, adding thefrom __future__ import division\nstatement allows a module in Python 2.7 to use Python 3.x rules for division (see above).\nIn Python terms, the /\noperator represents true division (or simply division), while the //\noperator represents floor division. Before version 3.0, the /\noperator represents classic division.[116]\nRounding towards negative infinity, though a different method than in most languages, adds consistency to Python. For instance, this rounding implies that the equation (a + b)//b == a//b + 1\nis always true. Also, the rounding implies that the equation b*(a//b) + a%b == a\nis valid for both positive and negative values of a\n. As expected, the result of a%b\nlies in the half-open interval [0, b), where b\nis a positive integer; however, maintaining the validity of the equation requires that the result must lie in the interval (b, 0] when b\nis negative.[117]\nPython provides a round\nfunction for rounding a float to the nearest integer. For tie-breaking, Python 3 uses the round to even method: round(1.5)\nand round(2.5)\nboth produce 2\n.[118] Python versions before 3 used the round-away-from-zero method: round(0.5)\nis 1.0\n, and round(-0.5)\nis \u22121.0\n.[119]\nPython allows Boolean expressions that contain multiple equality relations to be consistent with general usage in mathematics. For example, the expression a < b < c\ntests whether a\nis less than b\nand b\nis less than c\n.[120] C-derived languages interpret this expression differently: in C, the expression would first evaluate a < b\n, resulting in 0 or 1, and that result would then be compared with c\n.[121]\nPython uses arbitrary-precision arithmetic for all integer operations. The Decimal\ntype/class in the decimal\nmodule provides decimal floating-point numbers to a pre-defined arbitrary precision with several rounding modes.[122] The Fraction\nclass in the fractions\nmodule provides arbitrary precision for rational numbers.[123]\nDue to Python's extensive mathematics library and the third-party library NumPy, the language is frequently used for scientific scripting in tasks such as numerical data processing and manipulation.[124][125]\nFunction syntax\n[edit]Functions are created in Python by using the def\nkeyword. A function is defined similarly to how it is called, by first providing the function name and then the required parameters. Here is an example of a function that prints its inputs:\ndef printer(input1, input2 = \"already there\"):\nprint(input1)\nprint(input2)\nprinter(\"hello\")\n# Example output:\n# hello\n# already there\nTo assign a default value to a function parameter in case no actual value is provided at run time, variable-definition syntax can be used inside the function header.\nCode examples\n[edit]print('Hello, World!')\nProgram to calculate the factorial of a non-negative integer:\ntext = input('Type a number, and its factorial will be printed: ')\nif text.isdigit():\nn = int(text)\nelse:\nraise TypeError('You must input a number')\nif n < 0:\nraise ValueError('You must enter a non-negative integer')\nfactorial = 1\nfor i in range(2, n + 1):\nfactorial *= i\nprint(factorial)\nLibraries\n[edit]Python's large standard library[126] is commonly cited as one of its greatest strengths. For Internet-facing applications, many standard formats and protocols such as MIME and HTTP are supported. The language includes modules for creating graphical user interfaces, connecting to relational databases, generating pseudorandom numbers, arithmetic with arbitrary-precision decimals,[122] manipulating regular expressions, and unit testing.\nSome parts of the standard library are covered by specifications\u2014for example, the Web Server Gateway Interface (WSGI) implementation wsgiref\nfollows PEP 333[127]\u2014but most parts are specified by their code, internal documentation, and test suites. However, because most of the standard library is cross-platform Python code, only a few modules must be altered or rewritten for variant implementations.\nAs of 1 October 2026,[update] the Python Package Index (PyPI), the official repository for third-party Python software, contains over 905,649[128] projects.\nDevelopment environments\n[edit]Most[which?] Python implementations (including CPython) include a read\u2013eval\u2013print loop (REPL); this permits the environment to function as a command line interpreter, with which users enter statements sequentially and receive results immediately.[129]\nAlso, CPython is bundled with an integrated development environment (IDE) called IDLE,[130] which is oriented toward beginners.[citation needed][by whom?]\nOther shells, including IDLE and IPython, add additional capabilities such as improved auto-completion, session-state retention, and syntax highlighting.[130][131]\nStandard desktop IDEs include PyCharm, Spyder, and Visual Studio Code;[132] there are web browser-based IDEs, such as the following environments:\n- Jupyter Notebooks, an open-source interactive computing platform;[133]\n- PythonAnywhere, a browser-based IDE and hosting environment; and\n- Canopy, a commercial IDE from Enthought that emphasizes scientific computing.[134][135]\nImplementations\n[edit]Reference implementation\n[edit]CPython is the reference implementation of Python. This implementation is written in C, meaning the C11 standard[136] since version 3.11. Third-party extensions can be implemented using C99 or newer or C++.[137][138] CPython compiles Python programs into an intermediate bytecode,[139] which is then executed by a virtual machine.[140] CPython is distributed with a large standard library written in a combination of C and native Python.\nCPython is available for many platforms, including Windows and most modern Unix-like systems, including macOS (and Apple M1 Macs). Starting with Python 3.9, the Python installer intentionally fails to install on Windows 7 and 8;[141][142] Windows XP was supported until Python 3.5. Old discontinued Python versions unofficially support VMS (or mostly supporting[143]) and OpenVMS x86-64 has support for now-discontinued Python 3.10.[144][145] Platform portability was one of Python's earliest priorities.[146] During development of Python 1 and 2, even OS/2 and Solaris were supported;[8] since that time, support has been dropped for many platforms.\nAll current Python versions (since 3.7) support only operating systems that feature multithreading (and since 3.13, and improved in 3.14 optional \"free-threaded mode\"[147] used when opted into with python3.14t\n) , by now supporting not nearly as many operating systems (dropping many outdated) than in the past.\nLimitations of the reference implementation\n[edit]- The energy usage of Python with CPython for typically written code is much worse than C by a factor of 75.88.[148]\n- The throughput of Python with CPython for typically written code is worse than C by a factor of 71.9.[148]\n- The average memory usage of CPython for typically written code is worse than C by a factor of 2.4.[148]\nOther implementations\n[edit]All alternative implementations have at least slightly different semantics. For example, an alternative may include unordered dictionaries, in contrast to other current Python versions. As another example in the larger Python ecosystem, PyPy does not support the full C Python API.\nCreating an executable with Python often is done by bundling an entire Python interpreter into the executable, which causes binary sizes to be massive for small programs,[149] yet there exist implementations that are capable of truly compiling Python. Alternative implementations include the following:\n- PyPy is a faster, compliant interpreter of Python 3.12, 3.11 and 2.7.[150][151] PyPy's just-in-time compiler often improves speed significantly relative to CPython, but PyPy does not support some libraries written in C.[152] PyPy offers support for the RISC-V instruction-set architecture.\n- Codon[153] is an implementation with an ahead-of-time (AOT) compiler, which compiles a statically-typed Python-like language whose \"syntax and semantics are nearly identical to Python's, there are some notable differences\"[154] For example, Codon uses 64-bit machine integers for speed, not arbitrarily as with Python; Codon developers claim that speedups over CPython are usually on the order of ten to a hundred times. Codon compiles to machine code (via LLVM) and supports native multithreading.[155] Codon can also compile to Python extension modules that can be imported and used from Python.\n- MicroPython and CircuitPython are Python 3 variants that are optimized for microcontrollers, including the Lego Mindstorms EV3.[156]\n- Pyston is a variant of the Python runtime that uses just-in-time compilation to speed up execution of Python programs.[157]\n- Cinder is a performance-oriented fork of CPython 3.8 that features a number of optimizations, including bytecode inline caching, eager evaluation of coroutines, a method-at-a-time JIT, and an experimental bytecode compiler.[158]\n- The Snek[159][160][161] embedded computing language \"is Python-inspired, but it is not Python. It is possible to write Snek programs that run under a full Python system, but most Python programs will not run under Snek.\"[162] Snek is compatible with 8-bit AVR microcontrollers such as ATmega 328P-based Arduino, as well as larger microcontrollers that are compatible with MicroPython. Snek is an imperative language that (unlike Python) omits object-oriented programming. Snek supports only one numeric data type, which features 32-bit single precision (resembling JavaScript numbers, though smaller).\n- RustPython is an implementation written in Rust language. It aims to be compatible with CPython, including its C-ABI.[163]\nUnsupported implementations\n[edit]Stackless Python is a significant fork of CPython that implements microthreads. This implementation uses the call stack differently, thus allowing massively concurrent programs. PyPy also offers a stackless version.[164]\nJust-in-time Python compilers have been developed, but are now unsupported:\n- Google began a project named Unladen Swallow in 2009: this project aimed to speed up the Python interpreter five-fold by using LLVM, and improve multithreading capability for scaling to thousands of cores,[165] while typical implementations are limited by the global interpreter lock.\n- Psyco is a discontinued just-in-time specializing compiler, which integrates with CPython and transforms bytecode to machine code at runtime. The emitted code is specialized for certain data types and is faster than standard Python code. Psyco does not support Python 2.7 or later.\n- PyS60 was a Python 2 interpreter for Series 60 mobile phones, which was released by Nokia in 2005. The interpreter implemented many modules from Python's standard library, as well as additional modules for integration with the Symbian operating system. The Nokia N900 also supports Python through the GTK widget library, allowing programs to be written and run on the target device.[166]\nTranspilers to other languages\n[edit]There are several compilers/transpilers to high-level object languages; the source language is unrestricted Python, a subset of Python, or a language similar to Python:\n- Brython[167] and Transcrypt[168][169] compile Python to JavaScript.\n- Cython compiles a superset of Python to C. The resulting code can be used with Python via direct C-level API calls into the Python interpreter.\n- PyJL compiles/transpiles a subset of Python to \"human-readable, maintainable, and high-performance Julia source code\".[79] Despite the developers' performance claims, this is not possible for arbitrary Python code; that is, compiling to a faster language or machine code is known to be impossible in the general case. The semantics of Python might potentially be changed, but in many cases speedup is possible with few or no changes in the Python code. The faster Julia source code can then be used from Python or compiled to machine code.\n- Nuitka compiles Python into C.[170] This compiler works with Python 3.4 to 3.14 (and 2.6 and 2.7) for Python's main supported platforms (and Windows 7 or even Windows XP) and for Android. The compiler developers claim full support for the now-discontinued Python 3.10, partial support for Python 3.11 and 3.12, and experimental support for Python 3.13. Nuitka supports macOS including Apple Silicon-based versions. The compiler is free of cost, though it has commercial add-ons (e.g., for hiding source code).\n- Numba is a JIT compiler that is used from Python; the compiler translates a subset of Python and NumPy code into fast machine code. This tool is enabled by adding a decorator to the relevant Python code.\n- Pythran compiles a subset of Python 3 to C++ (C++11).[171]\n- RPython can be compiled to C, and it is used to build the PyPy interpreter for Python.\n- The Python \u2192 11l \u2192 C++ transpiler[172] compiles a subset of Python 3 to C++ (C++17).\nThere are also specialized compilers:\n- MyHDL is a Python-based hardware description language (HDL) that converts MyHDL code to Verilog or VHDL code.\nSome older projects existed, as well as compilers not designed for use with Python 3.x and related syntax:\n- Google's Grumpy transpiles Python 2 to Go.[173][174][175] The latest release was in 2017.\n- IronPython allows running Python 2.7 programs with the .NET Common Language Runtime.[176] An alpha version (released in 2021), is available for \"Python 3.4, although features and behaviors from later versions may be included.\"[177]\n- Jython compiles Python 2.7 to Java bytecode, allowing the use of Java libraries from a Python program.[178]\n- Pyrex (last released in 2010) and Shed Skin (last released in 2013) compile to C and C++ respectively.\nPerformance\n[edit]A performance comparison among various Python implementations, using a non-numerical (combinatorial) workload, was presented at EuroSciPy '13.[179] In addition, Python's performance relative to other programming languages is benchmarked by The Computer Language Benchmarks Game.[180]\nThere are several approaches to optimizing Python performance, despite the inherent slowness of an interpreted language. These approaches include the following strategies or tools:\n- Just-in-time compilation: Dynamically compiling parts of a Python program during the execution of the program. This technique is used in libraries such as Numba and PyPy.\n- Static compilation: Sometimes, Python code can be compiled into machine code sometime before execution. An example of this approach is Cython, which compiles Python into C.\n- Concurrency and parallelism: Multiple tasks can be run simultaneously. Python contains modules such as `multiprocessing` to support this form of parallelism. Moreover, this approach helps to overcome limitations of the Global Interpreter Lock (GIL) in CPU tasks.\n- Efficient data structures: Performance can also be improved by using data types such as\nSet\nfor membership tests, ordeque\nfromcollections\nfor queue operations. - Performance gains can be observed by utilizing libraries such as NumPy. Most high-performance Python libraries use C or Fortran under the hood instead of the Python interpreter.[181]\nLanguage development\n[edit]Python's development is conducted mostly through the Python Enhancement Proposal (PEP) process; this process is the primary mechanism for proposing major new features, collecting community input on issues, and documenting Python design decisions.[182] Python coding style is covered in PEP 8.[90] Outstanding PEPs are reviewed and commented on by the Python community and the steering council.[182]\nEnhancement of the language corresponds with development of the CPython reference implementation. The mailing list python-dev is the primary forum for the language's development. Specific issues were originally discussed in the Roundup bug tracker hosted by the foundation.[183] In 2022, all issues and discussions were migrated to GitHub.[184] Development originally took place on a self-hosted source-code repository running Mercurial, until Python moved to GitHub in January 2017.[185]\nCPython's public releases have three types, distinguished by which part of the version number is incremented:\n- Backward-incompatible versions, where code is expected to break and must be manually ported. The first part of the version number is incremented. These releases happen infrequently\u2014version 3.0 was released 8 years after 2.0. According to Guido van Rossum, a version 4.0 will probably never exist.[186]\n- Major or \"feature\" releases are largely compatible with the previous version but introduce new features. The second part of the version number is incremented. Starting with Python 3.9, these releases are expected to occur annually.[187][188] Each major version is supported by bug fixes for several years after its release.[189]\n- Bug fix releases,[190] which introduce no new features, occur approximately every three months; these releases are made when a sufficient number of bugs have been fixed upstream since the last release. Security vulnerabilities are also patched in these releases. The third and final part of the version number is incremented.[190]\nMany alpha, beta, and release-candidates are also released as previews and for testing before final releases. Although there is a rough schedule for releases, they are often delayed if the code is not ready yet. Python's development team monitors the state of the code by running a large unit test suite during development.[191]\nThe major academic conference on Python is PyCon. Also, there are special Python mentoring programs, such as PyLadies.\nNaming\n[edit]Python's name is inspired by the British comedy group Monty Python, whom Python creator Guido van Rossum enjoyed while developing the language. Monty Python references appear frequently in Python code and culture;[192] for example, the metasyntactic variables often used in Python literature are spam and eggs, rather than the traditional foo and bar.[192][193] Also, the official Python documentation contains various references to Monty Python routines.[194][195] Python users are sometimes referred to as \"Pythonistas\".[196]\nLanguages influenced by Python\n[edit]- Cobra has an Acknowledgements document that lists Python first among influencing languages.[197]\n- ECMAScript and JavaScript borrowed iterators and generators from Python.[198]\n- Go is designed for \"speed of working in a dynamic language like Python\".[199]\n- Julia was designed to be \"as usable for general programming as Python\".[33]\n- Mojo is not a superset of Python,[200] though pre-1.0 versions were described as almost[34][201] a superset of Python.[202]\n- GDScript is strongly influenced by Python.[203]\n- Groovy, Boo, CoffeeScript, F#, Nim, Ruby,[35] Swift,[36] and V[37] have been influenced, as well.\nSee also\n[edit]Notes\n[edit]- \u2191 since 3.5, but those hints are ignored, except with unofficial tools[5]\n- \u2191\n- \u2191 He has since come out of retirement and is self-titled \"BDFL-emeritus\".\n- \u2191\ndel\nin Python does not behave the same waydelete\nin languages such as C++ does, where such a word is used to call the destructor and deallocate heap memory.\nReferences\n[edit]- \u2191 \"General Python FAQ \u2013 Python 3 documentation\". docs.python.org. Retrieved 7 July 2024.\n- \u2191 \"Python 0.9.1 part 01/21\". alt.sources archives. Archived from the original on 11 August 2021. Retrieved 11 August 2021.\n- \u2191 \"Python 3.14.8\". 30 September 2026. Retrieved 2 October 2026.\n- \u2191 \"Why is Python a dynamic language and also a strongly typed language\". Python Wiki. Archived from the original on 14 March 2021. Retrieved 27 January 2021.\n- 1 2 van Rossum, Guido; Levkivskyi, Ivan. \"PEP 483 \u2013 The Theory of Type Hints\". Python Enhancement Proposals (PEPs). Archived from the original on 14 June 2020. Retrieved 14 June 2018.\n- \u2191 von L\u00f6wis, Martin; Cannon, Brett. \"PEP 11 \u2013 CPython platform support\". Python Enhancement Proposals (PEPs). Retrieved 22 April 2024.\n- \u2191 \"PEP 738 \u2013 Adding Android as a supported platform | peps.python.org\". Python Enhancement Proposals (PEPs). Retrieved 19 May 2024.\n- 1 2 \"Download Python for Other Platforms\". Python.org. Archived from the original on 27 November 2020. Retrieved 18 August 2023.\n- \u2191 \"test \u2013 Regression tests package for Python\". Python 3.7.17 documentation. Archived from the original on 17 May 2022. Retrieved 17 May 2022.\n- \u2191 \"platform \u2013 Access to underlying platform's identifying data\". Python 3.10.4 documentation. Archived from the original on 17 May 2022. Retrieved 17 May 2022.\n- 1 2 3 Venners, Bill (13 January 2003). \"The Making of Python\". Artima Developer. Artima. Archived from the original on 1 September 2016. Retrieved 22 March 2007.\n- \u2191 Cannon, Brett (20 February 2015). \"PEP 488 \u2013 Elimination of PYO files\". Python Enhancement Proposals (PEPs). Archived from the original on 16 January 2026. Retrieved 28 February 2026.\nA PYC file is the bytecode file generated and read from when no optimization level is specified at interpreter startup [...]\n.pyc\n- \u2191 Ahlstrom, James C. (11 October 2001). \"PEP 273 \u2013 Import Modules from Zip Archives\". Python Enhancement Proposals (PEPs). Archived from the original on 25 February 2026. Retrieved 28 February 2026.\nDynamic modules have extensions like\n.dll\n,.pyd\n, and.so\n. - \u2191 Harper Smith, Emma (9 September 2017). \"PEP 561 \u2013 Distributing and Packaging Type Information\". Python Enhancement Proposals (PEPs). Archived from the original on 7 December 2025. Retrieved 28 February 2026.\n'stubs' - files containing only type information, empty of runtime code (the filename ends in\n.pyi\n). - \u2191 Hammond, Mark; von L\u00f6wis, Martin (15 March 2011). \"PEP 397 \u2013 Python launcher for Windows\". Python Enhancement Proposals (PEPs). Archived from the original on 4 February 2026. Retrieved 28 February 2026.\n[...] the 'console' version of the launcher is associated with .py files and the 'windows' version associated with .pyw files.\n- \u2191 Holth, Daniel; Moore, Paul (30 March 2013). \"PEP 0441 \u2013 Improving Python ZIP Application Support\". Python Enhancement Proposals (PEPs). Archived from the original on 16 November 2015. Retrieved 12 November 2015.\n- \u2191 \"Starlark Language\". bazel.build. Archived from the original on 15 June 2020. Retrieved 25 May 2019.\n- 1 2 \"Why was Python created in the first place?\". General Python FAQ. Python Software Foundation. Archived from the original on 24 October 2012. Retrieved 22 March 2007.\nI had extensive experience with implementing an interpreted language in the ABC group at CWI, and from working with this group I had learned a lot about language design. This is the origin of many Python features, including the use of indentation for statement grouping and the inclusion of very high-level data types (although the details are all different in Python).\n- \u2191 \"Ada 83 Reference Manual (raise statement)\". archive.adaic.com. Archived from the original on 22 October 2019. Retrieved 7 January 2020.\n- 1 2 Kuchling, Andrew M. (22 December 2006). \"Interview with Guido van Rossum (July 1998)\". amk.ca. Archived from the original on 1 May 2007. Retrieved 12 March 2012.\nI'd spent a summer at DEC's Systems Research Center, which introduced me to Modula-2+; the Modula-3 final report was being written there at about the same time. What I learned there later showed up in Python's exception handling, modules, and the fact that methods explicitly contain 'self' in their parameter list. String slicing came from Algol-68 and Icon.\n- 1 2 3 \"itertools \u2013 Functions creating iterators for efficient looping\". Python 3.7.17 documentation. Archived from the original on 14 June 2020. Retrieved 22 November 2016.\nThis module implements a number of iterator building blocks inspired by constructs from APL, Haskell, and SML.\n- \u2191 van Rossum, Guido (1993). An Introduction to Python for UNIX/C Programmers. Proceedings of the NLUUG Najaarsconferentie (Dutch UNIX Users Group).\neven though the design of C is far from ideal, its influence on Python is considerable.\n- 1 2 \"Classes\". The Python Tutorial. Python Software Foundation. Archived from the original on 23 October 2012. Retrieved 20 February 2012.\nIt is a mixture of the class mechanisms found in C++ and Modula-3\n- \u2191 Lundh, Fredrik. \"Call By Object\". effbot.org. Archived from the original on 23 November 2019. Retrieved 21 November 2017.\nreplace \"CLU\" with \"Python\", \"record\" with \"instance\", and \"procedure\" with \"function or method\", and you get a pretty accurate description of Python's object model.\n- \u2191 Simionato, Michele. \"The Python 2.3 Method Resolution Order\". Python Software Foundation. Archived from the original on 20 August 2020. Retrieved 29 July 2014.\nThe 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\n- \u2191 Kuchling, A. M. \"Functional Programming HOWTO\". Python v2.7.2 documentation. Python Software Foundation. Archived from the original on 24 October 2012. Retrieved 9 February 2012.\nList comprehensions and generator expressions [...] are a concise notation for such operations, borrowed from the functional programming language Haskell.\n- \u2191 Schemenauer, Neil; Peters, Tim; Hetland, Magnus Lie (18 May 2001). \"PEP 255 \u2013 Simple Generators\". Python Enhancement Proposals. Python Software Foundation. Archived from the original on 5 June 2020. Retrieved 9 February 2012.\n- \u2191 \"More Control Flow Tools\". Python 3 documentation. Python Software Foundation. Archived from the original on 4 June 2016. Retrieved 24 July 2015.\nBy popular demand, a few features commonly found in functional programming languages like Lisp have been added to Python. With the lambda keyword, small anonymous functions can be created.\n- \u2191 \"re \u2013 Regular expression operations\". Python 3.10.6 documentation. Archived from the original on 18 July 2018. Retrieved 6 September 2022.\nThis module provides regular expression matching operations similar to those found in Perl.\n- \u2191 \"CoffeeScript\". coffeescript.org. Archived from the original on 12 June 2020. Retrieved 3 July 2018.\n- \u2191 Rauschmayer, Axel (24 February 2013). \"Perl and Python influences in JavaScript\". 2ality.com. Archived from the original on 26 December 2018. Retrieved 15 May 2015.\n- \u2191 Rauschmayer, Axel. \"Chapter 3: The Nature of JavaScript; Influences\". Speaking JavaScript. O'Reilly. Archived from the original on 26 December 2018. Retrieved 15 May 2015.\n- 1 2 Bezanson, Jeff; Karpinski, Stefan; Shah, Viral B.; Edelman, Alan (February 2012). \"Why We Created Julia\". Julia website. Archived from the original on 2 May 2020. Retrieved 5 June 2014.\nWe want something as usable for general programming as Python [...]\n- 1 2 Krill, Paul (4 May 2023). \"Mojo language marries Python and MLIR for AI development\". InfoWorld. Archived from the original on 5 May 2023. Retrieved 5 May 2023.\n- 1 2 Bini, Ola (2007). Practical JRuby on Rails Web 2.0 Projects: bringing Ruby on Rails to the Java platform. Berkeley: APress. p. 3. ISBN 978-1-59059-881-8.\n- 1 2 Lattner, Chris (3 June 2014). \"Chris Lattner's Homepage\". Chris Lattner. Archived from the original on 25 December 2018. Retrieved 3 June 2014.\nThe Swift language is the product of tireless effort from a team of language experts, documentation gurus, compiler optimization ninjas, and an incredibly important internal dogfooding group who provided feedback to help refine and battle-test ideas. Of course, it also greatly benefited from the experiences hard-won by many other languages in the field, drawing ideas from Objective-C, Rust, Haskell, Ruby, Python, C#, CLU, and far too many others to list.\n- 1 2 \"V documentation (Introduction)\". GitHub. Retrieved 24 December 2024.\n- \u2191 Kuhlman, Dave. \"A Python Book: Beginning Python, Advanced Python, and Python Exercises\". Section 1.1. Archived from the original (PDF) on 23 June 2012.\n- \u2191 \"PEP 484 \u2013 Type Hints\". Python Enhancement Proposals. Retrieved 27 October 2025.\n- \u2191 \"mypy \u2013 Optional Static Typing for Python\". mypy-lang.org. Retrieved 17 August 2025.\n- \u2191 \"Python 3.15.0 candidate 3 is here!\". Python Insider. 2 October 2026. Retrieved 2 October 2026.\n- \u2191 \"PEP 790 \u2013 Python 3.15 Release Schedule | peps.python.org\". Python Enhancement Proposals (PEPs). Retrieved 5 October 2026.\n- 1 2 \"What's new in Python 3.15\". Retrieved 26 January 2026.\n- \u2191 Sultana, Simon G.; Reed, Philip A. (2017). \"Curriculum for an Introductory Computer Science Course: Identifying Recommendations from Academia and Industry\". The Journal of Technology Studies. 43 (2): 80\u201392. doi:10.21061/jots.v43i2.a.3. ISSN 1071-6084. JSTOR 90023144.\n- 1 2 3 van Rossum, Guido (20 January 2009). \"A Brief Timeline of Python\". The History of Python. Archived from the original on 5 June 2020. Retrieved 20 January 2009.\n- \u2191 van Rossum, Guido (29 August 2000). \"SETL (was: Lukewarm about range literals)\". Python-Dev (Mailing list). Archived from the original on 14 July 2018. Retrieved 13 March 2011.\n- \u2191 Fairchild, Carlie (12 July 2018). \"Guido van Rossum Stepping Down from Role as Python's Benevolent Dictator For Life\". Linux Journal. Archived from the original on 13 July 2018. Retrieved 13 July 2018.\n- \u2191 Smith, Nathaniel J.; Durbin, Ee. \"PEP 8100 \u2013 January 2019 Steering Council election\". Python Enhancement Proposals (PEPs). Python Software Foundation. Archived from the original on 4 June 2020. Retrieved 4 May 2019.\n- \u2191 The Python core team and community. \"PEP 13 \u2013 Python Language Governance\". Python Enhancement Proposals (PEPs). Archived from the original on 27 May 2021. Retrieved 25 August 2021.\n- \u2191 Briggs, Jason R.; Lipova\u010da, Miran (2013). Python for kids: a playful introduction to programming. San Francisco, California, USA: No Starch Press. ISBN 978-1-59327-407-8. LCCN 2012044047. OCLC 825076499. OL 26119645M.\n- \u2191 Kuchling, A. M.; Zadka, Moshe (16 October 2000). \"What's New in Python 2.0\". Python Software Foundation. Archived from the original on 23 October 2012. Retrieved 11 February 2012.\n- \u2191 Peterson, Benjamin. \"PEP 373 \u2013 Python 2.7 Release Schedule\". python.org. Archived from the original on 19 May 2020. Retrieved 9 January 2017.\n- \u2191 Coghlan, Alyssa. \"PEP 466 \u2013 Network Security Enhancements for Python 2.7.x\". Python Enhancement Proposals (PEPs). Archived from the original on 4 June 2020. Retrieved 9 January 2017.\n- \u2191 \"Sunsetting Python 2\". Python.org. Archived from the original on 12 January 2020. Retrieved 22 September 2019.\n- \u2191 Peterson, Benjamin. \"PEP 373 \u2013 Python 2.7 Release Schedule\". Python Enhancement Proposals (PEPs). Archived from the original on 13 January 2020. Retrieved 22 September 2019.\n- \u2191 mattip (25 December 2023). \"PyPy v7.3.14 release\". PyPy. Archived from the original on 5 January 2024. Retrieved 5 January 2024.\n- \u2191 Peterson, Benjamin (20 April 2020). \"Python 2.7.18, the last release of Python 2\". Python Insider. Archived from the original on 26 April 2020. Retrieved 27 April 2020.\n- \u2191 \"Python Release Python 3.14.8\". Python.org. Retrieved 2 October 2026.\n- \u2191 \"Status of Python versions\". Python Developer's Guide. Retrieved 1 October 2026.\n- \u2191 \"Python 3.15.0 candidate 2 is here!\". Python Insider. 1 September 2026. Retrieved 6 September 2026.\n- \u2191 The Cain Gang Ltd. \"Python Metaclasses: Who? Why? When?\" (PDF). Archived from the original (PDF) on 30 May 2009. Retrieved 27 June 2009.\n- \u2191 \"3.3. Special method names\". The Python Language Reference. Python Software Foundation. Archived from the original on 15 December 2018. Retrieved 27 June 2009.\n- \u2191 \"PyDBC: method preconditions, method postconditions and class invariants for Python\". Archived from the original on 23 November 2019. Retrieved 24 September 2011.\n- \u2191 \"Contracts for Python\". Archived from the original on 15 June 2020. Retrieved 24 September 2011.\n- \u2191 \"PyDatalog\". Archived from the original on 13 June 2020. Retrieved 22 July 2012.\n- \u2191 \"Glue it all together with Python\". Python.org. Retrieved 30 September 2024.\n- \u2191 \"Reference counts\". Extending and embedding the Python interpreter. Docs.python.org. Archived from the original on 18 October 2012. Retrieved 5 June 2020.\nSince Python makes heavy use of\nmalloc()\nandfree()}\n, it needs a strategy to avoid memory leaks as well as the re\u2011use of freed memory. The method chosen is called reference counting. - 1 2 Hettinger, Raymond (30 January 2002). \"PEP 289 \u2013 Generator Expressions\". Python Enhancement Proposals. Python Software Foundation. Archived from the original on 14 June 2020. Retrieved 19 February 2012.\n- \u2191 \"6.5 itertools \u2013 Functions creating iterators for efficient looping\". Docs.python.org. Archived from the original on 14 June 2020. Retrieved 22 November 2016.\n- 1 2 Peters, Tim (19 August 2004). \"PEP 20 \u2013 The Zen of Python\". Python Enhancement Proposals. Python Software Foundation. Archived from the original on 26 December 2018. Retrieved 24 November 2008.\n- \u2191 Lutz, Mark (January 2022). \"Python changes 2014+\". Learning Python. Archived from the original on 15 March 2024. Retrieved 25 February 2024.\n- \u2191 \"Confusion regarding a rule in 'the Zen of Python'\". Discussions. Python.org. Python help. 3 May 2022. Archived from the original on 25 February 2024. Retrieved 25 February 2024.\n- \u2191 Ambi, Chetan (4 July 2021). \"The most controversial Python 'walrus operator'\". Python simplified (pythonsimplified.com). Archived from the original on 27 August 2023. Retrieved 5 February 2024.\n- \u2191 Grifski, Jeremy (24 May 2020). \"The controversy behind the 'walrus operator' in Python\". The Renegade Coder (therenegadecoder.com). Archived from the original on 28 December 2023. Retrieved 25 February 2024.\n- \u2191 van Kemenade, Hugo (2 June 2026). \"Python 3.15.0 beta 2 is here!\". Python Insider. Retrieved 18 June 2026.\n- \u2191 Bader, Dan. \"Python string formatting best practices\". Real Python (realpython.com). Archived from the original on 18 February 2024. Retrieved 25 February 2024.\n- \u2191 Martelli, Alex; Ravenscroft, Anna; Ascher, David (2005). Python Cookbook, 2nd Edition. O'Reilly Media. p. 230. ISBN 978-0-596-00797-3. Archived from the original on 23 February 2020. Retrieved 14 November 2015.\n- \u2191 \"Python Culture\". ebeab. 21 January 2014. Archived from the original on 30 January 2014.\n- 1 2 \"Transpiling Python to Julia using PyJL\" (PDF). Archived (PDF) from the original on 19 November 2023. Retrieved 20 September 2023.\nAfter manually modifying one line of code by specifying the necessary type information, we obtained a speedup of 52.6\u00d7, making the translated Julia code 19.5\u00d7 faster than the original Python code.\n- 1 2 \"15 ways Python is a powerful force on the web\". Archived from the original on 11 May 2019. Retrieved 3 July 2018.\n- \u2191 \"Why is it called Python?\". General Python FAQ. Docs.python.org. Archived from the original on 24 October 2012. Retrieved 3 January 2023.\n- \u2191 \"\npprint\n\u2013 data pretty printer \u2013 Python 3.11.0 documentation\". docs.python.org. Archived from the original on 22 January 2021. Retrieved 5 November 2022.stuff = ['spam', 'eggs', 'lumberjack', 'knights', 'ni']\n- \u2191 \"Code style\". The hitchhiker's guide to Python. docs.python-guide.org. Archived from the original on 27 January 2021. Retrieved 20 January 2021.\n- 1 2 3 Warsaw, Berry; Hylton, Jeremy; Goodder, David (13 June 2000). \"PEP 1 \u2013 PEP Purpose and Guidelines\". peps.python.org. Retrieved 6 May 2026.\n- 1 2 \"Python Enhancement Proposal (PEP)\". Retrieved 6 May 2026.\n- 1 2 3 \"What is a PEP in Python?\". believemy.com. Retrieved 7 May 2026.\n- \u2191 \"Is Python a good language for beginning programmers?\". General Python FAQ. Python Software Foundation. Archived from the original on 24 October 2012. Retrieved 21 March 2007.\n- \u2191 \"Myths about indentation in Python\". Secnetix.de. Archived from the original on 18 February 2018. Retrieved 19 April 2011.\n- \u2191 Guttag, John V. (12 August 2016). Introduction to Computation and Programming Using Python: With Application to Understanding Data. MIT Press. ISBN 978-0-262-52962-4.\n- 1 2 van Rossum, Guido; Warsaw, Barry. \"PEP 8 \u2013 Style Guide for Python Code\". Python Enhancement Proposals (PEPs). Archived from the original on 17 April 2019. Retrieved 26 March 2019.\n- \u2191 \"8. Errors and Exceptions \u2013 Python 3.12.0a0 documentation\". docs.python.org. Archived from the original on 9 May 2022. Retrieved 9 May 2022.\n- \u2191 \"Highlights: Python 2.5\". Python.org. Archived from the original on 4 August 2019. Retrieved 20 March 2018.\n- \u2191 van Rossum, Guido (22 April 2009). \"Tail Recursion Elimination\". Neopythonic.blogspot.be. Archived from the original on 19 May 2018. Retrieved 3 December 2012.\n- \u2191 van Rossum, Guido (9 February 2006). \"Language Design Is Not Just Solving Puzzles\". Artima forums. Artima. Archived from the original on 17 January 2020. Retrieved 21 March 2007.\n- \u2191 van Rossum, Guido; Eby, Phillip J. (10 May 2005). \"PEP 342 \u2013 Coroutines via Enhanced Generators\". Python Enhancement Proposals. Python Software Foundation. Archived from the original on 29 May 2020. Retrieved 19 February 2012.\n- \u2191 \"PEP 380\". Python.org. Archived from the original on 4 June 2020. Retrieved 3 December 2012.\n- \u2191 \"division\". python.org. Archived from the original on 20 July 2006. Retrieved 30 July 2014.\n- \u2191 \"PEP 0465 \u2013 A dedicated infix operator for matrix multiplication\". python.org. Archived from the original on 4 June 2020. Retrieved 1 January 2016.\n- \u2191 \"Python 3.5.1 Release and Changelog\". python.org. Archived from the original on 14 May 2020. Retrieved 1 January 2016.\n- \u2191 \"What's New in Python 3.8\". Archived from the original on 8 June 2020. Retrieved 14 October 2019.\n- \u2191 van Rossum, Guido; Hettinger, Raymond (7 February 2003). \"PEP 308 \u2013 Conditional Expressions\". Python Enhancement Proposals. Python Software Foundation. Archived from the original on 13 March 2016. Retrieved 13 July 2011.\n- \u2191 \"4. Built-in Types \u2013 Python 3.6.3rc1 documentation\". python.org. Archived from the original on 14 June 2020. Retrieved 1 October 2017.\n- \u2191 \"5.3. Tuples and Sequences \u2013 Python 3.7.1rc2 documentation\". python.org. Archived from the original on 10 June 2020. Retrieved 17 October 2018.\n- 1 2 \"PEP 498 \u2013 Literal String Interpolation\". python.org. Archived from the original on 15 June 2020. Retrieved 8 March 2017.\n- \u2191 \"The Python Language Reference, section 3.3. New-style and classic classes, for release 2.7.1\". Archived from the original on 26 October 2012. Retrieved 12 January 2011.\n- \u2191 \"PEP 484 \u2013 Type Hints | peps.python.org\". peps.python.org. Archived from the original on 27 November 2023. Retrieved 29 November 2023.\n- \u2191 \"typing \u2014 Support for type hints\". Python documentation. Python Software Foundation. Archived from the original on 21 February 2020. Retrieved 22 December 2023.\n- \u2191 \"mypy \u2013 Optional Static Typing for Python\". Archived from the original on 6 June 2020. Retrieved 28 January 2017.\n- \u2191 \"Introduction\". mypyc.readthedocs.io. Archived from the original on 22 December 2023. Retrieved 22 December 2023.\n- \u2191 \"on what systems does Python not use IEEE-754 double precision floats\". Stack Overflow. Retrieved 7 June 2026.\n- \u2191 \"ArrowNotImplementedError: halffloat error on applying pandas.to_feather on a dataframe\". Stack Overflow. Retrieved 8 June 2026.\n- \u2191 \"Exotic Floating Point Formats \u2014 bitstring 4.3 documentation\". bitstring.readthedocs.io. Retrieved 8 June 2026.\n- \u2191 Zadka, Moshe; van Rossum, Guido (11 March 2001). \"PEP 237 \u2013 Unifying Long Integers and Integers\". Python Enhancement Proposals. Python Software Foundation. Archived from the original on 28 May 2020. Retrieved 24 September 2011.\n- \u2191 \"Built-in Types\". Archived from the original on 14 June 2020. Retrieved 3 October 2019.\n- \u2191 \"PEP 465 \u2013 A dedicated infix operator for matrix multiplication\". python.org. Archived from the original on 29 May 2020. Retrieved 3 July 2018.\n- 1 2 Zadka, Moshe; van Rossum, Guido (11 March 2001). \"PEP 238 \u2013 Changing the Division Operator\". Python Enhancement Proposals. Python Software Foundation. Archived from the original on 28 May 2020. Retrieved 23 October 2013.\n- \u2191 \"Why Python's Integer Division Floors\". 24 August 2010. Archived from the original on 5 June 2020. Retrieved 25 August 2010.\n- \u2191 \"round\". The Python standard library, release 3.2, \u00a72: Built-in functions. Archived from the original on 25 October 2012. Retrieved 14 August 2011.\n- \u2191 \"round\". The Python standard library, release 2.7, \u00a72: Built-in functions. Archived from the original on 27 October 2012. Retrieved 14 August 2011.\n- \u2191 Beazley, David M. (2009). Python Essential Reference (4th ed.). Addison-Wesley Professional. p. 66. ISBN 978-0-672-32978-4.\n- \u2191 Kernighan, Brian W.; Ritchie, Dennis M. (1988). The C Programming Language (2nd ed.). p. 206.\n- 1 2 Batista, Facundo (17 October 2003). \"PEP 327 \u2013 Decimal Data Type\". Python Enhancement Proposals. Python Software Foundation. Archived from the original on 4 June 2020. Retrieved 24 November 2008.\n- \u2191 \"What's New in Python 2.6\". Python v2.6.9 documentation. 29 October 2013. Archived from the original on 23 December 2019. Retrieved 26 September 2015.\n- \u2191 \"10 Reasons Python Rocks for Research (And a Few Reasons it Doesn't) \u2013 Hoyt Koepke\". University of Washington Department of Statistics. Archived from the original on 31 May 2020. Retrieved 3 February 2019.\n- \u2191 Shell, Scott (17 June 2014). \"An introduction to Python for scientific computing\" (PDF). Archived (PDF) from the original on 4 February 2019. Retrieved 3 February 2019.\n- \u2191 Piotrowski, Przemyslaw (July 2006). \"Build a Rapid Web Development Environment for Python Server Pages and Oracle\". Oracle Technology Network. Oracle. Archived from the original on 2 April 2019. Retrieved 12 March 2012.\n- \u2191 Eby, Phillip J. (7 December 2003). \"PEP 333 \u2013 Python Web Server Gateway Interface v1.0\". Python Enhancement Proposals. Python Software Foundation. Archived from the original on 14 June 2020. Retrieved 19 February 2012.\n- \u2191 \"PyPI\". PyPI. 1 October 2026. Archived from the original on 22 February 2025.\n- \u2191 \"Glossary: interactive\". Python documentation. v3.13.7. Retrieved 31 August 2025.\n- 1 2 \"IDLE \u2014 Python editor and shell\". Python documentation. v3.13.7. Retrieved 31 August 2025.\nIDLE is Python's Integrated Development and Learning Environment.\n- \u2191 \"IPython Documentation\". v9.5.0. 29 August 2025. Archived from the original on 31 August 2025. Retrieved 31 August 2025.\n- \u2191 \"Python in Visual Studio Code\". code.visualstudio.com. Retrieved 1 December 2025.\n- \u2191 \"Project Jupyter\". Jupyter.org. Archived from the original on 12 October 2023. Retrieved 2 April 2025.\n- \u2191 Harper, Doug (Spring 2024). \"Enthought Canopy\". WKU Physics 316. Western Kentucky University. Archived from the original on 18 August 2024. Retrieved 31 August 2025.\n- \u2191 \"Enthought Canopy\". Enthought. Archived from the original on 15 July 2017. Retrieved 20 August 2016.\n- \u2191 \"PEP 7 \u2013 Style Guide for C Code | peps.python.org\". peps.python.org. Archived from the original on 24 April 2022. Retrieved 28 April 2022.\n- \u2191 \"4. Building C and C++ Extensions \u2013 Python 3.9.2 documentation\". docs.python.org. Archived from the original on 3 March 2021. Retrieved 1 March 2021.\n- \u2191 van Rossum, Guido (5 June 2001). \"PEP 7 \u2013 Style Guide for C Code\". Python Enhancement Proposals. Python Software Foundation. Archived from the original on 1 June 2020. Retrieved 24 November 2008.\n- \u2191 \"CPython byte code\". Docs.python.org. Archived from the original on 5 June 2020. Retrieved 16 February 2016.\n- \u2191 \"Python 2.5 internals\" (PDF). Archived (PDF) from the original on 6 August 2012. Retrieved 19 April 2011.\n- \u2191 \"Changelog \u2013 Python 3.9.0 documentation\". docs.python.org. Archived from the original on 7 February 2021. Retrieved 8 February 2021.\n- \u2191 \"Download Python\". Python.org. Archived from the original on 8 December 2020. Retrieved 13 December 2020.\n- \u2191 \"VMS Python compatibility issues - VSI OpenVMS Wiki\". wiki.vmssoftware.com. Retrieved 8 June 2026.\n- \u2191 \"Python and Python Wheels for OpenVMS \u2014 VMS Software, Inc\". docs.vmssoftware.com. Retrieved 8 June 2026.\n- \u2191 \"history [vmspython]\". www.vmspython.org. Archived from the original on 2 December 2020. Retrieved 4 December 2020.\n- \u2191 \"An Interview with Guido van Rossum\". Oreilly.com. Archived from the original on 16 July 2014. Retrieved 24 November 2008.\n- \u2191 \"What's new in Python 3.14\". Python documentation. Retrieved 1 October 2026.\n- 1 2 3 Pereira, Rui; Couto, Marco; Ribeiro, Francisco; Rua, Rui; Cunha, J\u00e1come; Fernandes, Jo\u00e3o Paulo; Saraiva, Jo\u00e3o (23 October 2017). \"Energy efficiency across programming languages: How do energy, time, and memory relate?\". Proceedings of the 10th ACM SIGPLAN International Conference on Software Language Engineering. SLE 2017. New York, NY, USA: Association for Computing Machinery. pp. 256\u2013267. doi:10.1145/3136014.3136031. ISBN 978-1-4503-5525-4.\n- \u2191 \"What PyInstaller Does and How It Does It\".\n- \u2191 \"PyPy compatibility\". Pypy.org. Archived from the original on 6 June 2020. Retrieved 3 December 2012.\n- \u2191 Team, The PyPy (28 December 2019). \"Download and Install\". PyPy. Archived from the original on 8 January 2022. Retrieved 8 January 2022.\n- \u2191 \"speed comparison between CPython and Pypy\". Speed.pypy.org. Archived from the original on 10 May 2021. Retrieved 3 December 2012.\n- \u2191 \"exaloop/codon\". Exaloop. 1 October 2026. Retrieved 1 October 2026.\n- \u2191 \"Codon: Differences with Python\". Archived from the original on 25 May 2023. Retrieved 28 August 2023.\n- \u2191 Lawson, Loraine (14 March 2023). \"MIT-Created Compiler Speeds up Python Code\". The New Stack. Archived from the original on 6 April 2023. Retrieved 28 August 2023.\n- \u2191 \"Python-for-EV3\". LEGO Education. Archived from the original on 7 June 2020. Retrieved 17 April 2019.\n- \u2191 Yegulalp, Serdar (29 October 2020). \"Pyston returns from the dead to speed Python\". InfoWorld. Archived from the original on 27 January 2021. Retrieved 26 January 2021.\n- \u2191 \"cinder: Instagram's performance-oriented fork of CPython\". GitHub. Archived from the original on 4 May 2021. Retrieved 4 May 2021.\n- \u2191 Aroca, Rafael (7 August 2021). \"Snek Lang: feels like Python on Arduinos\". Yet Another Technology Blog. Archived from the original on 5 January 2024. Retrieved 4 January 2024.\n- \u2191 Aufranc (CNXSoft), Jean-Luc (16 January 2020). \"Snekboard Controls LEGO Power Functions with CircuitPython or Snek Programming Languages (Crowdfunding) \u2013 CNX Software\". CNX Software \u2013 Embedded Systems News. Archived from the original on 5 January 2024. Retrieved 4 January 2024.\n- \u2191 Kennedy (@mkennedy), Michael. \"Ready to find out if you're git famous?\". pythonbytes.fm. Archived from the original on 5 January 2024. Retrieved 4 January 2024.\n- \u2191 Packard, Keith (20 December 2022). \"The Snek Programming Language: A Python-inspired Embedded Computing Language\" (PDF). Archived (PDF) from the original on 4 January 2024. Retrieved 4 January 2024.\n- \u2191 \"RustPython/RustPython\". RustPython Dev. 5 May 2026. Retrieved 6 May 2026.\n- \u2191 \"Application-level Stackless features \u2013 PyPy 2.0.2 documentation\". Doc.pypy.org. Archived from the original on 4 June 2020. Retrieved 17 July 2013.\n- \u2191 \"Plans for optimizing Python\". Google Project Hosting. 15 December 2009. Archived from the original on 11 April 2016. Retrieved 24 September 2011.\n- \u2191 \"Python on the Nokia N900\". Stochastic Geometry. 29 April 2010. Archived from the original on 20 June 2019. Retrieved 9 July 2015.\n- \u2191 \"Brython\". brython.info. Archived from the original on 3 August 2018. Retrieved 21 January 2021.\n- \u2191 \"Transcrypt \u2013 Python in the browser\". transcrypt.org. Archived from the original on 19 August 2018. Retrieved 22 December 2020.\n- \u2191 \"Transcrypt: Anatomy of a Python to JavaScript Compiler\". InfoQ. Archived from the original on 5 December 2020. Retrieved 20 January 2021.\n- \u2191 \"Nuitka Home | Nuitka Home\". nuitka.net. Archived from the original on 30 May 2020. Retrieved 18 August 2017.\n- \u2191 Guelton, Serge; Brunet, Pierrick; Amini, Mehdi; Merlini, Adrien; Corbillon, Xavier; Raynaud, Alan (16 March 2015). \"Pythran: enabling static optimization of scientific Python programs\". Computational Science & Discovery. 8 (1) 014001. IOP Publishing. Bibcode:2015CS&D....8a4001G. doi:10.1088/1749-4680/8/1/014001. ISSN 1749-4699.\n- \u2191 \"The Python \u2192 11l \u2192 C++ transpiler\". Archived from the original on 24 September 2022. Retrieved 17 July 2022.\n- \u2191 \"google/grumpy\". 10 April 2020. Archived from the original on 15 April 2020. Retrieved 25 March 2020 \u2013 via GitHub.\n- \u2191 \"Projects\". opensource.google. Archived from the original on 24 April 2020. Retrieved 25 March 2020.\n- \u2191 Francisco, Thomas Claburn in San. \"Google's Grumpy code makes Python Go\". www.theregister.com. Archived from the original on 7 March 2021. Retrieved 20 January 2021.\n- \u2191 \"IronPython.net /\". ironpython.net. Archived from the original on 17 April 2021.\n- \u2191 \"GitHub \u2013 IronLanguages/ironpython3: Implementation of Python 3.x for .NET Framework that is built on top of the Dynamic Language Runtime\". GitHub. Archived from the original on 28 September 2021.\n- \u2191 \"Jython FAQ\". www.jython.org. Archived from the original on 22 April 2021. Retrieved 22 April 2021.\n- \u2191 Murri, Riccardo (2013). Performance of Python runtimes on a non-numeric scientific code. European Conference on Python in Science (EuroSciPy). arXiv:1404.6388. Bibcode:2014arXiv1404.6388M.\n- \u2191 \"The Computer Language Benchmarks Game\". Archived from the original on 14 June 2020. Retrieved 30 April 2020.\n- \u2191 Python, Real. \"Look Ma, No for Loops: Array Programming With NumPy \u2013 Real Python\". realpython.com. Retrieved 15 October 2025.\n- 1 2 Warsaw, Barry; Hylton, Jeremy; Goodger, David (13 June 2000). \"PEP 1 \u2013 PEP Purpose and Guidelines\". Python Enhancement Proposals. Python Software Foundation. Archived from the original on 6 June 2020. Retrieved 19 April 2011.\n- \u2191 Cannon, Brett. \"Guido, Some Guys, and a Mailing List: How Python is Developed\". python.org. Python Software Foundation. Archived from the original on 1 June 2009. Retrieved 27 June 2009.\n- \u2191 Edge, Jake (23 February 2022). \"Moving Python's bugs to GitHub [LWN.net]\". Archived from the original on 2 October 2022. Retrieved 2 October 2022.\n- \u2191 \"Python Developer's Guide \u2013 Python Developer's Guide\". devguide.python.org. Archived from the original on 9 November 2020. Retrieved 17 December 2019.\n- \u2191 Hughes, Owen (24 May 2021). \"Programming languages: Why Python 4.0 might never arrive, according to its creator\". TechRepublic. Archived from the original on 14 July 2022. Retrieved 16 May 2022.\n- \u2191 \"PEP 602 \u2013 Annual Release Cycle for Python\". Python.org. Archived from the original on 14 June 2020. Retrieved 6 November 2019.\n- \u2191 Edge, Jake (23 October 2019). \"Changing the Python release cadence [LWN.net]\". lwn.net. Archived from the original on 6 November 2019. Retrieved 6 November 2019.\n- \u2191 Norwitz, Neal (8 April 2002). \"[Python-Dev] Release Schedules (was Stability & change)\". Archived from the original on 15 December 2018. Retrieved 27 June 2009.\n- 1 2 Aahz; Baxter, Anthony (15 March 2001). \"PEP 6 \u2013 Bug Fix Releases\". Python Enhancement Proposals. Python Software Foundation. Archived from the original on 5 June 2020. Retrieved 27 June 2009.\n- \u2191 \"Python Buildbot\". Python Developer's Guide. Python Software Foundation. Archived from the original on 5 June 2020. Retrieved 24 September 2011.\n- 1 2 \"Whetting Your Appetite\". The Python Tutorial. Python Software Foundation. Archived from the original on 26 October 2012. Retrieved 20 February 2012.\n- \u2191 \"In Python, should I use else after a return in an if block?\". Stack Overflow. Stack Exchange. 17 February 2011. Archived from the original on 20 June 2019. Retrieved 6 May 2011.\n- \u2191 Lutz 2013, p. 17.\n- \u2191 Fehily, Chris (2002). Python. Peachpit Press. p. xv. ISBN 978-0-201-74884-0. Archived from the original on 17 July 2017. Retrieved 9 May 2017.\n- \u2191 Lubanovic, Bill (2014). Introducing Python. Sebastopol, CA : O'Reilly Media. p. 305. ISBN 978-1-4493-5936-2. Retrieved 31 July 2023.\n- \u2191 Esterbrook, Charles. \"Acknowledgements\". cobra-language.com. Cobra Language. Archived from the original on 8 February 2008. Retrieved 7 April 2010.\n- \u2191 \"Proposals: iterators and generators [ES4 Wiki]\". wiki.ecmascript.org. Archived from the original on 20 October 2007. Retrieved 24 November 2008.\n- \u2191 Kincaid, Jason (10 November 2009). \"Google's Go: A New Programming Language That's Python Meets C++\". TechCrunch. Archived from the original on 18 January 2010. Retrieved 29 January 2010.\n- \u2191 \"Fn deprication as a Python superset\". Modular. 16 March 2026. Retrieved 2 October 2026.\n- \u2191 \"Modular Docs \u2013 Why Mojo\". docs.modular.com. Archived from the original on 5 May 2023. Retrieved 5 May 2023.\nMojo as a member of the Python family [..] Embracing Python massively simplifies our design efforts, because most of the syntax is already specified. [..] we decided that the right long-term goal for Mojo is to provide a superset of Python (i.e. be compatible with existing programs) and to embrace the CPython immediately for long-tail ecosystem enablement. To a Python programmer, we expect and hope that Mojo will be immediately familiar, while also providing new tools for developing systems-level code that enable you to do things that Python falls back to C and C++ for.\n- \u2191 Spencer, Michael (4 May 2023). \"What is Mojo Programming Language?\". datasciencelearningcenter.substack.com. Archived from the original on 5 May 2023. Retrieved 5 May 2023.\n- \u2191 \"GDScript\". gdscript.com. Retrieved 24 November 2025.\nSources\n[edit]- \"Python for Artificial Intelligence\". Python Wiki. 19 July 2012. Archived from the original on 1 November 2012. Retrieved 3 December 2012.\n- Paine, Jocelyn, ed. (August 2005). \"AI in Python\". AI Expert Newsletter. Amzi!. Archived from the original on 26 March 2012. Retrieved 11 February 2012.\n- \"PyAIML 0.8.5: Python Package Index\". Pypi.python.org. Retrieved 17 July 2013.\n- Russell, Stuart J. & Norvig, Peter (2009). Artificial Intelligence: A Modern Approach (3rd ed.). Upper Saddle River, NJ: Prentice Hall. ISBN 978-0-13-604259-4.\nFurther reading\n[edit]- Downey, Allen (July 2024). Think Python: How to Think Like a Computer Scientist (3rd ed.). O'Reilly Media. ISBN 978-1-0981-5543-8.\n- Lutz, Mark (2013). Learning Python (5th ed.). O'Reilly Media. ISBN 978-0-596-15806-4.\n- Summerfield, Mark (2009). Programming in Python 3 (2nd ed.). Addison-Wesley Professional. ISBN 978-0-321-68056-3.\n- Ramalho, Luciano (May 2022). Fluent Python. O'Reilly Media. ISBN 978-1-4920-5632-4.\nExternal links\n[edit]- Official website\n- Python documentation\n- The Python Tutorial\n- CultRepo (28 August 2025). The Story of Python and how it took over the world | Python: The Documentary. Retrieved 22 July 2026 \u2013 via YouTube.\n- Python (programming language)\n- Programming tools\n- Web frameworks\n- Free software programmed in Python\n- Class-based programming languages\n- Notebook interface\n- Computer science in the Netherlands\n- Concurrent programming languages\n- Cross-platform free software\n- Cross-platform software\n- Dutch inventions\n- Dynamically typed programming languages\n- Educational programming languages\n- High-level programming languages\n- Information technology in the Netherlands\n- Multi-paradigm programming languages\n- Object-oriented programming languages\n- Pattern matching programming languages\n- Programming languages\n- Programming languages created in 1991\n- Scripting languages\n- Text-oriented programming languages\n- Monty Python references"}], "timestamp": "2026-10-09T08:51:09.982085Z", "success": true, "error": null}