2015-12-10 3 views
0

У меня есть несколько странная проблема. Я должен взять введенное число, и если он даже разделит его, пока не будет странно. Но. Код работает внутри функции и цикл while, но не работает, когда я пытаюсь вернуть это значение. Он буквально просто возвращает введенное значение.Разделяет функцию, но не снаружи. Python 3.4

Код для ссылки:

num = int(input("Enter a number.")) 

def makeodd(num): 
    while num % 2 == 0: 
     num = num/2 
     print(num) 
     return num 

makeodd(num) 

print(num) 

Я извиняюсь, что это немного основной. Я ищу больше объяснений, чем реальное решение. Хотя решение было бы неплохо. Это python 3.4 для справки. Я огляделся, но не мог найти ничего подобного.

ответ

1

Изменить makeodd(num) на:

num = makeodd(num) 

Это ставит возвращаемое значение в num.

Вы также можете использовать возвращаемое значение непосредственно в операторе печати:

print(makeodd(num)) 
+0

Спасибо. чувствую себя глупым, не понимая этого. –

Смежные вопросы