SICP — Scheme/JS Structure and Interpretation of Computer Programs — Comparison Edition
Original Python

[1] In this book, we do not show the interpreter's response to evaluating definitions, since this is highly implementation-dependent. Python uses the same syntax = to reassign the value of a even when the name has already been assigned previously with a declaration assignment. In this and the next chapter, we do not use this option. Chapter 3 discusses reassignment.
[2] Chapter 3 will show that this notion of environment is crucial for understanding how the interpreter works. Chapter 4 will use environments for implementing interpreters.
1.1.2  Naming and the Environment