Python 3 передавая значение из функции в основную - PullRequest
0 голосов
/ 20 марта 2012

Я все еще новичок в python3 и могу использовать небольшую помощь
Я бы хотел, чтобы была напечатана переменная a, показывающая площадь круга в следующем коде

from math import pi

def area(r):
    a = pi * r**2
    return a

if __name__ '__main__':
    r = int(input("Enter the Radius: "))
    area(r)
    print(a)

теперь я знаю, что a не определено, и если я определю его как глобальную переменную и передам 0, то
это доза не вернуть то, что я хочу obviosly так что мой вопрос, как это исправить, я уверен, что это что-то действительно простое

спасибо заранее

1 Ответ

4 голосов
/ 20 марта 2012

Do:

a = area(r)

Переменная a является локальной внутри функции area(), поэтому вы не можете использовать переменную вне ее.Но так как вы возвращаете значение, где бы вы ни вызывали area(r), это выражение, значением которого является то, что возвращается внутри функции, поэтому оно будет иметь значение, равное a.

Когда вы наберете a = area(r), вы передадите новой локальной переменной с именем a значение area(r), то есть значение, которое вы передали return внутри функции.Вы могли бы также сделать просто:

r = int(input("Enter the Radius: "))
print(area(r))
...