Default and keyword arguments

Python intermedio per sviluppatori

Jasmin Ludolf

Senior Data Science Content Developer

Average

# Create a custom function
def average(values):
    # Calculate the average
    average_value = sum(values) / len(values)

    # Round the results
    rounded_average = round(average_value, 2)

    # Return rounded_average as an output
    return rounded_average
  • values = Argument
Python intermedio per sviluppatori

Arguments

  • Values provided to a function or method
    • Positional
    • Keyword
Python intermedio per sviluppatori

Positional arguments

  • Provide arguments in order, separated by commas
# Round pi to 2 digits
print(round(3.1415926535, 2))
3.14
Python intermedio per sviluppatori

Keyword arguments

  • Provide arguments by assigning values to keywords

  • Useful for interpretation and tracking arguments

# Round pi to 2 digits 
print(round(number=3.1415926535
Python intermedio per sviluppatori

Keyword arguments

  • Provide arguments by assigning values to keywords

  • Useful for interpretation and tracking arguments

# Round pi to 2 digits 
print(round(number=3.1415926535, ndigits=2))
3.14
Python intermedio per sviluppatori

Identifying keyword arguments

# Get more information about the help function
print(help(round))
Help on built-in function round in module builtins:

round(number, ndigits=None)
    Round a number to a given precision in decimal digits.

    The return value is an integer if ndigits is omitted or None.  Otherwise,
    the return value has the same type as the number.  ndigits may be negative.
Python intermedio per sviluppatori

Keyword arguments

Help on built-in function round in module builtins:

round(number, ndigits=None)
  Round a number to a given precision in decimal digits.

  The return value is an integer if ndigits is omitted or None. Otherwise 
  the return value has the same type as the number. ndigits may be negative.

$$

  • First argument: number
  • Second argument: ndigits
Python intermedio per sviluppatori

Default arguments

Help on built-in function round in module builtins:

round(number, ndigits=None)
    Round a number to a given precision in decimal digits.

    The return value is an integer if ndigits is omitted or None.  Otherwise,
    the return value has the same type as the number.  ndigits may be negative.
  • None = no value / empty

  • Default argument: way of setting a default value for an argument

  • We overwrite None to 2

  • Commonly used value - set it using a default argument

Python intermedio per sviluppatori

Adding an argument

# Create a custom function
def average(values):
    average_value = sum(values) / len(values)
    rounded_average = round(average_value, 2)
    return rounded_average
Python intermedio per sviluppatori

Adding an argument

# Create a custom function
def average(values, rounded=False):


Python intermedio per sviluppatori

Adding an argument

# Create a custom function
def average(values, rounded=False):

# Round average to two decimal places if rounded is True if rounded == True:
average_value = sum(values) / len(values) rounded_average = round(average_value, 2) return rounded_average
Python intermedio per sviluppatori

Adding an argument

# Create a custom function
def average(values, rounded=False):

# Round average to two decimal places if rounded is True if rounded == True: average_value = sum(values) / len(values) rounded_average = round(average_value, 2) return rounded_average
# Otherwise, don't round else: average_value = sum(values) / len(values) return average_value
Python intermedio per sviluppatori

Using the modified average() function

# List of preparation times (minutes)
preparation_times = [19.23, 15.67, 48.57, 23.45, 12.06, 34.56, 45.67]
Python intermedio per sviluppatori

Using the modified average() function

# Get the average without rounding
print(average(preparation_times, False))
28.4585714
# Get the average without rounding
print(average(preparation_times))
28.4585714
Python intermedio per sviluppatori

Using the modified average() function

# Get the rounded average
print(average(values=preparation_times, rounded=True))
28.46
Python intermedio per sviluppatori

Let's practice!

Python intermedio per sviluppatori

Preparing Video For Download...