В чем ошибка (почему на выходе из функции 5, а не 7)?
Почитайте про ссылки, объекты, область видимости переменных и способы передачи параметров в функцию.
Что видим в коде:x=5
создали объект со значением "5" и присвоили ссылку на него переменной "х"def funA(x,y):
        x=7
        return x
создали функцию с двумя параметрами
в теле функции завели локальную переменную "х"
в качестве результата возвратили локальную переменнуюfunA(x,4)
вызвали функцию с параметрами 5 и 4print x
напечатали не локальную переменную "х"
А теперь ответ на Ваш вопрос:В чем ошибка (почему на выходе из функции 5, а не 7)?
На выходе из функции как раз 7>>> x=5

>>> def funA(x,y):
	    x = 7
	    return x

>>> funA(x,4)
7
А то, что Вы приняли за "выход" функции есть просто переменная "х", которая понятия не имеет о Вашей функции, что внутри нее творится и что возвращется
илиx = funA(x,4)
или def funA(y):
    global x
    x = 7
    return y