Python 3.x 十进制到二进制代码的递归函数混淆?
输入34的输出: 010001 十进制到二进制:无 函数打印答案但不返回,然后开始返回函数并开始从字符串中逐个删除字符,最后返回none而不是二进制字符串 正确的代码:Python 3.x 十进制到二进制代码的递归函数混淆?,python-3.x,function,recursion,binary,decimal,Python 3.x,Function,Recursion,Binary,Decimal,输入34的输出: 010001 十进制到二进制:无 函数打印答案但不返回,然后开始返回函数并开始从字符串中逐个删除字符,最后返回none而不是二进制字符串 正确的代码: decimal = int(input("Enter the Decimal value :")) def d_b(decimal,binary): # function to convert decimal to binary binary = binary + str(decimal % 2) if
decimal = int(input("Enter the Decimal value :"))
def d_b(decimal,binary):
# function to convert decimal to binary
binary = binary + str(decimal % 2)
if decimal > 1:
d_b(decimal//2,binary)
else :
print (binary)
return (binary)
print ("Decimal to Binary : ", d_b(decimal,binary = ''))
试试这个,欢迎光临:
decimal = int(input("Enter the Decimal value :"))
def d_b(decimal,binary):
# function to convert decimal to binary
if decimal > 0:
binary = d_b(int(decimal)//2,binary)
binary = binary + str(decimal % 2)
return (binary)
print ("Decimal to Binary :",d_b(decimal,binary = ''))
嗨,欢迎来到苏。底层算法似乎不正确。我建议您在尝试将其打包为
if
分支中的functionmissingreturn
(在递归调用dub
之前)之前将其作为脚本使用。非常感谢您的帮助,但如果您能帮我找出代码的错误(编译器是如何看待它的)为什么它打印了输出,但没有返回。因为您没有分配您反复调用的值。请参阅第5行中我的注释
def d_b(decimal,binary):
# function to convert decimal to binary
binary = binary + str(decimal % 2)
if decimal > 1:
binary = d_b(int(decimal/2), binary) # <-- this is the line you should change
return binary
return decimal > 1 ? d_b(int(decimal/2), binary): binary