Не могу понять, как подружить две функции? Как передать значения? Пишу свое первое задание по питону

Как передать значения переменных из 1 функции во вторую? Обе функции часть программы. Должны выполняться последовательно. Пробовал делать через global, но говорят этого надо избегать.

def foo1():
        a=int(input('введите первое число'))
        b=int(input('введите второе число'))
        return(a,b)
def foo2():
        c=(a+b)
        return (c)

Ответы (2 шт):

Автор решения: Сергей

Антон, до чтения основ обязательно упорядочите понимание, что вы делаете и зачем. Сама формулировка "как вызвать foo2 со значениями из foo1. Первая возвратит 2 числа. Как их передать." совершенно неверна. Вам надо либо вызывать foo2 из foo1 и передать туда параметры, либо вызвать foo1 из foo2 и получить их. Поместил пример ниже, иначе долго читать будете. Но обязательно прочитайте про функции внимательно, особенно, зачем нужно передавать параметры, а зачем возвращать их.

def foo1():
    # добавил по 2 символа для эстетики
    a=int(input('введите первое число: ')) 
    b=int(input('введите второе число: ')) 
    return(a,b)

def foo2():
    # добавил вызов
    a,b=foo1()                           
    c=(a+b)
    return (c)

И второй вариант добавил:

def foo1():
    # добавил по 2 символа для эстетики
    a =int(input('введите первое число: '))
    b=int(input('введите второе число: '))
    # добавил вызов
    return (foo2(a,b))
# добавил аргументы
def foo2(a,b):
    c=(a+b)
    return (c)
→ Ссылка
Автор решения: CrazyElf

Например, так:

a, b = foo1()
c = foo2(a, b)

Только нужно написать саму функцию foo2 так, чтобы они принимала эти две переменные a и b как параметры функции. Да, в питоне в принципе можно этого и не делать, foo2 и так увидит эти переменные, поскольку они будут глобальными, но это плохой стиль, функции должны полагаться только на те переменные, которые они получают в явном виде как параметры. Для этого есть много причин, слишком долго их тут все объяснять.

→ Ссылка