Using 'def' statement for defining a function is the corner store of a majority of programs in Python. To group a set of statements, programmers use functions, and they can be run more than once in a program. They act like a pack of instructions that is invoked by a name.
What are the Functions in Python?
In simple words, Python functions are techniques used to combine a set of statements within a program. Functions also let programmers compute a result-value and give parameters that serve as function inputs that may change each time the code runs. Functions prove to be a useful tool when the operations are coded in it and can be used in a variety of scenarios.
Functions are an alternative method of cutting-and-pasting codes, rather than typing redundant copies of the same instruction or operation; which further reduces the future work for programmers. They are the most basic structure of a program, and so Python provides this technique for code re-use.
Let's make a program using a function to make the average of any quantity of number.
def avrg(first, *rests): return (first + sum(rests)) / (1 + len(rests)) # Sample use, Putting values print (avrg(1, 2)) print (avrg(1, 2, 3)) print (avrg(1,2,3,4))
1.5 2.0 2.5
The keyword 'def' introduce a function definition. The statements that form the body of the function starts from the next line of function definition and needs indentation. The execution of the function introduces a new symbol table that is used for function's local variable. In other words, all the variables that are assigned to the function store their value in the local symbol table. So global variables cannot be assigned with a value within a function; unless it is named under 'global' statement. To accept any number of keyword arguments, the arguments have to start with *. A * argument can appear only in the last position of function's argument. A fine concept of a function definition is that arguments can still appear after the * argument.
def g(a, *arg, b):
Such arguments are known as a keyword-only argument.
Python Program For Calculates The Fibonacci Series By Using Function.
def fibo(n): a = 0 b = 1 for i in range(0, n): temp = a a = b b = temp + b return a # Show the first 13 Fibonacci numbers. for c in range(0, 13): print(fibo(c)) #Function call
0 1 1 2 3 5 8 13 21 34 55 89 144
If you compare with other programming languages, you might notice that 'fibo' is not a function, rather it's a procedure that is a function that doesn't return a value. It has to be kept in mind that every function without a return statement does return a value which is called 'none'; which normally gets suppressed by the interpreter.
Functions can be called in different ways.
- Providing the mandatory argument only
- Providing one of the optional argument
- By giving all the arguments
- Call Expression: myfun ('karl', 'os', *rest)
- def : def display(message):
print ('Hi' + message)
- return : def sum(a, b=2)
- global : x = 'hello'
global x; x='hi'
- nonlocal : def outer():
a = 'old'
nonlocal a; a = 'new'
- yield : def sq(k)
for I in range(k): yield i**2
Advantages Of Python Functions
- Maximizing code reusability
- Minimizing redundancy
- Procedural decomposition
- Make programs simpler to read and understand
Python Program That Returns Multiple Values From Function
To return multiple values, we can use normal values or simply return a tuple.
def karlos(): return 1, 2, 3 a, b, c = karlos() print (a) print (b) print (c)
1 2 3