On this page
If you study computer science in CBSE, Python is probably the first real programming language you write. Its look, with no curly braces and blocks marked by indentation, came from decisions one programmer made in Amsterdam more than 35 years ago. This post covers why Guido van Rossum built Python, where its key features came from, a worked example of how indentation changes what a program does, and what students can learn from his approach.
Where did Python begin?
Van Rossum tells the story on his blog, The History of Python. In late 1982 he joined CWI, a Dutch research institute for mathematics and computer science, as a programmer in the group building a language called ABC. When ABC ended, he moved to the group building Amoeba, a distributed operating system.
Amoeba needed system administration tools. Writing them in C took too long, and the Bourne shell could not easily reach Amoeba's system calls. He wanted a language that would "bridge the gap between C and the shell". In the official Python FAQ he writes: "During the 1989 Christmas holidays, I had a lot of time on my hand, so I decided to give it a try."
On 20 February 1991, his blog records, he posted version 0.9.0 to the alt.sources newsgroup, in 21 parts. The Python licence history sums it up: Python was created in the early 1990s at CWI "as a successor of a language called ABC".
Why is it called Python?
The FAQ answers this directly. When he began implementing it, van Rossum "was also reading the published scripts from 'Monty Python's Flying Circus', a BBC comedy series from the 1970s." He wanted a name "that was short, unique, and slightly mysterious". It has nothing to do with snakes.
Where did Python's features come from?
The FAQ credits two sources:
ABC gave Python "the use of indentation for statement grouping and the inclusion of very-high-level data types", although the details differ.
Modula-3 gave the syntax and meaning of exceptions, the try and except blocks CBSE students learn.
Later, Tim Peters wrote down the guiding principles as The Zen of Python (PEP 20). It includes "Simple is better than complex" and "Readability counts".
Worked example: when does indentation change the answer?
A teacher wants the class average of five test marks.
marks = [72, 85, 64, 90, 58]
total = 0
for m in marks:
total += m
average = total / len(marks)
print(average)The loop adds each mark: 72 + 85 + 64 + 90 + 58 = 369.
After the loop, average = 369 ÷ 5 = 73.8.
The program prints 73.8 once.
Now indent the last two lines by four spaces so they sit inside the loop. They run on every pass, using the total so far:
After 72: 72 ÷ 5 = 14.4
After 85: 157 ÷ 5 = 31.4
After 64: 221 ÷ 5 = 44.2
After 90: 311 ÷ 5 = 62.2
After 58: 369 ÷ 5 = 73.8
Same code, different indentation, five lines of output instead of one.
Common mistakes:
Mixing tabs and spaces. Python 3 raises a TabError when the mix makes the meaning unclear; set your editor to insert four spaces.
Forgetting the colon at the end of a for or if line.
Reading only the last line of output. It matches here, but the four lines before it show the logic is wrong.
For more on loops and conditions, see our guide to flow of control in Python, and for the basics tested in Class 12, our post on Python for CBSE Class 12.
How did Python grow after 1991?
Python.org records that Python 2.0 was released on 16 October 2000 and Python 3.0 on 3 December 2008. For years van Rossum made the final call on proposed changes. On 12 July 2018 he told Python's core developers in a message titled "Transfer of power" that he was "giving myself a permanent vacation" from that role, adding, "I am not going to appoint a successor." The community then had to choose how to govern itself.
What can a student take from van Rossum's approach?
Solve a problem you actually have. Python started as a tool for Amoeba's system administration.
Borrow good ideas. Indentation came from ABC and exceptions from Modula-3. Knowing other work well is part of creating something new.
Ship early, then improve. Version 0.9.0 went out in 1991, and feedback shaped what followed.
Write for the reader. "Readability counts" is good advice for code and for exam answers.
When a program gives an answer you did not expect, the Fermi Problem Library has worked problems with a step-by-step solver that explains the reasoning rather than printing an answer, which helps you find the line where your logic went wrong.
Try it now: change the program to print the highest mark without using max(), and check your answer is 90.



