Divmod替代方法

2024-09-28 21:58:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在寻找转换基的问题,我在这里使用divmod找到了一个解决方案。代码是这样的。在

    integer = 0
for character in innitvar:
    assert character in SY2VA, 'Found unknown character!'
    value = SY2VA[character]
    assert value < basevar, 'Found digit outside base!'
    integer *= basevar
    integer += value


array = []
while integer:
    integer, value = divmod(integer, convertvar)
    array.append(VA2SY[value])
answer = ''.join(reversed(array))

这位好心的人描述了一些关于如何基于余数和整数来使用divmod的方法,但是我想知道是否有人可以在没有divmod的情况下使用divmod,这样我就可以更清楚地理解它了。我想我也在问是否有可能不使用divmod来实现这一点。在

谢谢你的建议!在


Tags: 代码inforvalueintegerassert解决方案array
2条回答

好吧,你可以分开做除法和模运算。在

def int2str(integer, base):
    digits = []
    while integer:
        value = integer % base
        integer = integer / base
        digits.append(dictionary[value])
    return ''.join(reversed(digits))

integer, value = divmod(integer, base)

相当于

^{pr2}$

这有帮助吗?可能是温度变量,而且是更长的时间:

temp = integer // base
value = integer - temp * base
integer = temp

想象一下它是10次方的基数,比如,base = 100。从12345开始

integer, value = divmod(12345, 100)

产生integer = 123和{}。也就是说,divmod(whatever, 100)剥离最后两个数字作为第二个返回值,将其余数字作为第一个返回值传递。在

相关问题 更多 >