Some of its key distinguishing features include:
- very clear, readable syntax
- strong introspection capabilities
- intuitive object orientation
- natural expression of procedural code
- full modularity, supporting hierarchical packages
- exception-based error handling
- very high level dynamic data types
- extensive standard libraries and third party modules for virtually every task
- extensions and modules easily written in C, C++ (or Java for Jython, or .NET languages for IronPython)
- embeddable within applications as a scripting interface
Python is powerful... and fast
Fans of Python use the phrase "batteries included" to describe the standard library, which covers everything from asynchronous processing to zip files. The language itself is a flexible powerhouse that can handle practically any problem domain. Build your own web server in three lines of code. Build flexible data-driven code using Python's powerful and dynamic introspection capabilities and advanced language features such as meta-classes, duck typing and decorators.
Python lets you write the code you need, quickly. And, thanks to a highly optimized byte compiler and support libraries, Python code runs more than fast enough for most applications. The traditional implementation of CPython uses a bytecode virtual machine; PyPy supports just-in-time (JIT) compilation to machine code. Also, Jython and IronPython (see below) support JIT compilation on their respective virtual machine implementations.
Python plays well with others
Python can integrate with COM, .NET, and CORBA objects.
For Java libraries, use Jython, an implementation of Python for the Java Virtual Machine.
For .NET, try IronPython , Microsoft's new implementation of Python for .NET, or Python for .NET.
Python is also supported for the Internet Communications Engine (ICE) and many other integration technologies.
If you find something that Python cannot do, or if you need the performance advantage of low-level code, you can write extension modules in C or C++, or wrap existing code with SWIG or Boost.Python. Wrapped modules appear to your program exactly like native Python code. That's language integration made easy. You can also go the opposite route and embed Python in your own application, providing your users with a language they'll enjoy using.
Python runs everywhere
Python is available for all major operating systems: Windows, Linux/Unix, OS/2, Mac, Amiga, among others. There are even versions that run on .NET and the Java virtual machine. You'll be pleased to know that the same source code will run unchanged across all implementations.
Your favorite system isn't listed here? It may still support Python if there's a C compiler for it. Ask around on news:comp.lang.python - or just try compiling Python yourself.
Python is friendly... and easy to learn
The Python newsgroup is known as one of the friendliest around. The avid developer and user community maintains a wiki, hosts international and local conferences, runs development sprints, and contributes to online code repositories.
Python also comes with complete documentation, both integrated into the language and as separate web pages. Online tutorials target both the seasoned programmer and the newcomer. All are designed to make you productive quickly. The availability of first-rate books completes the learning package.
Python is Open
The Python implementation is under an open source license that makes it freely usable and distributable, even for commercial use. The Python license is administered by the Python Software Foundation.
Take a look at application domains where Python is used, or try the current download for yourself.
The Python 3.8 series is the newest major release of the Python programming language, and it contains many new features and optimizations.
Major new features of the 3.8 series, compared to 3.7
- PEP 572, Assignment expressions
- PEP 570, Positional-only arguments
- PEP 587, Python Initialization Configuration (improved embedding)
- PEP 590, Vectorcall: a fast calling protocol for CPython
- PEP 578, Runtime audit hooks
- PEP 574, Pickle protocol 5 with out-of-band data
- Typing-related: PEP 591 (Final qualifier), PEP 586 (Literal types), and PEP 589 (TypedDict)
- Parallel filesystem cache for compiled bytecode
- Debug builds share ABI as release builds
- f-strings support a handy = specifier for debugging
- continue is now legal in finally: blocks
- on Windows, the default asyncio event loop is now ProactorEventLoop
- on macOS, the spawn start method is now used by default in multiprocessing
- multiprocessing can now use shared memory segments to avoid pickling costs between processes
- typed_ast is merged back to CPython
- LOAD_GLOBAL is now 40% faster
- pickle now uses Protocol 4 by default, improving performance
- There are many other interesting changes, please consult the "What's New" page in the documentation for a full list.
- More resources
- Online Documentation
- PEP 569, 3.8 Release Schedule
- Report bugs at https://bugs.python.org.
- Help fund Python and its community.
- The binaries for AMD64 will also work on processors that implement the Intel 64 architecture. (Also known as the "x64" architecture, and formerly known as both "EM64T" and "x86-64".)
- There are now "web-based" installers for Windows platforms; the installer will download the needed software components at installation time.
- There are redistributable zip files containing the Windows builds, making it easy to redistribute Python as part of another software package. Please see the documentation regarding Embedded Distribution for more information.
- For Python 3.8, we provide one installer: 64-bit-only that works on macOS 10.9 (Mavericks) and later systems.
Please read the "Important Information" displayed during installation for information about SSL/TLS certificate validation and the running the "Install Certificates.command".
And now for something completely different
Cut to film of the lost world. Tropical South American vegetation. Our four explorers from Jungle Restaurant and Ken Russell's Gardening Club sketches limp along exhaustedly.
- Second Explorer: My God, Betty, we're done for...
- Third Explorer: We'll never get out of here... we're completely lost, lost. Even the natives have gone.
- First Explorer: Goodbye Betty, Goodbye Farquarson. Goodbye Brian. It's been a great expedition...
- Third Explorer: All that'll be left of us will be a map, a compass and a few feet of film, recording our last moments...
- First Explorer: Wait a moment!
- Fourth Explorer: What is it?
- First Explorer: If we're on film, there must be someone filming us.
- Second Explorer: My God, Betty, you're right!
They all look around, then gradually all notice the camera. They break out in smiles of relief, come towards the camera and greet the camera crew.
- Third Explorer: Look! Great to see you!
- First Explorer: What a stroke of luck!
- Camera Crew: Hello! ...
- First Explorer: Wait a minute!
- Fourth Explorer: What is it again?
- First Explorer: If this is the crew who were filming us . .. who's filming us now? Look!