Maison > développement back-end > Tutoriel Python > Comment puis-je convertir efficacement des entiers en chaînes dans n'importe quelle base en Python ?

Comment puis-je convertir efficacement des entiers en chaînes dans n'importe quelle base en Python ?

Linda Hamilton
Libérer: 2024-12-05 06:10:18
original
366 Les gens l'ont consulté

How Can I Efficiently Convert Integers to Strings in Any Base in Python?

Conversion d'entiers en chaînes dans n'importe quelle base

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
Copier après la connexion

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]
Copier après la connexion

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)
Copier après la connexion

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]
Copier après la connexion

Pourquoi cette solution fonctionne

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 :

  • Gérer des bases arbitraires de 2 à l'infini.
  • Renvoyer une liste de chiffres plutôt qu'une chaîne, car aucune fonction intégrée n'existe pour conversion directe de base vers n'importe quelle base arbitraire.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal