Maison >développement back-end >Tutoriel Python >Comment puis-je convertir efficacement des entiers en chaînes dans n'importe quelle base en Python ?
En Python, la fonction int() crée sans effort un entier à partir d'une chaîne avec une base spécifiée. Cependant, l’opération inverse de conversion d’un entier en chaîne peut être délicate. Notre objectif est de développer une solution générale, int2base(num, base), qui remplit la condition :
int(int2base(x, b), b) == x
Voici une solution étonnamment simple qui gère des bases arbitraires :
def numberToBase(n, b): if n == 0: return [0] digits = [] while n: digits.append(int(n % b)) n //= b return digits[::-1]
Cette fonction convertit un nombre n en base b et renvoie une liste de chiffres. Pour convertir un grand nombre en base 577, par exemple :
numberToBase(67854 ** 15 - 102, 577)
Cela vous donnera le résultat correct sous forme de liste :
[4, 473, 131, 96, 431, 285, 524, 486, 28, 23, 16, 82, 292, 538, 149, 25, 41, 483, 100, 517, 131, 28, 0, 435, 197, 264, 455]
La solution fournie démontre que parfois, des fonctions personnalisées sont nécessaires lorsque les fonctions intégrées ne disposent pas des fonctionnalités souhaitées. Ici, int2base() surmonte les limitations en :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!