Python Basics 102: Introduction to Python Functions.

Hello world, In the previous post i introduced you to Python programming language, a high level language.
In this second post I am going to be taking you through python Functions.
Python Functions
everything we do comprises of a function somewhere.
So, what are functions in python!
  • A function is a block of code that has statements that perform a specified task.
  • They help in breaking down a program when it grows big.
  • Functions minimize the repetition of code, hence they're reusable.
  • Let us define a function:
    We use the def keyword to define a function:
    # define a function that says Hi.
    def greet():
        print("Hello")
    
    #calling the function
    greet()
    #prints> Hello
    🤯 Awesome!
    # structure of a function
    def function_name(paramters):
        """docstring"""
        statement(s)
    A python function consists of the following:
  • the def keyword, marks the beginning of a function
  • A function name to identify the purpose of the function, Function names follow the same guide rules of pep8 naming conventions.
  • parameters to which values to our functions.
  • A colon (:) to mark the end of a function definition.
  • In the body start with a """docstring""", to explain what the function does.
  • One or more valid python statements that make up the function body.
  • The return(optional) statement that returns a value to the function.
  • Python Function Arguments
    Functions takes variables as arguments.
    Ways of defining arguments; using default, keyword and arbitrary arguments.
    Defining functions with parameters. Parameters are identifiers in the function definition parentheses
    #function parameters
    def greet(name, msg):
      print(f"Hello {name}, {msg}")
    
    #call the function with the arguments
    greet('Mark', 'Good Evening')
    #prints> Hello Mark Good Evening
    Here, the function greet() has two parameters name, msg
    When the function is called, the two parameters are passed as arguments.
    Variable Function Arguments
    A function can take a variable number of arguments.
  • Function Default Arguments
  • def greetings(name, msg="How are you?"):
        print(f"Hello, {name} {msg}")
    
    #positional arguments.
    greetings('Asha')
    #> Hello, Asha How are you?
    Even if we call the function with just one argument, it will complete smoothly without an error unlike in the previous function.
    When an argument for msg is provided in function call, it will overwrite the default argument.
    Python Keyword Arguments
    When a function is called with values, they get assigned to their specific positions.
    But this can be changed when calling a function, the order can be altered with keywords, like in the above function we could call it like this:
    #keyword arguments in order
    greetings(name="fast furious", msg="is out!")
    
    #keyword arguments out of order
    greetings(msg="is out!", name="Vin")
    Well give it a try, everythings works just fine.
    Python Arbitrary Arguments
    At times you might not know the number of arguments to be passed in a function.
    In situations like this, python allows the use of an asterisk (*) to denote arguments. example:
    def greet(*names):
    
       for name in names:
           print(f"Hello {name}.")
    
    greet('juma', 'larry', 'lilian')
    #> Hello juma.
    #> Hello larry.
    #> Hello lilian.
    Python Recursion
    Recusion with python functions.
    A repeated procedure can be reffered to as a Recursion.
    A recursive function, is a function that calls itself.
    def recurse():
        #statements
        recurse() #recursive call
    
    recurse()
    An example:
    #finding the factorial of a number
    def factor(x):
      """
      this function finds the factorial of a given number
      factorial number is the product of a 
      number starting from 1 to that number itself
      """
      if x == 1:
        return 1
      else:
        return (x * factor(x-1))
    
    
    num = 3
    print(f"factorial is:  {factor(num)}")
    Pros of Recursion Functions
  • Makes code look clean and elegant.
  • Breakdown of complex tasks into smaller sub-tasks.
  • Sequencing is easier compared to nested iteration.
  • Cons
  • They are difficult to debug.
  • Recursive calls take alot of memory and time.
  • Hard to read or follow.
  • Anonymous Functions
    An anonymous function is a function that has no name.
    They are also called lambda functions.
    Defining a lambda function:
    #syntax:
    lambda arguments: expression
    They can have multiple arguments but only one expression.
    working example:
    #sum of numbers
    sum = lambda x: x+2
    print(sum(2))
    #> 2+2= 4
    
    #multiple args
    product = lambda x, y: x*y
    print(product(2, 6))
    #> 2*6 = 12
    Lambda functions are used when a nameless function is required for a short period of time.
    They are best used with in-built functions, filter() & map().Read more
    That's it for now, Hope you enjoyed reading this article.
    let us learn python!!
    Be cool, Keep coding.

    24

    This website collects cookies to deliver better user experience

    Python Basics 102: Introduction to Python Functions.