Latest in branch 1.0
1.0.2
Released 06 May 1994
(32 years ago)
SoftwarePython
Version1.0
Status
End of life
Initial release1.0.1
15 Feb 1994
(32 years ago)
Latest release1.0.2
06 May 1994
(32 years ago)
End of life15 Feb 1994
(Ended 32 years, 3 months ago)
Source codehttps://github.com/python/cpython/tree/v1.0.2
Documentationhttps://docs.python.org/release/1.0.2/
Downloadhttps://www.python.org/downloads/release/python-102/
Python 1.0 ReleasesView full list

What Is New in Python 1.0

Python 1.0 was the first official stable release of Python, formalized from the earlier 0.9.x series that Guido van Rossum had been developing since 1989. Python 1.0 established the core language: exception handling with try/except, modules, classes with inheritance, basic data types (lists, tuples, dicts, strings), and a standard library grounding the "batteries included" philosophy. This release set the template for everything that followed.

Category Feature Notes
Language Exception handling: try/except/finally Structured error handling from the start
Language Classes and single inheritance Old-style classes (not unified with built-in types)
Language First-class functions -- functions as objects Assignable, passable, storable
Language Core data types: list, tuple, dict, str, int, float Dynamic typing from day one
Language Modules and the module import system Each .py file is a module
Language Dynamic typing with duck typing semantics "If it walks like a duck" -- behavior over type
Language Indentation-based block structure No braces; whitespace is semantically significant
Language *args -- variable positional arguments Accept arbitrary number of positional arguments
Standard Library os, sys, math, string, time, io modules "Batteries included" from day one
Standard Library Basic socket and networking support Low-level BSD socket API
Standard Library Regular expressions via regex module Replaced by re in later versions

The Design Philosophy Established in Python 1.0

Readability as a Core Principle

From version 1.0, Python's design was guided by the principle that code is read more often than it is written. The use of meaningful whitespace (indentation-based blocks instead of braces), English-like keywords, and the requirement for explicit rather than implicit operations were all present from day one.

First-Class Functions

Functions in Python 1.0 were full objects -- they could be assigned to variables, passed as arguments, and returned from other functions. This enabled higher-order programming patterns before most mainstream languages supported them.

def square(x):
    return x * x

def apply(func, value):
    return func(value)

result = apply(square, 5)  # 25

Exception Handling from the Start

Python's try/except mechanism was present from 1.0 -- not bolted on later. This made Python unusual among scripting languages of its era (Perl, Tcl) which had more limited or inconsistent error handling models.

try:
    result = 10 / x
except ZeroDivisionError:
    print("Cannot divide by zero")
except TypeError as e:
    print(f"Type error: {e}")
finally:
    print("Always executed")

Dynamic Typing and Duck Typing

Python has always been dynamically typed -- variables do not have types, only values do. And Python uses duck typing: if an object has the right methods and attributes, it is usable in any context that requires those methods, regardless of its formal type. isinstance() checks exist but are often unnecessary and sometimes considered non-Pythonic.

The Origin of Python

Python was conceived by Guido van Rossum in December 1989 as a successor to the ABC language. Guido was working at CWI (Centrum Wiskunde & Informatica) in Amsterdam and wanted a language that addressed ABC's limitations while keeping its clarity and ease of learning. Python was named after Monty Python's Flying Circus, not the snake. The first public release was 0.9.0 in February 1991. By version 1.0 in 1994, Python had grown into a complete, pragmatic language ready for real-world use.

FAQ

Why was Python designed with significant whitespace?
Guido van Rossum wanted to make code structure visually obvious and enforce a single style. In languages with braces, teams regularly argued about brace placement and indentation style. Python eliminates this class of debate entirely -- indentation is the structure. The result is that Python code by different authors looks more similar than code in most other languages.

What language was Python's primary inspiration?
ABC was the strongest influence -- Python kept ABC's use of indentation and its emphasis on simplicity. Guido also took inspiration from Modula-3 (module system), C (some syntax), Lisp (first-class functions, later lambda), and Unix shell scripting (the interactive REPL experience). Python 1.0 was already a synthesis of ideas from many sources.

Can Python 1.0 code run on Python 3?
Most simple Python 1.0 code would run on Python 3 with minor fixes -- mainly replacing the print statement with print() function, fixing integer division, and updating except Exception, e to except Exception as e. Code using old-style classes or the string module functions would need more changes. The semantic foundations are the same.

What was the relationship between ABC and Python?
ABC was an imperative programming language also developed at CWI, designed for teaching and interactive use. Guido worked on ABC's implementation and liked its ideas but found it too inflexible for practical use -- it could not be extended or integrated with other systems easily. Python was designed from the start to be extensible (C extension modules) and practical, while keeping ABC's readability goals.

When did Python get its "batteries included" description?
The phrase "batteries included" was popularized during the Python 2.x era to describe the philosophy that Python ships with a rich standard library covering most common needs. But the practice was established from Python 1.0 -- the original release included os, sys, string, math, time, socket, and CGI modules. Guido wanted users to be productive without having to hunt for third-party packages for basic tasks.

Releases In Branch 1.0

VersionRelease date
1.0.206 May 1994
(32 years ago)
1.0.115 Feb 1994
(32 years ago)