Optional Arguments MUST Use Keywords (Python3)

See the original posting on DZone Python

Imagine that you are developing software for a big shipping company (why would you imagine a small one anyway), and you got a task to create a function for calculating a charge for ships based on their cargo weight. Easy breezy:

    ( 10, 10.55),
    (  5, 5.05),
    (  2, 3.35),
    (  0, 1.25)

def shipping_charge(weight):
    if weight < 0:
        raise ValueError("Can't calculate shipping charge of negative weights")
    for min_weight, rate in WEIGHT_RATES:
        if weight > min_weight:
            return weight * rate

Simple enough.