Python Basics- loops and functions
Code effortlessly
This post is regarding loops and basic functions in python. Any python programmer should be aware of these concepts.
There is difference between solving a use case and solving it with an elegant code. The word elegant here refers to a code which is simple, less number of lines, properly structured and has high maintainability. The concepts discussed in this post will help you achieve just that.
- Loops: Consider a situation where a coder has to repeat a set of code block a number of times, in such cases loops are very efficient. To understand this better let us take an example: we have to print square of first five natural numbers.
One might write:
print(1**2)
print(2**2)
print(3**2)
print(4**2)
print(5**2)

A bad coder : Although the requirement is fulfilled but if anything changes in requirement (believe me it happens all the time) there will be a huge change that should go into the code.
Another solution could be:
for num in range(5):
print((num+1)**2)

A smart coder: Again the requirement has been achieved with less number of lines. If the problem statement changes to 7 natural numbers, only a single number has to be changed in the code (higher maintainability).In the for loop : num is variable which is iterating over a sequence generated by python built in range function.
Another smart coder: A different approach would be to use a while loop.
Note :-A while loop is preferred when there a need to repeat a section of code an unknown number of times until a specific condition is met. Without a termination condition while loop will run for eternity.
num = 1
while num <=5: # num<=5 is the termination condition
print(num**2)
num += 1

2. Functions:
Now, if the problem statement changes and demands that we need the code to be more generic. If there are two users A and B both want to print square of natural number but A wants for 5 and B wants for 10. We cant always change the main code for satisfying the need of different users.
Such a situation demands a use of a function.
def square_n_num(n):
for i in range(n):
print((i+1)**2)
square_n_num(5)
Here, we have a defined a function square_n_num which takes a single input or we can say has a single parameter n.
If A wants to print a square of 5 natural number or B to print 10 or C to print 20, all they need to change the parameter while calling the function.
Another example for function could be:
def say_hello(name):
return "Hello {}".format(name)
print(say_hello('John'))

I hope this post helped you in learning basic concept of loops and functions.
That’s all.