Не могу понять, как подружить две функции? Как передать значения? Пишу свое первое задание по питону
Как передать значения переменных из 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)
Например, так:
a, b = foo1()
c = foo2(a, b)
Только нужно написать саму функцию foo2 так, чтобы они принимала эти две переменные a и b как параметры функции. Да, в питоне в принципе можно этого и не делать, foo2 и так увидит эти переменные, поскольку они будут глобальными, но это плохой стиль, функции должны полагаться только на те переменные, которые они получают в явном виде как параметры. Для этого есть много причин, слишком долго их тут все объяснять.