The book is a gentle introduction to Python using arithmetic, and vice versa, with a historical perspective encompassing programming languages within the wider process of development of mathematical notation. The revisitation of typical algorithms that are the core of elementary mathematical knowledge helps to grasp their essence and to clarify some assumptions that are often taken for granted but are very profound and of a very general nature.
The first mathematician to define a systematic system for generating numbers was Archimedes of Syracuse in the third century B.C. The Archimedean system, which was defined in a book with the Latin title Arenarius, was not intended to define all numbers, but only very large numbers [13, 22, 23]. However, it can be considered the first system with the three main characteristics of a counting system that have the most important properties for complete arithmetic adequacy: creativity, infinity, and recursion. Creativity means that each numeral is new for numerals that precede it; infinity means that after any numeral there is always another numeral; recursion means that after an initial sequence of numerals coinciding with the digits of the system, digits repeat regularly in all subsequent numerals. Since the numerals are finite expressions of digits, their lengths increase along their generation. In the next chapter, Python is briefly introduced by linking this language to standard mathematical notation, which took its current form throughout a long process that extends from the introduction of decimal numerals to the eighteenth century, particularly within Euler's notational and conceptual framework. The third chapter is devoted to counting algorithms, showing that something that is usually taken for granted has intriguing aspects that deserve a very subtle analysis: the authors will show that the Python representation of counting algorithms is very informative and demonstrates the informational nature of numbers.