Проблема преобразования десятичного числа в двоичное в python - PullRequest
0 голосов
/ 20 февраля 2020

Следующий код предназначен для преобразования десятичного числа в двоичное.

Мой вопрос таков: когда num становится меньше или равно 1, python переходит на последнюю строку, то есть print (num% 2, end = '') и, следовательно, выводит 1. Но после этого, почему он перемещается в строку decimalToBinary (num // 2)? Эта строка должна выполняться только когда num> 1

def decimalToBinary(num):
    if num > 1:
        decimalToBinary(num // 2)
    print(num % 2, end='')

decimalToBinary(17)

Ответы [ 2 ]

0 голосов
/ 24 марта 2020

Это потому, что последняя функция в стеке завершена, поэтому она переходит к точке вызова функции в верхнем стеке. Если вы добавите a=1 после оператора print(num%2,end=''), вы увидите, что a=1 вызывается до того, как управление вернется к верхней функции.

0 голосов
/ 24 марта 2020
import numpy as np 
import pandas as pd

# Read the input
s = int(input())

# Write your code below

print(format(s, 'b'))
...