我有一個十進制到任何基本轉換器,如下所示:
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))
...而且我想用回圈替換while此處的for回圈,但我嘗試過但沒有成功。感謝幫助 (???)
uj5u.com熱心網友回復:
愚蠢地回答一個愚蠢的問題:-)
代替
while x:
你可以這樣做:
for _ in iter(lambda: x, 0):
uj5u.com熱心網友回復:
感謝 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
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/438419.html
