Thursday, 15 February 2024

Python Learning Session-04 - Functions

 Function Calls

 

In the context of programming, a function is a named sequence of statements that

performs a computation. When you define a function, you specify the name and

the sequence of statements. Later, you can “call” the function by name. We have

already seen one example of a function call:

 

>>> type(32)

<class 'int'>

 

The name of the function is type. The expression in parentheses is called the

argument of the function. The argument is a value or variable that we are passing

into the function as input to the function. The result, for the type function, is the

type of the argument.

It is common to say that a function “takes” an argument and “returns” a result.

The result is called the return value.

Use Case Diagram of Function for more understanding of the function




 

Python provides a number of important built-in functions that we can use without

needing to provide the function definition. The creators of Python wrote a set of

functions to solve common problems and included them in Python for us to use.



Python Functions:

         In Python a function is some reusable code that takes arguments(s) as input, does some computation, and then returns a result or results

         We define a function using the def reserved word

         We call/invoke the function by using the function name, parentheses, and arguments in an expression

         There are two kinds of functions in Python.

-  Built-in functions that are provided as part of Python - print(), input(), type(), float(), int() ...

-  Functions that we define ourselves and then use

         We treat function names as “new” reserved words
(i.e., we avoid them as variable names)

 





 

Type Conversions:

         When you put an integer and floating point in an expression, the integer is implicitly converted to a float

         You can control this with the built-in functions int() and float()

 



String Conversions:

         You can also use int() and float() to convert between strings and integers

         You will get an error if the string does not contain numeric characters



Building our Own Functions:

         We create a new function using the def keyword followed by optional parameters in parentheses

         We indent the body of the function

         This defines the function but does not execute the body of the function



Definitions and Uses:

         Once we have defined a function, we can call (or invoke) it
as many times as we like

         This is the store and reuse pattern

Arguments:-

         An argument is a value we pass into the function as its input when we call the function

         We use arguments so we can direct the function to do different kinds of work when we call it at different times

         We put the arguments in parentheses after the name of the function

         big = max('techshoot03')

 

 

 

 

Parameters:-

A parameter is a variable which we use in the function definition.  It is a “handle” that allows the code in the function to access the arguments for a particular function invocation.

>>> def greet(lang):

...     if lang == 'es':

...        print('Hola')

...     elif lang == 'fr':

...        print('Bonjour')

...     else:

...        print('Hello')

...

>>> greet('en')

Hello

>>> greet('es')

Hola

>>> greet('fr')

Bonjour

>>>

 

Return Values: -

Often a function will take its arguments, do some computation, and return a value to be used as the value of the function call in the calling expression.  The return keyword is used for this.

def greet():

    return "Hello"

print(greet(), "Glenn")

print(greet(), "Sally")

 

>>> def greet(lang):

...     if lang == 'es':

...         return 'Hola'

...     elif lang == 'fr':

...         return 'Bonjour'

...     else:

...         return 'Hello'

...

>>> print(greet('en'),'Glenn')

Hello Glenn

>>> print(greet('es'),'Sally')

Hola Sally

>>> print(greet('fr'),'Michael')

Bonjour Michael

>>>

 

 

Multiple Parameters / Arguments : -

         We can define more than one parameter in the function definition

         We simply add more arguments when we call the function

         We match the number and order of arguments and parameters



Void (non-fruitful) Functions:-

         When a function does not return a value, we call it a “void” function

         Functions that return values are “fruitful” functions

         Void functions are “not fruitful”

 

To function or not to function...

 

         Organize your code into “paragraphs” - capture a complete thought and “name it”

         Don’t repeat yourself - make it work once and then reuse it

         If something gets too long or complex, break it up into logical chunks and put those chunks in functions

         Make a library of common stuff that you do over and over - perhaps share this with your friends...

         Functions

         Built-In Functions

         Type conversion (int, float)

         String conversions

         Parameters

         Arguments

         Results (fruitful functions)

         Void (non-fruitful) functions

         Why use functions?


No comments: