Python 将十进制转换为二进制的函数:如何返回结果而不是打印结果?
我需要写一个将整数转换成二进制的函数。 到目前为止,我编写的函数定义是:Python 将十进制转换为二进制的函数:如何返回结果而不是打印结果?,python,python-3.x,recursion,binary,Python,Python 3.x,Recursion,Binary,我需要写一个将整数转换成二进制的函数。 到目前为止,我编写的函数定义是: def decimalToBinary(number): if number > 1: decimalToBinary(number//2) print(number % 2, end = '') 我的问题是: 我应该返回结果,而不是打印它,我不知道怎么做 我不确定我的代码是否是我能写的最好的递归代码 谢谢你抽出时间 将数字转换为字符串,并使用return而不是print。然后将其与
def decimalToBinary(number):
if number > 1:
decimalToBinary(number//2)
print(number % 2, end = '')
我的问题是:
谢谢你抽出时间 将数字转换为字符串,并使用
return
而不是print
。然后将其与递归调用连接起来
def decimalToBinary(number):
if number > 1:
return decimalToBinary(number//2) + str(number % 2)
else:
return str(number % 2)
您可以传递
count
变量来定位数字
def decimalToBinary(number, count = 0):
if number > 1:
return ((number%2) * (10**count) + decimalToBinary(number//2, count+1))
return ((number%2) * (10**count))
另外,如果您需要一个非递归函数,您可以使用类似这样的函数
def LinealDecimalToBinary(num):
count = 0
binNum = 0
while(num > 0):
binNum += (num%2) * (10**count)
num = num//2
count += 1
return binNum
这回答了你的问题吗?非常感谢。这真的很有帮助