Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 十进制到二进制代码的递归函数混淆?_Python 3.x_Function_Recursion_Binary_Decimal - Fatal编程技术网

Python 3.x 十进制到二进制代码的递归函数混淆?

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

输入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 > 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
分支中的functionmissing
return
(在递归调用
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