Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
.idea/
2 changes: 1 addition & 1 deletion 11-pass.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Python `pass`

**Video link:**
**Video link:** [https://youtu.be/n4B3zYfk_Pg](https://youtu.be/n4B3zYfk_Pg)

In this video, we learned about the `pass` statement in Python.

Expand Down
288 changes: 288 additions & 0 deletions 12-function.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,288 @@
# Python Functions

**Video link:**

In this video, we learned about Python functions that make our program more organized and manageable by dividing our code into smaller and modular chunks.

**Programs in the Video**

- [Python Functions](#python-functions-1)
- [Function Arguments](#function-arguments)
- [Passing Multiple Arguments](#passing-multiple-arguments)
- [Return Value from Function](#return-value-from-function)
- [**Example**: Grading Students](#example)
- [**Task**: Function to Add and Multiply](#programming-task)

---
## Python Functions
A function is a group of related statements that performs a specific task.

For example,

```python
def greet():
print("Hello")
print("How do you do?")
```
Here, we have defined a function named `greet`.

To create a function, we use the `def` keyword followed by the function name, parenthesis `()`, and a colon `:`.
The body of the function is specified using indentation.

When we run the program, we don't see any output.

It is because defining a function won't do anything. To bring the function into action, we need to call it.

```python
def greet():
print("Hello")
print("How do you do?")

greet()
```

**Output**

```
Hello
How do you do?
```

One advantage of defining a function is that we can call it any number of times.

```python
def greet():
print("Hello")
print("How do you do?")

greet()
greet()
greet()
```

**Output**

```
Hello
How do you do?
Hello
How do you do?
Hello
How do you do?
```

Also, we need to define a function first before we can call it.

The following code gives an error:

```python
# function call
greet()

# function definition
def greet():
print("Hello")
print("How do you do?")
```

When the `greet()` function is called, Python doesn't know that this function exists because it's defined after the function call.

---

## Function Arguments

Suppose we want to make our `greet()` function a bit more personal.

Instead of printing `Hello`, we want to print something like `Hello Jack` or whatever the person's name is.

For this, we can use function arguments:

```python
def greet(name):
print("Hello", name)
print("How do you do?")

greet("Jack")
```
**Output**

```
Hello Jack
How do you do?
```

Function arguments are passed inside the parenthesis during the function call.

It can then be accessed using the `name` parameter in the function definition.

---

## Passing Multiple Arguments

If we need to pass multiple arguments to a function, we can separate them by commas.

Let's create a function to add two numbers.

```python
def add_numbers(n1, n2):
result = n1 + n2
print("The sum is", result)


number1 = 5.4
number2 = 6.7
add_numbers(number1, number2)

```

**Output**

```
The sum is 12.100000000000001
```
We have passed `number1` and `number2` as arguments to the `add_numbers()` function.
These arguments are accepted as `n1` and `n2` once they are passed to the `add_numbers()` function.

>**Note:** We get this number instead of 12.1 because of floating-point representation error in Python.

---

## Return Value from Function

```python
def add_numbers(n1, n2):
result = n1 + n2
print("The sum is", result)


add_numbers(5.4, 6.7)
```
Sometimes it's better just to find the sum inside the function and print the result somewhere else.

We can achieve that by using the `return` statement.

```python
def add_numbers(n1, n2):
result = n1 + n2
return result

result = add_numbers(5.4, 6.7)
print("The sum is", result)
```

**Output**

```
The sum is 12.100000000000001
```

---

## Types of functions

There are two types of functions:

- **Built-in functions** - Functions that are built into Python.
- **User-defined functions** - Functions defined by the users themselves.

Some built-in functions:

|Function|Description|
|---|---|
|`float()`|converts to decimal number and returns it|
|`int()`|converts to integer and returns it|
|`input()`|function to take input from the user|

---

## Example

#### Grading Student Based on Marks Obtained by Making Functions

Suppose you just attended a University examination. The marks you obtained in various subjects are stored in a list like this:

```python
marks = [55, 64, 75, 80, 65]
```

**You want to find the average marks you obtained in the exam.**

**Based on the average marks you want to find your grade as:**

- **You will get Grade A if the average marks is equal to or above 80**
- **You will get Grade B if the average marks is equal to or above 60 and less than 80**
- **You will get Grade C if the average marks is equal to or above 50 and less than 60**
- **And if the average marks is less than 50, you will get Grade F**

```python
# find the average marks and return it
def find_average_marks(marks):
sum_of_marks = sum(marks)
number_of_subjects = len(marks)

average_marks = sum_of_marks/number_of_subjects

return average_marks

# compute grade and return it
def compute_grade(average_marks):
if average_marks >= 80.0:
grade = 'A'
elif average_marks >= 60:
grade = 'B'
elif average_marks >= 50:
grade = 'C'
else:
grade = 'F'

return grade

marks = [55, 64, 75, 80, 65]
average_marks = find_average_marks(marks)
grade =compute_grade(average_marks)

print("Your average marks is", average_marks)
print("Your grade is", grade)
```

**Output**
```
Your average marks is 67.8
Your grade is B
```

---

## Programming Task

**Can you create a program to add and multiply two numbers?**

**For this, create two functions `add_numbers()` and `multiply_numbers()`.
These functions should compute the result and return them to the function call and should print from outside the function.**


```python
# function to add two numbers
def add_numbers(num1, num2):
return num1 + num2

# function to multiply two numbers
def multiply_numbers(num1, num2):
return num1 * num2

number1 = 5
number2 = 30

num_sum = add_numbers(number1, number2)
print("Sum is", num_sum)

num_product = multiply_numbers(number1, number2)
print("Product is", num_product)
```

**Output**

```
Sum is 35
Product is 150
```