2016-10-23 8 views
1

, и я пытаюсь выяснить, как я буду передавать локальные переменные функции, а затем возвращать измененные значения. Я написал код ниже:Python, передающий локальные переменные для модификации в функции

def main(): 
    change = 150  
    coins = 0 
    quarter = 25 

    while (change >= quarter): 
     change = change - quarter 
     coins += 1 
    print(coins) 

if __name__ == "__main__": 
    main() 

Но я хотел бы быть в состоянии извлечь модификацию переменных изменения и монеты, как так:

def main(): 
    change = 150  
    coins = 0 
    quarter = 25 

    while (change >= quarter): 
     count (change, coins, quarter) 

def count(change, count, n): 
    change = change - n 
    count += 1 
    return change, count 

if __name__ == "__main__": 
    main() 

Однако, я знаю, что это ISN» Это способ сделать это. Насколько я понимаю, может возникнуть проблема с попыткой вернуть несколько переменных из функции, но также кажется, что существует проблема, когда я пытаюсь даже модифицировать только переменную изменения в функции count. Буду признателен за любые советы.

ответ

3

Вы возвращения двух значений из count(), так что вы должны захватить эти значения, когда вы называете его:

while (change >= quarter): 
    change, coins = count(change, coins, quarter) 

Изменение ch и co внутри count() не будет влиять на внешние значения change и coins.