Что происходит, когда вы вызываете функцию с разными аргументами - PullRequest
0 голосов
/ 06 февраля 2020

Я выполняю старое задание, которое мне так и не удалось понять. Я понимаю и получаю правильный вывод до «3, 11». После этого следует a = f2 (b, c). Что я не понимаю, так это то, что f2 обычно определяется как f2 (c, a). Я попытался изменить все c на b и все a на c в f2, но когда я перехожу к шагу b = f1 (c) (который теперь b = f1 (b), а затем заменить все a в f1 с b я не получаю правильный вывод с помощью show (a, b) в функции f1. Выходные данные должны быть a = 10 и b = 6, но, поскольку я заменил все a, нет а слева. Я понятия не имею, что мне следует делать на шаге a = f2 (b, c). Кто-нибудь может объяснить, какие дальнейшие шаги нужно выполнить, чтобы получить последние 3 правильных результата?

Назначение: (извините за плохой интервал, я не могу вставить его правильно, он вставляется как одна длинная строка)

a = 3
b = 4

def show (x, y):                                                                                 
    print ‘%d, %d’ % (x, y)

def f1 (a):
    global b
    a *= 2
    b += 1
    c = a + b
    show(a, b)    
    return c

def f2 (c, a):
    a += 3
    b = f1(c)
    show(c, b)
    c = a + b 
    return c


show(a, b)
c = f1(a)
show(a, c)
a = f2(b, c)
show(a, b)

What will be printed when this program is executed?

Желаемый результат: 3, 4

6, 5

3, 11

10, 6

5, 16

30, 6

...