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 = ''))
Выход для ввода 34:
010001
Десятичное число в двоичное: нет
Функция печатает ответ, но не возвращает его и затем начинает идтивозвращается к функции и начинает удалять символы один за другим из строки и, наконец, не возвращает ни одного вместо двоичной строки.
Правильный код:
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 = ''))