在python中将十进制转换为三进制(base3)
发布于 2021-01-29 18:01:44
我试图在python函数中使三进制十进制数。我的想法是继续除法,直到商和余数相等,但是我似乎无法使它起作用。这是我的代码:
l = 1
#problem code
def ternary(n):
e = n/3
q = n%3
e= n/3
q= e%3
print q
r = input("What number should I convert?: ")
k = bin(r)
v = hex(r)
i = oct(r)
print k+"(Binary)"
print v+"(Hex)"
print i+"(Octals)"
ternary(r)
l+=1
# Variables:
#l,r,k,v,i
#n,q,e
关注者
0
被浏览
228
1 个回答
-
我的想法是继续除法,直到商和余数相等,但是我似乎无法使它起作用。
是的,类似的东西。本质上,您希望保持除以3,然后收集余数。其余的则组成最终的数字。在Python中,您可以
divmod
用来划分和收集余数。def ternary (n): if n == 0: return '0' nums = [] while n: n, r = divmod(n, 3) nums.append(str(r)) return ''.join(reversed(nums))
例子:
>>> ternary(0) '0' >>> ternary(1) '1' >>> ternary(2) '2' >>> ternary(3) '10' >>> ternary(12) '110' >>> ternary(22) '211'