Python 2.7 尝试返回列表中循环的值,但可以';无法使用return获取它,但print会显示它
有人能帮忙吗?您的代码应该是这样的:Python 2.7 尝试返回列表中循环的值,但可以';无法使用return获取它,但print会显示它,python-2.7,Python 2.7,有人能帮忙吗?您的代码应该是这样的: def dectoBin(n): for num in n: if num == 0: return '' else: return dectoBin(num/2) + str(num % 2) 这就是递归的工作原理。您的代码中没有for循环 编辑: def dectoBin(num): if num == 0: return '' el
def dectoBin(n):
for num in n:
if num == 0:
return ''
else:
return dectoBin(num/2) + str(num % 2)
这就是递归的工作原理。您的代码中没有for循环
编辑:
def dectoBin(num):
if num == 0:
return ''
else:
return dectoBin(num/2) + str(num % 2)
我已经更新了代码,因此也可以考虑0。还要注意的是,如果您想要转换到256,您需要在范围内转换到257 循环永远不会超过
n
中的第一个值,因为返回
。另外,递归调用传递的是一个数字,而不是一个列表
最清晰的解决方案是一个函数遍历列表,转换值并收集结果,另一个函数仅转换单个数字。您在这里想做什么?我正在编写一个函数,将以10为基数的数字列表转换为二进制。但是不能使用return循环遍历列表中的每个值。你似乎认为n既是一个可数又是一个数字。n意味着接受一个列表。然后将列表中的每个值转换为二进制数。请容忍我。我刚开始学习python问题是我不能使用返回来遍历列表,因为它没有超过第一个值。我还有别的办法吗,Thanks@DeepSpace你在骗我吗?它正在工作。我刚刚测试过
dectoBin(8)
gives1000
,dectoBin(15)gives1111
等等。抱歉,错过了这个问题是用Python 2.7标记的,其中/
是楼层划分。在Python3上,必须使用/
或将结果转换为int
@Nurzhan。我如何实现一个代码,该代码运行在一个数字范围内,比如范围(0,256),并给出单独的二进制转换。感谢you@DeepSpace我如何实现一个代码,该代码运行在一个数字范围内,比如说范围(0,256),并提供单独的二进制转换。感谢you@Dolapo如果有帮助,你可以接受答案,这样问题就可以结束了。
def dectoBin(num):
if num == 0:
return '0'
elif num == 1:
return '1'
else:
return dectoBin(num/2) + str(num % 2)
for i in range(257):
print(dectoBin(i))