Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich Ganzzahlen in jeder Basis in Python effizient in Strings konvertieren?
In Python erstellt die Funktion int() mühelos eine Ganzzahl aus einem String mit einer angegebenen Basis. Allerdings kann die umgekehrte Operation der Konvertierung einer Ganzzahl in eine Zeichenfolge schwierig sein. Unser Ziel ist es, eine allgemeine Lösung zu entwickeln, int2base(num, base), die die Bedingung erfüllt:
int(int2base(x, b), b) == x
Hier ist eine überraschend einfache Lösung, die beliebige Basen verarbeitet:
def numberToBase(n, b): if n == 0: return [0] digits = [] while n: digits.append(int(n % b)) n //= b return digits[::-1]
Diese Funktion Konvertiert eine Zahl n zur Basis b und gibt eine Liste von Ziffern zurück. Um beispielsweise eine große Zahl in die Basis 577 umzuwandeln:
numberToBase(67854 ** 15 - 102, 577)
Sie erhalten das korrekte Ergebnis als 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]
Die bereitgestellte Lösung zeigt, dass manchmal benutzerdefinierte Funktionen erforderlich sind, wenn integrierte Funktionen nicht die gewünschte Funktionalität bieten. Hier überwindet int2base() Einschränkungen durch:
Das obige ist der detaillierte Inhalt vonWie kann ich Ganzzahlen in jeder Basis in Python effizient in Strings konvertieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!