На пути к пониманию функций следует вернуться к базовой математике.
Рассмотрим математическое выражение:
f(x) = x + 2
В этом случае f(x)
добавит 2 к значению x
.
поэтому, f(0) = 0 + 2
, дает 2. Аналогичным образом для других значений x
.
when x = 3....f(3) = 5
when x = 5....f(5) = 7
Таким образом, для входного значения x
, он будет производить выходной сигнал, который является вычисление выражения x + 2
.
В питоне, это выражение будет что-то вроде этого:
def f(x): # here x is the input value
output = x + 2 #calculates the expression using x
return(x+2) #and we return the value
предположит, что мы хотим найти значение для x = 3
. это будет: f(3)
f(3)
теперь предоставит вам 5, как указано выше.
Мы можем сохранить это значение в другой переменной,
y =f(3)
Здесь y
сохраняет значение, возвращенное нашей функции при передаче к нему 3. Таким образом, у будет 5.
В вашем примере,
def secret_formula(started): #here we have **started** instead of x
jelly_beans = started * 500 #bunch of calculations
jars = jelly_beans/1000
crates = jars/100
return jelly_beans, jars, crates #returns the calculated value
ниже этого,
start_point = 10000
beans, jars, crates = secret_formula(start_point) #what will the output be , if I give 1000 to secret_formula .. ie... secret_formula(1000)
Теперь secret_formula
функция возвращает три выхода
return jelly_beans, jars, crates
Мы присваиваем эти выходы beans, jars, crates
в соответствующем заказе.
Теперь beans
будет иметь значение, которое имеет jelly_beans
, так далее ...
Так что случилось с jelly_beans
? Грубо говоря, переменные, которые используются внутри функции, доступны только в себе. Рассматривайте их как промежуточные значения, которые отбрасываются после использования. Ознакомьтесь с правилами и областями действия.
Функция вернет некоторые значения, которые мы теперь сохраняем в других переменных.
Функции могут быть очень полезными, когда вам нужно что-то делать повторно. Вместо того, чтобы снова и снова переписывать один и тот же код, вы можете просто вызвать функцию.
Рассмотрим, случайный сценарий:
def printNow():
print("Hiwatsup, blah blah blah ")
#some insane calculations
print("Hiwatsup, blah blah blah ")
#more random things.
Теперь, когда вы хотите, чтобы сделать все эти вещи, вам просто нужно положить printNow()
. Вам не нужно повторять все это!
Замечательно, что вы изучаете Python, но это действительно неспецифический вопрос ... если у вас есть вопросы о трудностях с конкретными примерами кода, которые были бы лучше. – jumbopap
Какую часть функции вы не понимаете? –
Итак, ваш вопрос в основном: как работают функции? Кажется немного шире. Пожалуйста, сузите его до какой части функций вы не понимаете. –