Alors qu'on trouve le plus souvent (presque toujours) des types prédéfinis pour représenter les entiers naturels et les entiers relatifs dans tous les langages les plus populaires, ce n'est malheureusement pas le cas pour les nombres rationnels. Il y a plusieurs raisons à cela. La première est sans doute que tout le monde sachant qu'un rationnel est essentiellement un couple d'entiers et que tous les langages permettent de construire des types structurés par agrégation de données, les auteurs se disent que le programmeur qui a besoin de faire des opérations sur des rationnels n'a qu'à construire les objets qui les représentent et les fonctions qui les manipulent, c'est ce qui est fait en exemple ci-après avec le langage Python en utilisant son aspect 'orienté objet'.
La seconde est que si le langage est assez répandu il existe certainement une ou plusieurs bibliothèques prêtes à l'emploi et que le programmeur qui en a besoin saura bien les trouver.
La troisième enfin, est que ce n'est pas si facile de créer un objet qui se comporte à peu près bien dans tous les cas de figure. En effet une simple addition de quelques fractions ayant des dénominateurs premiers entre eux peut conduire à un débordement. Le cas de Python est un peu spécial dans la mesure où il dispose de ce passage automatique au type long en cas de débordement quitte à revenir à un type plus classique après simplification. C'est donc un langage idéal pour implémenter une classe de fractions.

Café Python

Ce programme implémente une classe python pour représenter les nombres rationnels..