Python Documentation contents
- Whats New in Python
- Whats new in Python 3.14
- Summary Release highlights
- New features
- PEP 649 & PEP 749: Deferred evaluation of annotations
- PEP 734: Multiple interpreters in the standard library
- PEP 750: Template string literals
- PEP 768: Safe external debugger interface
- A new type of interpreter
- Free-threaded mode improvements
- Improved error messages
- PEP 784: Zstandard support in the standard library
- Asyncio introspection capabilities
- Concurrent safe warnings control
- Other language changes
- New modules
- Improved modules
- argparse
- ast
- asyncio
- calendar
- concurrent.futures
- configparser
- contextvars
- ctypes
- curses
- datetime
- decimal
- difflib
- dis
- errno
- faulthandler
- fnmatch
- fractions
- functools
- getopt
- getpass
- graphlib
- heapq
- hmac
- http
- imaplib
- inspect
- io
- json
- linecache
- logging.handlers
- math
- mimetypes
- multiprocessing
- operator
- os
- os.path
- pathlib
- pdb
- pickle
- platform
- pydoc
- re
- socket
- ssl
- struct
- symtable
- sys
- sys.monitoring
- sysconfig
- tarfile
- threading
- tkinter
- turtle
- types
- typing
- unicodedata
- unittest
- urllib
- uuid
- webbrowser
- zipfile
- Optimizations
- Removed
- Deprecated
- CPython bytecode changes
- C API changes
- Build changes
- Porting to Python 3.14
- Notable changes in 3.14.1
- Notable changes in 3.14.5
- Whats New In Python 3.13
- Summary Release Highlights
- New Features
- Other Language Changes
- New Modules
- Improved Modules
- argparse
- array
- ast
- asyncio
- base64
- compileall
- concurrent.futures
- configparser
- copy
- ctypes
- dbm
- dis
- doctest
- enum
- fractions
- glob
- importlib
- io
- ipaddress
- itertools
- marshal
- math
- mimetypes
- mmap
- multiprocessing
- os
- os.path
- pathlib
- pdb
- queue
- random
- re
- shutil
- site
- sqlite3
- ssl
- statistics
- subprocess
- sys
- tempfile
- time
- tkinter
- traceback
- types
- typing
- unicodedata
- venv
- warnings
- xml
- zipimport
- Optimizations
- Removed Modules And APIs
- New Deprecations
- CPython Bytecode Changes
- C API Changes
- Build Changes
- Porting to Python 3.13
- Regression Test Changes
- Whats New In Python 3.12
- Whats New In Python 3.11
- Summary Release highlights
- New Features
- New Features Related to Type Hints
- Other Language Changes
- Other CPython Implementation Changes
- New Modules
- Improved Modules
- Optimizations
- Faster CPython
- CPython bytecode changes
- Deprecated
- Pending Removal in Python 3.12
- Removed
- Porting to Python 3.11
- Build Changes
- C API Changes
- Notable changes in 3.11.4
- Notable changes in 3.11.5
- Whats New In Python 3.10
- Summary Release highlights
- New Features
- New Features Related to Type Hints
- Other Language Changes
- New Modules
- Improved Modules
- asyncio
- argparse
- array
- asynchat, asyncore, smtpd
- base64
- bdb
- bisect
- codecs
- collections.abc
- contextlib
- curses
- dataclasses
- distutils
- doctest
- encodings
- enum
- fileinput
- faulthandler
- gc
- glob
- hashlib
- hmac
- IDLE and idlelib
- importlib.metadata
- inspect
- itertools
- linecache
- os
- os.path
- pathlib
- platform
- pprint
- py_compile
- pyclbr
- shelve
- statistics
- site
- socket
- ssl
- sqlite3
- sys
- _thread
- threading
- traceback
- types
- typing
- unittest
- urllib.parse
- xml
- zipimport
- Optimizations
- Deprecated
- Removed
- Porting to Python 3.10
- CPython bytecode changes
- Build Changes
- C API Changes
- Notable security feature in 3.10.7
- Notable security feature in 3.10.8
- Notable changes in 3.10.12
- Whats New In Python 3.9
- Summary Release highlights
- You should check for DeprecationWarning in your code
- New Features
- Other Language Changes
- New Modules
- Improved Modules
- Optimizations
- Deprecated
- Removed
- Porting to Python 3.9
- Build Changes
- C API Changes
- Notable changes in Python 3.9.1
- Notable changes in Python 3.9.2
- Notable changes in Python 3.9.3
- Notable changes in Python 3.9.5
- Notable security feature in 3.9.14
- Notable changes in 3.9.17
- Whats New In Python 3.8
- Summary Release highlights
- New Features
- Assignment expressions
- Positional-only parameters
- Parallel filesystem cache for compiled bytecode files
- Debug build uses the same ABI as release build
- f-strings support
=for self-documenting expressions and debugging - PEP 578: Python Runtime Audit Hooks
- PEP 587: Python Initialization Configuration
- PEP 590: Vectorcall: a fast calling protocol for CPython
- Pickle protocol 5 with out-of-band data buffers
- Other Language Changes
- New Modules
- Improved Modules
- ast
- asyncio
- builtins
- collections
- cProfile
- csv
- curses
- ctypes
- datetime
- functools
- gc
- gettext
- gzip
- IDLE and idlelib
- inspect
- io
- itertools
- json.tool
- logging
- math
- mmap
- multiprocessing
- os
- os.path
- pathlib
- pickle
- plistlib
- pprint
- py_compile
- shlex
- shutil
- socket
- ssl
- statistics
- sys
- tarfile
- threading
- tokenize
- tkinter
- time
- typing
- unicodedata
- unittest
- venv
- weakref
- xml
- xmlrpc
- Optimizations
- Build and C API Changes
- Deprecated
- API and Feature Removals
- Porting to Python 3.8
- Notable changes in Python 3.8.1
- Notable changes in Python 3.8.2
- Notable changes in Python 3.8.3
- Notable changes in Python 3.8.8
- Notable changes in Python 3.8.9
- Notable changes in Python 3.8.10
- Notable changes in Python 3.8.10
- Notable changes in Python 3.8.12
- Notable security feature in 3.8.14
- Notable changes in 3.8.17
- Whats New In Python 3.7
- Summary Release Highlights
- New Features
- PEP 563: Postponed Evaluation of Annotations
- PEP 538: Legacy C Locale Coercion
- PEP 540: Forced UTF-8 Runtime Mode
- PEP 553: Built-in
breakpoint() - PEP 539: New C API for Thread-Local Storage
- PEP 562: Customization of Access to Module Attributes
- PEP 564: New Time Functions With Nanosecond Resolution
- PEP 565: Show DeprecationWarning in
__main__ - PEP 560: Core Support for
typingmodule and Generic Types - PEP 552: Hash-based .pyc Files
- PEP 545: Python Documentation Translations
- Python Development Mode (-X dev)
- Other Language Changes
- New Modules
- Improved Modules
- argparse
- asyncio
- binascii
- calendar
- collections
- compileall
- concurrent.futures
- contextlib
- cProfile
- crypt
- datetime
- dbm
- decimal
- dis
- distutils
- enum
- functools
- gc
- hmac
- http.client
- http.server
- idlelib and IDLE
- importlib
- io
- ipaddress
- itertools
- locale
- logging
- math
- mimetypes
- msilib
- multiprocessing
- os
- pathlib
- pdb
- py_compile
- pydoc
- queue
- re
- signal
- socket
- socketserver
- sqlite3
- ssl
- string
- subprocess
- sys
- time
- tkinter
- tracemalloc
- types
- unicodedata
- unittest
- unittest.mock
- urllib.parse
- uu
- uuid
- warnings
- xml
- xml.etree
- xmlrpc.server
- zipapp
- zipfile
- C API Changes
- Build Changes
- Optimizations
- Other CPython Implementation Changes
- Deprecated Python Behavior
- Deprecated Python modules, functions and methods
- Deprecated functions and types of the C API
- Platform Support Removals
- API and Feature Removals
- Module Removals
- Windows-only Changes
- Porting to Python 3.7
- Notable changes in Python 3.7.1
- Notable changes in Python 3.7.2
- Notable changes in Python 3.7.6
- Notable changes in Python 3.7.10
- Notable changes in Python 3.7.11
- Notable security feature in 3.7.14
- Whats New In Python 3.6
- Summary Release highlights
- New Features
- PEP 498: Formatted string literals
- PEP 526: Syntax for variable annotations
- PEP 515: Underscores in Numeric Literals
- PEP 525: Asynchronous Generators
- PEP 530: Asynchronous Comprehensions
- PEP 487: Simpler customization of class creation
- PEP 487: Descriptor Protocol Enhancements
- PEP 519: Adding a file system path protocol
- PEP 495: Local Time Disambiguation
- PEP 529: Change Windows filesystem encoding to UTF-8
- PEP 528: Change Windows console encoding to UTF-8
- PEP 520: Preserving Class Attribute Definition Order
- PEP 468: Preserving Keyword Argument Order
- New dict implementation
- PEP 523: Adding a frame evaluation API to CPython
- PYTHONMALLOC environment variable
- DTrace and SystemTap probing support
- Other Language Changes
- New Modules
- Improved Modules
- array
- ast
- asyncio
- binascii
- cmath
- collections
- concurrent.futures
- contextlib
- datetime
- decimal
- distutils
- encodings
- enum
- faulthandler
- fileinput
- hashlib
- http.client
- idlelib and IDLE
- importlib
- inspect
- json
- logging
- math
- multiprocessing
- os
- pathlib
- pdb
- pickle
- pickletools
- pydoc
- random
- re
- readline
- rlcompleter
- shlex
- site
- sqlite3
- socket
- socketserver
- ssl
- statistics
- struct
- subprocess
- sys
- telnetlib
- time
- timeit
- tkinter
- traceback
- tracemalloc
- typing
- unicodedata
- unittest.mock
- urllib.request
- urllib.robotparser
- venv
- warnings
- winreg
- winsound
- xmlrpc.client
- zipfile
- zlib
- Optimizations
- Build and C API Changes
- Other Improvements
- Deprecated
- Removed
- Porting to Python 3.6
- Notable changes in Python 3.6.2
- Notable changes in Python 3.6.4
- Notable changes in Python 3.6.5
- Notable changes in Python 3.6.7
- Notable changes in Python 3.6.10
- Notable changes in Python 3.6.13
- Notable changes in Python 3.6.14
- Whats New In Python 3.5
- Summary Release highlights
- New Features
- PEP 492 - Coroutines with async and await syntax
- PEP 465 - A dedicated infix operator for matrix multiplication
- PEP 448 - Additional Unpacking Generalizations
- PEP 461 - percent formatting support for bytes and bytearray
- PEP 484 - Type Hints
- PEP 471 - os.scandir() function a better and faster directory iterator
- PEP 475: Retry system calls failing with EINTR
- PEP 479: Change StopIteration handling inside generators
- PEP 485: A function for testing approximate equality
- PEP 486: Make the Python Launcher aware of virtual environments
- PEP 488: Elimination of PYO files
- PEP 489: Multi-phase extension module initialization
- Other Language Changes
- New Modules
- Improved Modules
- argparse
- asyncio
- bz2
- cgi
- cmath
- code
- collections
- collections.abc
- compileall
- concurrent.futures
- configparser
- contextlib
- csv
- curses
- dbm
- difflib
- distutils
- doctest
- enum
- faulthandler
- functools
- glob
- gzip
- heapq
- http
- http.client
- idlelib and IDLE
- imaplib
- imghdr
- importlib
- inspect
- io
- ipaddress
- json
- linecache
- locale
- logging
- lzma
- math
- multiprocessing
- operator
- os
- pathlib
- pickle
- poplib
- re
- readline
- selectors
- shutil
- signal
- smtpd
- smtplib
- sndhdr
- socket
- ssl
- sqlite3
- subprocess
- sys
- sysconfig
- tarfile
- threading
- time
- timeit
- tkinter
- traceback
- types
- unicodedata
- unittest
- unittest.mock
- urllib
- wsgiref
- xmlrpc
- xml.sax
- zipfile
- Other module-level changes
- Optimizations
- Build and C API Changes
- Deprecated
- Removed
- Porting to Python 3.5
- Notable changes in Python 3.5.4
- Whats New In Python 3.4
- Summary Release Highlights
- New Features
- New Modules
- Improved Modules
- abc
- aifc
- argparse
- audioop
- base64
- collections
- colorsys
- contextlib
- dbm
- dis
- doctest
- filecmp
- functools
- gc
- glob
- hashlib
- hmac
- html
- http
- idlelib and IDLE
- importlib
- inspect
- ipaddress
- logging
- marshal
- mmap
- multiprocessing
- operator
- os
- pdb
- pickle
- plistlib
- poplib
- pprint
- pty
- pydoc
- re
- resource
- select
- shelve
- shutil
- smtpd
- smtplib
- socket
- sqlite3
- ssl
- stat
- struct
- subprocess
- sunau
- sys
- tarfile
- textwrap
- threading
- traceback
- types
- urllib
- unittest
- venv
- wave
- weakref
- xml.etree
- zipfile
- CPython Implementation Changes
- Deprecated
- Removed
- Porting to Python 3.4
- Changed in 3.4.3
- Whats New In Python 3.3
- Summary Release highlights
- PEP 405: Virtual Environments
- PEP 420: Implicit Namespace Packages
- PEP 3118: New memoryview implementation and buffer protocol documentation
- PEP 393: Flexible String Representation
- PEP 397: Python Launcher for Windows
- PEP 3151: Reworking the OS and IO exception hierarchy
- PEP 380: Syntax for Delegating to a Subgenerator
- PEP 409: Suppressing exception context
- PEP 414: Explicit Unicode literals
- PEP 3155: Qualified name for classes and functions
- PEP 412: Key-Sharing Dictionary
- PEP 362: Function Signature Object
- PEP 421: Adding sys.implementation
- Using importlib as the Implementation of Import
- Other Language Changes
- A Finer-Grained Import Lock
- Builtin functions and types
- New Modules
- Improved Modules
- abc
- array
- base64
- binascii
- bz2
- codecs
- collections
- contextlib
- crypt
- curses
- datetime
- decimal
- ftplib
- functools
- gc
- hmac
- http
- html
- imaplib
- inspect
- io
- itertools
- logging
- math
- mmap
- multiprocessing
- nntplib
- os
- pdb
- pickle
- pydoc
- re
- sched
- select
- shlex
- shutil
- signal
- smtpd
- smtplib
- socket
- socketserver
- sqlite3
- ssl
- stat
- struct
- subprocess
- sys
- tarfile
- tempfile
- textwrap
- threading
- time
- types
- unittest
- urllib
- webbrowser
- xml.etree.ElementTree
- zlib
- Optimizations
- Build and C API Changes
- Deprecated
- Porting to Python 3.3
- Whats New In Python 3.2
- PEP 384: Defining a Stable ABI
- PEP 389: Argparse Command Line Parsing Module
- PEP 391: Dictionary Based Configuration for Logging
- PEP 3148: The
concurrent.futuresmodule - PEP 3147: PYC Repository Directories
- PEP 3149: ABI Version Tagged .so Files
- PEP 3333: Python Web Server Gateway Interface v1.0.1
- Other Language Changes
- New, Improved, and Deprecated Modules
- elementtree
- functools
- itertools
- collections
- threading
- datetime and time
- math
- abc
- io
- reprlib
- logging
- csv
- contextlib
- decimal and fractions
- ftp
- popen
- select
- gzip and zipfile
- tarfile
- hashlib
- ast
- os
- shutil
- sqlite3
- html
- socket
- ssl
- nntp
- certificates
- imaplib
- http.client
- unittest
- random
- poplib
- asyncore
- tempfile
- inspect
- pydoc
- dis
- dbm
- ctypes
- site
- sysconfig
- pdb
- configparser
- urllib.parse
- mailbox
- turtledemo
- Multi-threading
- Optimizations
- Unicode
- Codecs
- Documentation
- IDLE
- Code Repository
- Build and C API Changes
- Porting to Python 3.2
- Whats New In Python 3.1
- Whats New In Python 3.0
- Whats New in Python 2.7
- The Future for Python 2.x
- Changes to the Handling of Deprecation Warnings
- Python 3.1 Features
- PEP 372: Adding an Ordered Dictionary to collections
- PEP 378: Format Specifier for Thousands Separator
- PEP 389: The argparse Module for Parsing Command Lines
- PEP 391: Dictionary-Based Configuration For Logging
- PEP 3106: Dictionary Views
- PEP 3137: The memoryview Object
- Other Language Changes
- New and Improved Modules
- Build and C API Changes
- Other Changes and Fixes
- Porting to Python 2.7
- New Features Added to Python 2.7 Maintenance Releases
- Two new environment variables for debug mode
- PEP 434: IDLE Enhancement Exception for All Branches
- PEP 466: Network Security Enhancements for Python 2.7
- PEP 477: Backport ensurepip (PEP 453) to Python 2.7
- PEP 476: Enabling certificate verification by default for stdlib http clients
- PEP 493: HTTPS verification migration tools for Python 2.7
- New
make regen-allbuild target - Removal of
make touchbuild target
- Acknowledgements
- Whats New in Python 2.6
- Python 3.0
- Changes to the Development Process
- PEP 343: The with statement
- PEP 366: Explicit Relative Imports From a Main Module
- PEP 370: Per-user
site-packagesDirectory - PEP 371: The
multiprocessingPackage - PEP 3101: Advanced String Formatting
- PEP 3105:
printAs a Function - PEP 3110: Exception-Handling Changes
- PEP 3112: Byte Literals
- PEP 3116: New I/O Library
- PEP 3118: Revised Buffer Protocol
- PEP 3119: Abstract Base Classes
- PEP 3127: Integer Literal Support and Syntax
- PEP 3129: Class Decorators
- PEP 3141: A Type Hierarchy for Numbers
- Other Language Changes
- New and Improved Modules
- Deprecations and Removals
- Build and C API Changes
- Porting to Python 2.6
- Acknowledgements
- Whats New in Python 2.5
- PEP 308: Conditional Expressions
- PEP 309: Partial Function Application
- PEP 314: Metadata for Python Software Packages v1.1
- PEP 328: Absolute and Relative Imports
- PEP 338: Executing Modules as Scripts
- PEP 341: Unified try/except/finally
- PEP 342: New Generator Features
- PEP 343: The with statement
- PEP 352: Exceptions as New-Style Classes
- PEP 353: Using ssize_t as the index type
- PEP 357: The __index__ method
- Other Language Changes
- New, Improved, and Removed Modules
- Build and C API Changes
- Porting to Python 2.5
- Acknowledgements
- Whats New in Python 2.4
- PEP 218: Built-In Set Objects
- PEP 237: Unifying Long Integers and Integers
- PEP 289: Generator Expressions
- PEP 292: Simpler String Substitutions
- PEP 318: Decorators for Functions and Methods
- PEP 322: Reverse Iteration
- PEP 324: New subprocess Module
- PEP 327: Decimal Data Type
- PEP 328: Multi-line Imports
- PEP 331: Locale-Independent Float/String Conversions
- Other Language Changes
- New, Improved, and Deprecated Modules
- Build and C API Changes
- Porting to Python 2.4
- Acknowledgements
- Whats New in Python 2.3
- PEP 218: A Standard Set Datatype
- PEP 255: Simple Generators
- PEP 263: Source Code Encodings
- PEP 273: Importing Modules from ZIP Archives
- PEP 277: Unicode file name support for Windows NT
- PEP 278: Universal Newline Support
- PEP 279: enumerate()
- PEP 282: The logging Package
- PEP 285: A Boolean Type
- PEP 293: Codec Error Handling Callbacks
- PEP 301: Package Index and Metadata for Distutils
- PEP 302: New Import Hooks
- PEP 305: Comma-separated Files
- PEP 307: Pickle Enhancements
- Extended Slices
- Other Language Changes
- New, Improved, and Deprecated Modules
- Pymalloc: A Specialized Object Allocator
- Build and C API Changes
- Other Changes and Fixes
- Porting to Python 2.3
- Acknowledgements
- Whats New in Python 2.2
- Introduction
- PEPs 252 and 253: Type and Class Changes
- PEP 234: Iterators
- PEP 255: Simple Generators
- PEP 237: Unifying Long Integers and Integers
- PEP 238: Changing the Division Operator
- Unicode Changes
- PEP 227: Nested Scopes
- New and Improved Modules
- Interpreter Changes and Fixes
- Other Changes and Fixes
- Acknowledgements
- Whats New in Python 2.1
- Introduction
- PEP 227: Nested Scopes
- PEP 236: __future__ Directives
- PEP 207: Rich Comparisons
- PEP 230: Warning Framework
- PEP 229: New Build System
- PEP 205: Weak References
- PEP 232: Function Attributes
- PEP 235: Importing Modules on Case-Insensitive Platforms
- PEP 217: Interactive Display Hook
- PEP 208: New Coercion Model
- PEP 241: Metadata in Python Packages
- New and Improved Modules
- Other Changes and Fixes
- Acknowledgements
- Whats New in Python 2.0
- Introduction
- What About Python 1.6?
- New Development Process
- Unicode
- List Comprehensions
- Augmented Assignment
- String Methods
- Garbage Collection of Cycles
- Other Core Changes
- Porting to 2.0
- Extending/Embedding Changes
- Distutils: Making Modules Easy to Install
- XML Modules
- Module changes
- New modules
- IDLE Improvements
- Deleted and Deprecated Modules
- Acknowledgements
- Changelog
- Python next
- Python 3.14.7 final
- Python 3.14.6 final
- Python 3.14.5 final
- Python 3.14.5 release candidate 1
- Python 3.14.4 final
- Python 3.14.3 final
- Python 3.14.2 final
- Python 3.14.1 final
- Python 3.14.0 final
- Python 3.14.0 release candidate 3
- Python 3.14.0 release candidate 2
- Python 3.14.0 release candidate 1
- Python 3.14.0 beta 4
- Python 3.14.0 beta 3
- Python 3.14.0 beta 2
- Python 3.14.0 beta 1
- Python 3.14.0 alpha 7
- Python 3.14.0 alpha 6
- Python 3.14.0 alpha 5
- Python 3.14.0 alpha 4
- Python 3.14.0 alpha 3
- Python 3.14.0 alpha 2
- Python 3.14.0 alpha 1
- Python 3.13.0 beta 1
- Python 3.13.0 alpha 6
- Python 3.13.0 alpha 5
- Python 3.13.0 alpha 4
- Python 3.13.0 alpha 3
- Python 3.13.0 alpha 2
- Python 3.13.0 alpha 1
- Python 3.12.0 beta 1
- Python 3.12.0 alpha 7
- Python 3.12.0 alpha 6
- Python 3.12.0 alpha 5
- Python 3.12.0 alpha 4
- Python 3.12.0 alpha 3
- Python 3.12.0 alpha 2
- Python 3.12.0 alpha 1
- Security
- Core and Builtins
- Library
- Core and Builtins
- Library
- Core and Builtins
- Library
- Core and Builtins
- Library
- Core and Builtins
- Library
- Core and Builtins
- Library
- Core and Builtins
- Library
- Core and Builtins
- Library
- Core and Builtins
- Library
- Core and Builtins
- Library
- Documentation
- Tests
- Build
- Windows
- macOS
- IDLE
- Tools/Demos
- C API
- Python 3.11.0 beta 1
- Python 3.11.0 alpha 7
- Python 3.11.0 alpha 6
- Python 3.11.0 alpha 5
- Python 3.11.0 alpha 4
- Python 3.11.0 alpha 3
- Python 3.11.0 alpha 2
- Python 3.11.0 alpha 1
- Security
- Core and Builtins
- Library
- Core and Builtins
- Library
- Core and Builtins
- Library
- Core and Builtins
- Library
- Core and Builtins
- Library
- Core and Builtins
- Library
- Core and Builtins
- Library
- Core and Builtins
- Library
- Core and Builtins
- Library
- Core and Builtins
- Library
- Documentation
- Tests
- Build
- Windows
- macOS
- IDLE
- Tools/Demos
- C API
- Python 3.10.0 beta 1
- Python 3.10.0 alpha 7
- Python 3.10.0 alpha 6
- Python 3.10.0 alpha 5
- Python 3.10.0 alpha 4
- Python 3.10.0 alpha 3
- Python 3.10.0 alpha 2
- Python 3.10.0 alpha 1
- Security
- Core and Builtins
- Library
- Core and Builtins
- Library
- Core and Builtins
- Library
- Core and Builtins
- Library
- Core and Builtins
- Library
- Core and Builtins
- Library
- Core and Builtins
- Library
- Core and Builtins
- Library
- Core and Builtins
- Library
- Core and Builtins
- Library
- Core and Builtins
- Library
- Core and Builtins
- Library
- Core and Builtins
- Library
- Core and Builtins
- Library
- Core and Builtins
- Library
- Documentation
- Tests
- Build
- Windows
- macOS
- IDLE
- C API
- Python 3.9.0 beta 1
- Python 3.9.0 alpha 6
- Python 3.9.0 alpha 5
- Python 3.9.0 alpha 4
- Python 3.9.0 alpha 3
- Python 3.9.0 alpha 2
- Python 3.9.0 alpha 1
- Python 3.8.0 beta 1
- Python 3.8.0 alpha 4
- Python 3.8.0 alpha 3
- Python 3.8.0 alpha 2
- Python 3.8.0 alpha 1
- Python 3.7.0 final
- Python 3.7.0 release candidate 1
- Python 3.7.0 beta 5
- Python 3.7.0 beta 4
- Python 3.7.0 beta 3
- Python 3.7.0 beta 2
- Python 3.7.0 beta 1
- Python 3.7.0 alpha 4
- Python 3.7.0 alpha 3
- Python 3.7.0 alpha 2
- Python 3.7.0 alpha 1
- Python 3.6.6 final
- Python 3.6.6 release candidate 1
- Python 3.6.5 final
- Python 3.6.5 release candidate 1
- Python 3.6.4 final
- Python 3.6.4 release candidate 1
- Python 3.6.3 final
- Python 3.6.3 release candidate 1
- Python 3.6.2 final
- Python 3.6.2 release candidate 2
- Python 3.6.2 release candidate 1
- Python 3.6.1 final
- Python 3.6.1 release candidate 1
- Python 3.6.0 final
- Python 3.6.0 release candidate 2
- Python 3.6.0 release candidate 1
- Python 3.6.0 beta 4
- Python 3.6.0 beta 3
- Python 3.6.0 beta 2
- Python 3.6.0 beta 1
- Python 3.6.0 alpha 4
- Python 3.6.0 alpha 3
- Python 3.6.0 alpha 2
- Python 3.6.0 alpha 1
- Python 3.5.5 final
- Python 3.5.5 release candidate 1
- Python 3.5.4 final
- Python 3.5.4 release candidate 1
- Python 3.5.3 final
- Python 3.5.3 release candidate 1
- Python 3.5.2 final
- Python 3.5.2 release candidate 1
- Python 3.5.1 final
- Python 3.5.1 release candidate 1
- Python 3.5.0 final
- Python 3.5.0 release candidate 4
- Python 3.5.0 release candidate 3
- Python 3.5.0 release candidate 2
- Python 3.5.0 release candidate 1
- Python 3.5.0 beta 4
- Python 3.5.0 beta 3
- Python 3.5.0 beta 2
- Python 3.5.0 beta 1
- Python 3.5.0 alpha 4
- Python 3.5.0 alpha 3
- Python 3.5.0 alpha 2
- Python 3.5.0 alpha 1
- Whats new in Python 3.14
- The Python Tutorial
- 1. Whetting Your Appetite
- 2. Using the Python Interpreter
- 3. An Informal Introduction to Python
- 4. More Control Flow Tools
- 4.1.
ifStatements - 4.2.
forStatements - 4.3. The
range()Function - 4.4.
breakandcontinueStatements - 4.5.
elseClauses on Loops - 4.6.
passStatements - 4.7.
matchStatements - 4.8. Defining Functions
- 4.9. More on Defining Functions
- 4.10. Intermezzo: Coding Style
- 4.1.
- 5. Data Structures
- 6. Modules
- 7. Input and Output
- 8. Errors and Exceptions
- 9. Classes
- 10. Brief tour of the standard library
- 10.1. Operating system interface
- 10.2. File wildcards
- 10.3. Command-line arguments
- 10.4. Error output redirection and program termination
- 10.5. String pattern matching
- 10.6. Mathematics
- 10.7. Internet access
- 10.8. Dates and times
- 10.9. Data compression
- 10.10. Performance measurement
- 10.11. Quality control
- 10.12. Batteries included
- 11. Brief tour of the standard library part II
- 12. Virtual Environments and Packages
- 13. What Now?
- 14. Interactive Input Editing and History Substitution
- 15. Floating-Point Arithmetic: Issues and Limitations
- 16. Appendix
- Python Setup and Usage
- 1. Command line and environment
- 2. Using Python on Unix platforms
- 3. Configure Python
- 3.1. Build Requirements
- 3.2. Generated files
- 3.3. Configure Options
- 3.3.1. General Options
- 3.3.2. C compiler options
- 3.3.3. Linker options
- 3.3.4. Options for third-party dependencies
- 3.3.5. WebAssembly Options
- 3.3.6. Install Options
- 3.3.7. Performance options
- 3.3.8. Python Debug Build
- 3.3.9. Debug options
- 3.3.10. Linker options
- 3.3.11. Libraries options
- 3.3.12. Security Options
- 3.3.13. macOS Options
- 3.3.14. iOS Options
- 3.3.15. Cross Compiling Options
- 3.4. Python Build System
- 3.5. Compiler and linker flags
- 4. Using Python on Windows
- 4.1. Python install manager
- 4.1.1. Installation
- 4.1.2. Basic use
- 4.1.3. Command help
- 4.1.4. Listing runtimes
- 4.1.5. Installing runtimes
- 4.1.6. Offline installs
- 4.1.7. Uninstalling runtimes
- 4.1.8. Configuration
- 4.1.9. Shebang lines
- 4.1.10. Advanced installation
- 4.1.11. Administrative configuration
- 4.1.12. Installing free-threaded binaries
- 4.1.13. Index signatures
- 4.1.14. Troubleshooting
- 4.2. The embeddable package
- 4.3. The nuget.org packages
- 4.4. Alternative bundles
- 4.5. Supported Windows versions
- 4.6. Removing the MAX_PATH limitation
- 4.7. UTF-8 mode
- 4.8. Finding modules
- 4.9. Additional modules
- 4.10. Compiling Python on Windows
- 4.11. The full installer (deprecated)
- 4.12. Python launcher for Windows (deprecated)
- 4.1. Python install manager
- 5. Using Python on macOS
- 6. Using Python on Android
- 7. Using Python on iOS
- 8. Editors and IDEs
- The Python Language Reference
- 1. Introduction
- 2. Lexical analysis
- 2.1. Line structure
- 2.2. Other tokens
- 2.3. Names (identifiers and keywords)
- 2.4. Literals
- 2.5. String and Bytes literals
- 2.6. Numeric literals
- 2.7. Operators and delimiters
- 3. Data model
- 3.1. Objects, values and types
- 3.2. The standard type hierarchy
- 3.2.1. None
- 3.2.2. NotImplemented
- 3.2.3. Ellipsis
- 3.2.4.
numbers.Number - 3.2.5. Sequences
- 3.2.6. Set types
- 3.2.7. Mappings
- 3.2.8. Callable types
- 3.2.9. Modules
- 3.2.10. Custom classes
- 3.2.11. Class instances
- 3.2.12. I/O objects (also known as file objects)
- 3.2.13. Internal types
- 3.3. Special method names
- 3.3.1. Basic customization
- 3.3.2. Customizing attribute access
- 3.3.3. Customizing class creation
- 3.3.4. Customizing instance and subclass checks
- 3.3.5. Emulating generic types
- 3.3.6. Emulating callable objects
- 3.3.7. Emulating container types
- 3.3.8. Emulating numeric types
- 3.3.9. With Statement Context Managers
- 3.3.10. Customizing positional arguments in class pattern matching
- 3.3.11. Emulating buffer types
- 3.3.12. Annotations
- 3.3.13. Special method lookup
- 3.4. Coroutines
- 4. Execution model
- 5. The import system
- 6. Expressions
- 6.1. Arithmetic conversions
- 6.2. Atoms
- 6.3. Primaries
- 6.4. Await expression
- 6.5. The power operator
- 6.6. Unary arithmetic and bitwise operations
- 6.7. Binary arithmetic operations
- 6.8. Shifting operations
- 6.9. Binary bitwise operations
- 6.10. Comparisons
- 6.11. Boolean operations
- 6.12. Assignment expressions
- 6.13. Conditional expressions
- 6.14. Lambdas
- 6.15. Expression lists
- 6.16. Evaluation order
- 6.17. Operator precedence
- 7. Simple statements
- 7.1. Expression statements
- 7.2. Assignment statements
- 7.3. The
assertstatement - 7.4. The
passstatement - 7.5. The
delstatement - 7.6. The
returnstatement - 7.7. The
yieldstatement - 7.8. The
raisestatement - 7.9. The
breakstatement - 7.10. The
continuestatement - 7.11. The
importstatement - 7.12. The
globalstatement - 7.13. The
nonlocalstatement - 7.14. The
typestatement
- 8. Compound statements
- 8.1. The
ifstatement - 8.2. The
whilestatement - 8.3. The
forstatement - 8.4. The
trystatement - 8.5. The
withstatement - 8.6. The
matchstatement - 8.7. Function definitions
- 8.8. Class definitions
- 8.9. Coroutines
- 8.10. Type parameter lists
- 8.11. Annotations
- 8.1. The
- 9. Top-level components
- 10. Full Grammar specification
- The Python Standard Library
- Introduction
- Built-in Functions
- Built-in Constants
- Built-in Types
- Truth Value Testing
- Boolean Operations
and,or,not - Comparisons
- Numeric Types
int,float,complex - Boolean Type -
bool - Iterator Types
- Sequence Types
list,tuple,range - Text and Binary Sequence Type Methods Summary
- Text Sequence Type
str - Binary Sequence Types
bytes,bytearray,memoryview - Set Types
set,frozenset - Mapping Types
dict - Context Manager Types
- Type Annotation Types Generic Alias, Union
- Other Built-in Types
- Special Attributes
- Integer string conversion length limitation
- Built-in Exceptions
- Thread Safety Guarantees
- Text Processing Services
stringCommon string operationsstring.templatelibSupport for template string literalsreRegular expression operationsdifflibHelpers for computing deltastextwrapText wrapping and fillingunicodedataUnicode DatabasestringprepInternet String PreparationreadlineGNU readline interfacerlcompleterCompletion function for GNU readline
- Binary Data Services
structInterpret bytes as packed binary datacodecsCodec registry and base classes
- Data Types
datetimeBasic date and time typeszoneinfoIANA time zone supportcalendarGeneral calendar-related functionscollectionsContainer datatypescollections.abcAbstract Base Classes for ContainersheapqHeap queue algorithmbisectArray bisection algorithmarrayEfficient arrays of numeric valuesweakrefWeak referencestypesDynamic type creation and names for built-in typescopyShallow and deep copy operationspprintData pretty printerreprlibAlternaterepr()implementationenumSupport for enumerationsgraphlibFunctionality to operate with graph-like structures
- Numeric and Mathematical Modules
- Functional Programming Modules
- File and Directory Access
pathlibObject-oriented filesystem pathsos.pathCommon pathname manipulationsstatInterpretingstat()resultsfilecmpFile and Directory ComparisonstempfileGenerate temporary files and directoriesglobUnix style pathname pattern expansionfnmatchUnix filename pattern matchinglinecacheRandom access to text linesshutilHigh-level file operations
- Data Persistence
picklePython object serializationcopyregRegisterpicklesupport functionsshelvePython object persistencemarshalInternal Python object serializationdbmInterfaces to Unix databasessqlite3DB-API 2.0 interface for SQLite databases- Tutorial
- Reference
- How-to guides
- How to use placeholders to bind values in SQL queries
- How to adapt custom Python types to SQLite values
- How to convert SQLite values to custom Python types
- Adapter and converter recipes
- How to use connection shortcut methods
- How to use the connection context manager
- How to work with SQLite URIs
- How to create and use row factories
- How to handle non-UTF-8 text encodings
- Explanation
- Data Compression and Archiving
- The
compressionpackage compression.zstdCompression compatible with the Zstandard formatzlibCompression compatible with gzipgzipSupport for gzip filesbz2Support for bzip2 compressionlzmaCompression using the LZMA algorithmzipfileWork with ZIP archivestarfileRead and write tar archive files
- The
- File Formats
- Cryptographic Services
- Generic Operating System Services
osMiscellaneous operating system interfacesioCore tools for working with streamstimeTime access and conversionsloggingLogging facility for Pythonlogging.configLogging configurationlogging.handlersLogging handlersplatformAccess to underlying platforms identifying dataerrnoStandard errno system symbolsctypesA foreign function library for Python- ctypes tutorial
- Loading dynamic link libraries
- Accessing functions from loaded dlls
- Calling functions
- Fundamental data types
- Calling functions, continued
- Calling variadic functions
- Calling functions with your own custom data types
- Specifying the required argument types (function prototypes)
- Return types
- Passing pointers (or: passing parameters by reference)
- Structures and unions
- Structure/union layout, alignment and byte order
- Bit fields in structures and unions
- Arrays
- Pointers
- Thread safety without the GIL
- Type conversions
- Incomplete Types
- Callback functions
- Accessing values exported from dlls
- Surprises
- Variable-sized data types
- ctypes reference
- ctypes tutorial
- Command-line interface libraries
argparseParser for command-line options, arguments and subcommandsoptparseParser for command line options- Choosing an argument parsing library
- Introduction
- Background
- Tutorial
- Reference Guide
- Option Callbacks
- Defining a callback option
- How callbacks are called
- Raising errors in a callback
- Callback example 1: trivial callback
- Callback example 2: check option order
- Callback example 3: check option order (generalized)
- Callback example 4: check arbitrary condition
- Callback example 5: fixed arguments
- Callback example 6: variable arguments
- Extending
optparse - Exceptions
getpassPortable password inputfileinputIterate over lines from multiple input streamscursesTerminal handling for character-cell displayscurses.textpadText input widget for curses programscurses.asciiUtilities for ASCII characterscurses.panelA panel stack extension for cursescmdSupport for line-oriented command interpreters
- Concurrent Execution
threadingThread-based parallelismmultiprocessingProcess-based parallelism- Introduction
- Reference
- Programming guidelines
- Examples
multiprocessing.shared_memoryShared memory for direct access across processes- The
concurrentpackage concurrent.futuresLaunching parallel tasksconcurrent.interpretersMultiple interpreters in the same processsubprocessSubprocess managementschedEvent schedulerqueueA synchronized queue classcontextvarsContext Variables_threadLow-level threading API
- Networking and Interprocess Communication
asyncioAsynchronous I/O- Runners
- Coroutines and tasks
- Streams
- Synchronization Primitives
- Subprocesses
- Queues
- Exceptions
- Call graph introspection
- Command-line introspection tools
- Event loop
- Event loop methods
- Running and stopping the loop
- Scheduling callbacks
- Scheduling delayed callbacks
- Creating futures and tasks
- Opening network connections
- Creating network servers
- Transferring files
- TLS upgrade
- Watching file descriptors
- Working with socket objects directly
- DNS
- Working with pipes
- Unix signals
- Executing code in thread or process pools
- Error handling API
- Enabling debug mode
- Running subprocesses
- Callback handles
- Server objects
- Event loop implementations
- Examples
- Event loop methods
- Futures
- Transports and Protocols
- Policies
- Platform Support
- Extending
- High-level API Index
- Low-level API Index
- Developing with asyncio
- asyncio and free-threaded Python
socketLow-level networking interfacesslTLS/SSL wrapper for socket objectsselectWaiting for I/O completionselectorsHigh-level I/O multiplexingsignalSet handlers for asynchronous eventsmmapMemory-mapped file support
- Internet Data Handling
emailAn email and MIME handling packageemail.message: Representing an email messageemail.parser: Parsing email messagesemail.generator: Generating MIME documentsemail.policy: Policy Objectsemail.errors: Exception and Defect classesemail.headerregistry: Custom Header Objectsemail.contentmanager: Managing MIME Contentemail: Examplesemail.message.Message: Representing an email message using thecompat32APIemail.mime: Creating email and MIME objects from scratchemail.header: Internationalized headersemail.charset: Representing character setsemail.encoders: Encodersemail.utils: Miscellaneous utilitiesemail.iterators: Iterators
jsonJSON encoder and decodermailboxManipulate mailboxes in various formatsmimetypesMap filenames to MIME typesbase64Base16, Base32, Base64, Base85 Data EncodingsbinasciiConvert between binary and ASCIIquopriEncode and decode MIME quoted-printable data
- Structured Markup Processing Tools
htmlHyperText Markup Language supporthtml.parserSimple HTML and XHTML parserhtml.entitiesDefinitions of HTML general entities- XML Processing Modules
xml.etree.ElementTreeThe ElementTree XML APIxml.domThe Document Object Model APIxml.dom.minidomMinimal DOM implementationxml.dom.pulldomSupport for building partial DOM treesxml.saxSupport for SAX2 parsersxml.sax.handlerBase classes for SAX handlersxml.sax.saxutilsSAX Utilitiesxml.sax.xmlreaderInterface for XML parsersxml.parsers.expatFast XML parsing using Expat
- Internet Protocols and Support
webbrowserConvenient web-browser controllerwsgirefWSGI Utilities and Reference ImplementationurllibURL handling modulesurllib.requestExtensible library for opening URLs- Request Objects
- OpenerDirector Objects
- BaseHandler Objects
- HTTPRedirectHandler Objects
- HTTPCookieProcessor Objects
- ProxyHandler Objects
- HTTPPasswordMgr Objects
- HTTPPasswordMgrWithPriorAuth Objects
- AbstractBasicAuthHandler Objects
- HTTPBasicAuthHandler Objects
- ProxyBasicAuthHandler Objects
- AbstractDigestAuthHandler Objects
- HTTPDigestAuthHandler Objects
- ProxyDigestAuthHandler Objects
- HTTPHandler Objects
- HTTPSHandler Objects
- FileHandler Objects
- DataHandler Objects
- FTPHandler Objects
- CacheFTPHandler Objects
- UnknownHandler Objects
- HTTPErrorProcessor Objects
- Examples
- Legacy interface
urllib.requestRestrictions
urllib.responseResponse classes used by urlliburllib.parseParse URLs into componentsurllib.errorException classes raised by urllib.requesturllib.robotparserParser for robots.txthttpHTTP moduleshttp.clientHTTP protocol clientftplibFTP protocol clientpoplibPOP3 protocol clientimaplibIMAP4 protocol clientsmtplibSMTP protocol clientuuidUUID objects according to RFC 9562socketserverA framework for network servershttp.serverHTTP servershttp.cookiesHTTP state managementhttp.cookiejarCookie handling for HTTP clientsxmlrpcXMLRPC server and client modulesxmlrpc.clientXML-RPC client accessxmlrpc.serverBasic XML-RPC serversipaddressIPv4/IPv6 manipulation library
- Multimedia Services
- Internationalization
- Graphical user interfaces with Tk
tkinterPython interface to Tcl/Tktkinter.colorchooserColor choosing dialogtkinter.fontTkinter font wrapper- Tkinter dialogs
tkinter.messageboxTkinter message promptstkinter.scrolledtextScrolled text widgettkinter.dndDrag and drop supporttkinter.ttkTk themed widgets- IDLE Python editor and shell
turtleTurtle graphics- Introduction
- Get started
- Tutorial
- How to
- Turtle graphics reference
- Methods of RawTurtle/Turtle and corresponding functions
- Methods of TurtleScreen/Screen and corresponding functions
- Public classes
- Explanation
- Help and configuration
turtledemoDemo scripts- Changes since Python 2.6
- Changes since Python 3.0
- Development Tools
typingSupport for type hints- Specification for the Python Type System
- Type aliases
- NewType
- Annotating callable objects
- Generics
- Annotating tuples
- The type of class objects
- Annotating generators and coroutines
- User-defined generic types
- The
Anytype - Nominal vs structural subtyping
- Module contents
- Deprecation Timeline of Major Features
pydocDocumentation generator and online help system- Python Development Mode
doctestTest interactive Python examplesunittestUnit testing frameworkunittest.mockmock object libraryunittest.mockgetting started- Using Mock
- Mock patching methods
- Mock for method calls on an object
- Mocking classes
- Naming your mocks
- Tracking all calls
- Setting return values and attributes
- Raising exceptions with mocks
- Side effect functions and iterables
- Mocking asynchronous iterators
- Mocking asynchronous context manager
- Creating a mock from an existing object
- Using side_effect to return per file content
- Patch decorators
- Further examples
- Mocking chained calls
- Partial mocking
- Mocking a generator method
- Applying the same patch to every test method
- Mocking unbound methods
- Checking multiple calls with mock
- Coping with mutable arguments
- Nesting patches
- Mocking a dictionary with MagicMock
- Mock subclasses and their attributes
- Mocking imports with patch.dict
- Tracking order of calls and less verbose call assertions
- More complex argument matching
- Using Mock
testRegression tests package for Pythontest.supportUtilities for the Python test suitetest.support.socket_helperUtilities for socket teststest.support.script_helperUtilities for the Python execution teststest.support.bytecode_helperSupport tools for testing correct bytecode generationtest.support.threading_helperUtilities for threading teststest.support.os_helperUtilities for os teststest.support.import_helperUtilities for import teststest.support.warnings_helperUtilities for warnings tests
- Debugging and Profiling
- Software Packaging and Distribution
- Python Runtime Services
sysSystem-specific parameters and functionssys.monitoringExecution event monitoringsysconfigProvide access to Pythons configuration informationbuiltinsBuilt-in objects__main__Top-level code environmentwarningsWarning controldataclassesData ClassescontextlibUtilities forwith-statement contextsabcAbstract Base ClassesatexitExit handlerstracebackPrint or retrieve a stack traceback__future__Future statement definitionsgcGarbage Collector interfaceinspectInspect live objectsannotationlibFunctionality for introspecting annotationssiteSite-specific configuration hook
- Custom Python Interpreters
- Importing Modules
zipimportImport modules from Zip archivespkgutilPackage extension utilitymodulefinderFind modules used by a scriptrunpyLocating and executing Python modulesimportlibThe implementation ofimportimportlib.resourcesPackage resource reading, opening and accessimportlib.resources.abcAbstract base classes for resourcesimportlib.metadataAccessing package metadata- The initialization of the
sys.pathmodule search path
- Python Language Services
astAbstract syntax treessymtableAccess to the compilers symbol tablestokenConstants used with Python parse treeskeywordTesting for Python keywordstokenizeTokenizer for Python sourcetabnannyDetection of ambiguous indentationpyclbrPython module browser supportpy_compileCompile Python source filescompileallByte-compile Python librariesdisDisassembler for Python bytecodepickletoolsTools for pickle developers
- MS Windows Specific Services
- Unix-specific services
shlexSimple lexical analysisposixThe most common POSIX system callspwdThe password databasegrpThe group databasetermiosPOSIX style tty controlttyTerminal control functionsptyPseudo-terminal utilitiesfcntlThefcntlandioctlsystem callsresourceResource usage informationsyslogUnix syslog library routines
- Modules command-line interface (CLI)
- Superseded Modules
- Removed Modules
- Security Considerations
- Extending and Embedding the Python Interpreter
- Recommended third party tools
- Creating extensions without third party tools
- 1. Extending Python with C or C++
- 1.1. A Simple Example
- 1.2. Intermezzo: Errors and Exceptions
- 1.3. Back to the Example
- 1.4. The Modules Method Table and Initialization Function
- 1.5. Compilation and Linkage
- 1.6. Calling Python Functions from C
- 1.7. Extracting Parameters in Extension Functions
- 1.8. Keyword Parameters for Extension Functions
- 1.9. Building Arbitrary Values
- 1.10. Reference Counts
- 1.11. Writing Extensions in C++
- 1.12. Providing a C API for an Extension Module
- 2. Defining Extension Types: Tutorial
- 3. Defining Extension Types: Assorted Topics
- 4. Building C and C++ Extensions
- 5. Building C and C++ Extensions on Windows
- 1. Extending Python with C or C++
- Embedding the CPython runtime in a larger application
- Python/C API reference manual
- Introduction
- C API Stability
- The Very High Level Layer
- Reference Counting
- Exception Handling
- Defining extension modules
- Utilities
- Operating System Utilities
- System Functions
- Process Control
- Importing Modules
- Data marshalling support
- Parsing arguments and building values
- String conversion and formatting
- Character classification and conversion
- PyHash API
- Reflection
- Codec registry and support functions
- PyTime C API
- Support for Perf Maps
- Abstract Objects Layer
- Concrete Objects Layer
- Fundamental Objects
- Numeric Objects
- Sequence Objects
- Container Objects
- Function Objects
- Other Objects
- File objects
- Module Objects
- Module definitions
- Creating extension modules dynamically
- Support functions
- Iterator Objects
- Descriptor Objects
- Slice Objects
- MemoryView objects
- Pickle buffer objects
- Weak Reference Objects
- Capsules
- Frame objects
- Generator Objects
- Coroutine Objects
- Context Variables Objects
- Objects for Type Hinting
- C API for extension modules
- Interpreter initialization and finalization
- Thread states and the global interpreter lock
- Asynchronous notifications
- Operating system thread APIs
- Synchronization primitives
- Thread-local storage support
- Multiple interpreters in a Python process
- Profiling and tracing
- Reference tracing
- Python Initialization Configuration
- Memory Management
- Object Implementation Support
- Allocating objects on the heap
- Object Life Cycle
- Common Object Structures
- Type Object Structures
- Supporting Cyclic Garbage Collection
- API and ABI Versioning
- Monitoring C API
- Generating Execution Events
- Installing Python modules
- Python HOWTOs
- Python Frequently Asked Questions
- General Python FAQ
- Programming FAQ
- Design and History FAQ
- Why does Python use indentation for grouping of statements?
- Why am I getting strange results with simple arithmetic operations?
- Why are floating-point calculations so inaccurate?
- Why are Python strings immutable?
- Why must self be used explicitly in method definitions and calls?
- Why cant I use an assignment in an expression?
- Why does Python use methods for some functionality (e.g. list.index()) but functions for other (e.g. len(list))?
- Why is join() a string method instead of a list or tuple method?
- How fast are exceptions?
- Why isnt there a switch or case statement in Python?
- Cant you emulate threads in the interpreter instead of relying on an OS-specific thread implementation?
- Why cant lambda expressions contain statements?
- Can Python be compiled to machine code, C or some other language?
- How does Python manage memory?
- Why doesnt CPython use a more traditional garbage collection scheme?
- Why isnt all memory freed when CPython exits?
- Why are there separate tuple and list data types?
- How are lists implemented in CPython?
- How are dictionaries implemented in CPython?
- Why must dictionary keys be immutable?
- Why doesnt list.sort() return the sorted list?
- How do you specify and enforce an interface spec in Python?
- Why is there no goto?
- Why cant raw strings (r-strings) end with a backslash?
- Why doesnt Python have a with statement for attribute assignments?
- Why dont generators support the with statement?
- Why are colons required for the if/while/def/class statements?
- Why does Python allow commas at the end of lists and tuples?
- Library and Extension FAQ
- Extending/Embedding FAQ
- Can I create my own functions in C?
- Can I create my own functions in C++?
- Writing C is hard; are there any alternatives?
- How can I execute arbitrary Python statements from C?
- How can I evaluate an arbitrary Python expression from C?
- How do I extract C values from a Python object?
- How do I use Py_BuildValue() to create a tuple of arbitrary length?
- How do I call an objects method from C?
- How do I catch the output from PyErr_Print() (or anything that prints to stdout/stderr)?
- How do I access a module written in Python from C?
- How do I interface to C++ objects from Python?
- I added a module using the Setup file and the make fails; why?
- How do I debug an extension?
- I want to compile a Python module on my Linux system, but some files are missing. Why?
- How do I tell incomplete input from invalid input?
- How do I find undefined g++ symbols __builtin_new or __pure_virtual?
- Can I create an object class with some methods implemented in C and others in Python (e.g. through inheritance)?
- Python on Windows FAQ
- How do I run a Python program under Windows?
- How do I make Python scripts executable?
- Why does Python sometimes take so long to start?
- How do I make an executable from a Python script?
- Is a
*.pydfile the same as a DLL? - How can I embed Python into a Windows application?
- How do I keep editors from inserting tabs into my Python source?
- How do I check for a keypress without blocking?
- How do I solve the missing api-ms-win-crt-runtime-l1-1-0.dll error?
- Graphic User Interface FAQ
- Why is Python Installed on my Computer? FAQ
- Deprecations
- Glossary
- About this documentation
- Dealing with Bugs
- Copyright
- History and License
- History of the software
- Terms and conditions for accessing or otherwise using Python
- Licenses and Acknowledgements for Incorporated Software
- Mersenne Twister
- Sockets
- Asynchronous socket services
- Cookie management
- Execution tracing
- UUencode and UUdecode functions
- XML Remote Procedure Calls
- test_epoll
- Select kqueue
- SipHash24
- strtod and dtoa
- OpenSSL
- expat
- libffi
- zlib
- cfuhash
- libmpdec
- W3C C14N test suite
- mimalloc
- asyncio
- Global Unbounded Sequences (GUS)
- Zstandard bindings
- Unicode Character Database