Python - Program is returning None?

Viewed 32
def tax(price):
    tax = None
    # YOUR CODE GOES HERE
    def tax(price):
        tax = None
    
        if price > 100000 :
            tax = (float(price * 20 / 100))
        elif price > 75000 and price <= 100000 :
            tax = (float(price * 15 / 100))
        elif price > 50000 and price <= 75000 :
            tax = (float(price * 10 / 100))
        else:
            tax = (float(price * 5 / 100))
        return tax

price = int(input())

print(tax(price))
1 Answers

You have a function called tax within the outer function called tax. The outer function returns nothing and the inner one is never called.
Remove the outer one to get the desired behaviour:

def calculate_tax(price):
    if price > 100000 :
        tax = (float(price * 20 / 100))
    elif price > 75000 and price <= 100000 :
        tax = (float(price * 15 / 100))
    elif price > 50000 and price <= 75000 :
        tax = (float(price * 10 / 100))
    else:
        tax = (float(price * 5 / 100))
    return tax

price = int(input())
print(calculate_tax(price))
Related