gpt4 book ai didi

Python 优雅的 int(string,base) 反函数

转载 作者:IT老高 更新时间:2023-10-28 20:36:34 26 4
gpt4 key购买 nike

Python 允许使用 [2,36] 范围内的任何基数将字符串转换为整数:

int(string,base)

我正在寻找一个优雅的反函数,它接受一个整数和一个基数并返回一个字符串。

例如:

>>> str_base(224,15)
'ee'

我想出了以下解决方案:

def digit_to_char(digit):
if digit < 10: return chr(ord('0') + digit)
else: return chr(ord('a') + digit - 10)

def str_base(number,base):
if number < 0:
return '-' + str_base(-number,base)
else:
(d,m) = divmod(number,base)
if d:
return str_base(d,base) + digit_to_char(m)
else:
return digit_to_char(m)

注意:digit_to_char() 适用于 <= 169 的碱基,可任意使用 z 之后的 ASCII 字符作为 36 以上碱基的数字。

是否有 Python 内置函数、库函数或更优雅的 int(string,base) 反函数?

最佳答案

也许这不应该是一个答案,但它可能对某些人有所帮助:内置 format函数确实在几个基础上将数字转换为字符串:

>>> format(255, 'b') # base 2
'11111111'
>>> format(255, 'd') # base 10
'255'
>>> format(255, 'o') # base 8
'377'
>>> format(255, 'x') # base 16
'ff'

关于Python 优雅的 int(string,base) 反函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2063425/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com