Build an Apply Discount Function - Build an Apply Discount Function

Tell us what’s happening:

Hello, I’ve finished my lab test, but I want to know why it runs an error when I declare the two variables input inside the function block code. Could anyone please explain or indicate an article for me to comprehend it?

Your code so far

def apply_discount(price, discount):

    price = input('Price: ')

    discount = input('Discount: ')

    if not (isinstance(price, (int, float))):
        return 'The price should be a number'

    elif not (isinstance(discount, (int, float))):
        return 'The discount should be a number'
    
    elif price <= 0:
        return 'The price should be greater than 0'
    
    elif 0 > discount or discount > 100:
        return 'The discount should be between 0 and 100'

    calc = price - (price*discount/100)
    print(calc)
    return calc

apply_discount(100, 20)


Your browser information:

User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36

Challenge Information:

Build an Apply Discount Function - Build an Apply Discount Function

GitHub Link: freeCodeCamp/curriculum/challenges/english/blocks/lab-discount-calculator/695774002591bbc5f8cf3e53.md at main · freeCodeCamp/freeCodeCamp · GitHub

Hi @guilhermesbarb

Why are you using the input function?

Happy coding

input is waiting for user input, when you run the tests there is no user to give that input

the function should get the value of price and input when it is called
like here

not using input

Hi, I was trying to make it ask for the user to tell the values.

What should I do for it to work with values I give to it through the terminal?

Give it values by the function call like this:

apply_discount(100, 20)

Like this example https://www.freecodecamp.org/learn/python-v9/lecture-understanding-functions-and-scope/how-do-functions-work-in-python

calculate_sum(3, 1) # 4

The values are passed as arguments to the function.

Don’t do anything that isn’t in the instructions.

Hi @guilhermesbarb,

When you get to the “ISBN Validator” challenge, you’ll be able to see an example of how input is used to capture values entered by the user. But this challenge expects the values to be passed in as arguments when you call the function.

Happy coding

Thanks for helping, dhess!

you can’t for the tests, once you pass the tests will free to experiment this way tho