如何將基中的整數轉換為字符串?Python允許通過以下方式輕松地從給定基的字符串創建整數int(str, base).我想做相反的事情:從整數創建字符串,也就是我想要一些功能int2base(num, base),以便:int(int2base(x, b), b) == x函數名稱/參數順序不重要。任何數字x和基b那,那個int()會接受的。這是一個很容易編寫的函數:實際上,它比在這個問題中描述它更容易。然而,我覺得我一定是錯過了什么。我知道這些功能bin, oct, hex,但我不能使用它們有幾個原因:這些函數在早期版本的Python上是不可用的,我需要與其兼容(2.2)。我想要一個通用的解決方案,在不同的基礎上可以稱為相同的方法。我想允許2,8,16以外的基地相關Python優雅的int反函數(String,base)python中使用遞歸的整數到基x系統Python中的基62轉換如何將整數轉換為Python中最短的url安全字符串?
3 回答

胡子哥哥
TA貢獻1825條經驗 獲得超6個贊
import string digs = string.digits + string.ascii_lettersdef int2base(x, base): if x < 0: sign = -1 elif x == 0: return digs[0] else: sign = 1 x *= sign digits = [] while x: digits.append(digs[int(x % base)]) x = int(x / base) if sign < 0: digits.append('-') digits.reverse() return ''.join(digits)

慕村225694
TA貢獻1880條經驗 獲得超4個贊
def numberToBase(n, b): if n == 0: return [0] digits = [] while n: digits.append(int(n % b)) n //= b return digits[::-1]
577
,
numberToBase(67854 ** 15 - 102, 577)
[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]
,
添加回答
舉報
0/150
提交
取消