有没有办法将这个 'while' 循环转换为 python 中的 'for' 循环?

Is there a way to translate this 'while' loop into a 'for' loop in python?

我有一个十进制到任意基数的转换器,如下所示:

import string
digs = string.digits + string.ascii_letters

def 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[x % base])
        x = x // base
    if sign < 0:
        digits.append('-')
    digits.reverse()
    return ''.join(digits)

print(int2base(51363,64))

... 我想用 for 循环替换这里的 while 循环,但我已经尝试过但没有成功。 感谢帮助(•‿•)

对愚蠢问题的愚蠢回答:-)

而不是

while x:

你可以这样做:

for _ in iter(lambda: x, 0):

感谢 Pychopath 的回答:

i2b = lambda x,base,res=0:[[(x<0and[sign:=-1])or(x>0and[sign:=1])or(x==0and[res:=digs[0]])]and res][0]or[x:=x*sign,digits:=[]]and([[digits.append(digs[x%base]),x:=x//base]for _ in iter(lambda:x,0)])and[digits.append('-') if sign<0 else 0]and(res:=''.join(digits[::-1]))