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

[1] Interpreted as either true or false means this: In Scheme, there are two distinguished values that are denoted by the constants #t and #f. When the interpreter checks a predicate's value, it interprets #f as false. Any other value is treated as true. (Thus, providing #t is logically unnecessary, but it is convenient.) In this book we will use names true and false, which are associated with the values #t and #f respectively.
[2] Interpreted as either true or false means this: In Python, there are two distinguished values that are denoted by the constants True and False. When the interpreter checks a predicate's value, it interprets False as false and True as true. Python considers any value to be either true or false, but in this book we only use these two.
[3] Conditionals in full Python accept any value, not just the boolean values 1 and 0, as the result of evaluating the $predicate$ expression (see footnote 1 in section 4.1.3 for details). The programs in this book use only boolean values as predicates of conditionals.
[4] Abs also uses the minus operator -, which, when used with a single operand, as in (- x), indicates negation.
[5] A minor difference between if and cond is that the $\langle e \rangle$ part of each cond clause may be a sequence of expressions. If the corresponding $\langle p \rangle$ is found to be true, the expressions $\langle e \rangle$ are evaluated in sequence and the value of the final expression in the sequence is returned as the value of the cond. In an if expression, however, the $\langle \textit{consequent}\rangle$ and $\langle \textit{alternative}\rangle$ must be single expressions.
[6] For now, we restrict these operators to number arguments. In sections 2.3.1 and 3.3.1, we shall generalize the equality and inequality predicates == and !=.
[7] This assumption is justified by the restriction mentioned in footnote 3. Full Python needs to consider the case where the result of evaluating $expression$$_1$ is neither true nor false.
[8] Syntactic forms that are simply convenient alternative surface structures for things that can be written in more uniform ways are sometimes called syntactic sugar, to use a phrase coined by Peter Landin.
1.1.6   Conditional Expressions and Predicates