Lors de la conversion d'une chaîne python en int, par ex. a = int("123",10)
, (convertir la chaîne "123" en nombre entier dans la base 10) une fonction C est appelée.
En premier lieu, il vérifie que la base de la base de comptage donné est> = 2 et < = 36, ou 0 (Erreur non)
Ensuite, il ignore tous les espaces de début. (De sorte que " 123" = "123"
),
et vérifier si le numéro est marqué comme positif '+'
ou négatif '-'
Lorsque la base est égal à 0, il vérifie si la chaîne commence par '0x','0o', '0b', '0'
, et définit respectivement la base (hexadécimal, octal , binaire, décimal).
Notez que si aucune base n'est donnée, la base par défaut est 10 (Décimal).
Il procède ensuite à tourner le tableau de caractères en un nombre, en utilisant l'algorithme décrit dans le commentaire de code au link posted by Paul Kehrer
espaces Trailing sont également ignorés et les erreurs sont élevés si besoin- par exemple, s'il y a un espace au milieu de la chaîne, suivi d'un nombre, ou s'il y a un caractère non numérique.
Pourriez-vous fournir la fonction C afin que nous n'ayons pas besoin d'aller la chercher nous-mêmes? –
"Je veux comprendre comment cela fonctionne mais je ne comprends pas la langue dans laquelle il est écrit et je veux que vous m'expliquiez au lieu de l'apprendre", c'est ainsi que j'ai interprété cette question. –
@ TadhgMcDonald-Jensen, s'il vous plaît envisager de mettre à jour votre interprète – micgeronimo