# Python Coding challenge - Day 159 | What is the output of the following Python Code?

### Code:

def bar(a, b=2, c=3):

print(a, b, c)

bar(1)

bar(1, 4)

bar(1, c=5)

### Solution and Explanation:

let's go through each function call:

bar(1):

Here, only one argument a is passed, so a takes the value 1.

Since b and c have default values specified in the function definition (b=2 and c=3), they will take those values.

So, the output will be 1 2 3.

bar(1, 4):

Here, two arguments a and b are passed, so a takes the value 1 and b takes the value 4.

Since c has a default value specified, it will take that default value.

So, the output will be 1 4 3.

bar(1, c=5):

Here, two arguments a and c are passed, so a takes the value 1 and c takes the value 5.

Since b has a default value specified, it will take that default value.

So, the output will be 1 2 5.

In Python, when calling a function, arguments are assigned based on their position, unless you explicitly specify the name of the parameter (as in the third call). In that case, the argument is matched to the parameter name regardless of position. If a parameter has a default value, it can be omitted in the function call, and the default value will be used.