Python Function Optional Argument

Python Function Optional Argument

In Python, you can define functions that accept optional arguments, also known as default arguments.

These are arguments that have a default value assigned to them.

So if the caller does not provide a value for that argument, the default value is used instead.

What is the syntax for optional arguments?

The syntax for the functions with optional arguments is pretty much similar to normal functions.

The only difference is that now there should be some optional arguments defined along with required arguments.

def function_name(required_argument, optional_argument = value){
    #body of the function

Keep one thing in mind regarding Python functions with optional arguments.

The optional argument must come after the required argument.

Here’s an example of a function with an optional argument:

Python Function With Optional Argument

def greet(name, greeting="Hello"):
    print(greeting + ", " + name)

greet("Mary", "Hi")


Hello, John
Hi, Mary

In this example, the greet() function takes two arguments name and greeting.

The greeting argument is optional, and has a default value of “Hello”.

This means that if the caller does not provide a value for greeting,

the function will use “Hello” as the default value.

In the first call to greet(), we only provide a value for the name.

So the function uses the default value of “Hello” for greeting.

In the second call, we provide values for both name and greeting.

So the function uses the provided value of “Hi” for greeting.

If you have both optional and required arguments in a function, the required arguments must come before the optional arguments.

Here are some more example programs to illustrate the concept.

1: Python function to repeat string with optional argument

repeat_string() repeats a given string a specified number of times.

The number of times to repeat is optional and defaults to 3.

def repeat_string(string, times=3):
    return string * times

result = repeat_string("Python Mania\n")


Python Mania
Python Mania
Python Mania

2: Python function to join a list of strings to one string

join_strings() joins a list of strings into a single string, with an optional delimiter.

A delimiter is one or more characters that separate text strings.

The delimiter defaults to an empty string.

def join_strings(strings, delimiter=" "):
    return delimiter.join(strings)

list = ["I", "Love", "Python", "Mania!"]
result = join_strings(list)


I Love Python Mania!

Now, let’s pass the comma as a delimiter.

result = join_strings(list, ",")



3: Python function to get the current time with optional argument

get_current_time() returns the current time as a string, with an optional format.

The format defaults to “%H:%M:%S”.

from datetime import datetime

def get_current_time(format="%H:%M:%S"):

time = get_current_time()



You can change the format by passing the required format as an argument to the get_current_time().

Was this helpful?

Related Articles:

Recent Articles:

0 0 votes
Article Rating
Notify of
Inline Feedbacks
View all comments
Would love your thoughts, please comment.x