Вопрос:

Изменение значения переменной в функции путем вызова другой функции в качестве подфункции

python python-3.x function loops while-loop

31 просмотра

1 ответ

51 Репутация автора

def tim():
    cash = 100
    while cash != 0:
        print("while loop:",cash)
        john(cash)

def john(cash):
    print("john func:",cash)
    cash = cash -1

tim()

Может кто-нибудь объяснить, почему john () не уменьшает стоимость наличных? Я боролся с этим довольно долго.

Автор: Xuan Источник Размещён: 08.11.2017 11:11

Ответы (1)


2 плюса

472214 Репутация автора

Решение

Параметры функции передаются по значению, а не по ссылке, поэтому присвоение переменной in johnне влияет на переменную in tim. Функция должна вернуть новое значение:

def tim():
    cash = 100
    while cash != 0:
        print("while loop:",cash)
        cash = john(cash)

def john(cash):
    print("john func:",cash)
    return cash - 1

tim()
Автор: Barmar Размещён: 09.11.2017 12:10
Вопросы из категории :
32x32