What is the need of function overloading, and when would you use it in practice?
Implement format_number(value, decimals=None) to demonstrate the same operation with different argument forms. With one argument, return the normal string representation. With decimals, return the number formatted to exactly that many decimal places.
Examples: format_number(12.5) returns "12.5"; format_number(12.5, 2) returns "12.50".
The input value is an integer or floating-point number. The optional decimals value is a non-negative integer.
def format_number(value, decimals=None):