Source: https://www.doc-developpement-durable.org/file/Projets-informatiques/cours-&-manuels-informatiques/Python/Programming%20in%20Python%203,%202nd%20Edition.pdf