【发布时间】:2017-10-29 18:54:09
【问题描述】:
我有一个非常具体的问题,关于如何通过 python 将十进制整数转换为二进制,但只使用 mod (%) 和 除 (/) 函数。
到目前为止,我已经成功地创建了实际的函数并自行循环,但该函数似乎永远循环并添加了随机数的 0 和 1,尽管转换成功。
例如输入 4,输出 [0, 0, 1, 0, 1]。如您所见,它已经成功获取到 [0, 0, 1] ,它是二进制的 4,但在末尾添加了一个 0 和一个 1。
我认为这与我引用和传递参数的方式有关,但很乐意接受一些帮助。
num = int(input("Enter the Number"))
def func(num)
if num == 1:
alist.append(1)
return num
while num != 1:
modnum = int(num%2)
num = int(num/2)
if modnum == 0:
alist.append(0)
print(alist)
elif modnum == 1:
alist.append(1)
print(alist)
func(num)
alist = []
func(num)
print(alist)
print (alist[::-1])
【问题讨论】:
-
递归和一个循环?似乎您需要选择一种方式或其他方式。
-
你能解释一下吗?我知道我正在使用循环递归,但在这种情况下,这有关系吗?我很新,所以任何帮助将不胜感激。
-
另外,为什么不直接使用
list("{0:b}".format(num))来获取列表呢? -
@SudheeshSinganamalla 我将如何利用它?
标签: python python-3.x loops parameters arguments