Build a Discount Calculator - Build a Discount Calculator

Tell us what’s happening:

I am having trouble with steps 7-11. On each steps, the lab is asking me to display the functions but in the terminal it shows the output. Please help.

Your code so far

def apply_discount(price, discount):

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

apply_discount(100,20)
apply_discount(200,50)
apply_discount(50,0)
apply_discount(5,100)
apply_discount(74.5,20)

Your browser information:

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

Challenge Information:

Build a Discount Calculator - Build a Discount Calculator

  1. The function should return the final price after applying the discount.

Does your code meet this requirement?

I think so…

Are you sure? Looks to me like it’s just printing the final price.

I am not sure what I am missing.

Please post code and not a screenshot.

What happens when you run the tests?

It still shows says that steps 7 - 11 is incorrect.

def apply_discount(price, discount):
if not isinstance(price,(int,float)):
    return('The price should be a number')
elif price <=0:
    return('The price should be greater than 0')
elif not isinstance(discount, (int,float)):
    return('The discount should be a number')
elif (discount < 0 or discount >100):
    return('The discount should be between 0 and 100')
    
print('Price:', price, 'Discount amount:', discount, 'Final price:', price*(1-discount/100))

apply_discount(100,20)
apply_discount(200,50)
apply_discount(50,0)
apply_discount(5,100)
apply_discount(74.5,20)

Here are some debugging steps you can follow. Focus on one test at a time:

  1. Are there any errors or messages in the console?
  2. What is the requirement of the failing test?
  3. Check the related User Story and ensure it’s followed precisely.
  4. What line of code implements this?
  5. What is the result of the code and does it match the requirement? (Write the value of a variable to the console at that point in the code if needed.)

If this does not help you solve the problem, please reply with answers to these questions.

Can you share your code again with the correct indentation? Important for python.
When you enter a code block into a forum post, please precede it with three backticks to make it easier to read.

You can also use the “preformatted text” tool in the editor (</>) to add the backticks.

See this post to find the backtick on your keyboard.
Note: Backticks (`) are not single quotes (').

I followed the reformatted text and it is different from what you have posted. Let me know if this worked out for you.

As for the debugging steps, I still need help. Am I calling the function correctly?

def apply_discount(price, discount):

    if not isinstance(price,(int,float)):
        return('The price should be a number')
    elif price <=0:
        return('The price should be greater than 0')
    elif not isinstance(discount, (int,float)):
        return('The discount should be a number')
    elif (discount < 0 or discount >100):
        return('The discount should be between 0 and 100')
        
    print('Price:', price, 'Discount amount:', discount, 'Final price:', price*(1-discount/100))
    

apply_discount(100,20)
apply_discount(200,50)
apply_discount(50,0)
apply_discount(5,100)
apply_discount(74.5,20)

Yes and no. You need to call it and print the result if you want to see it.

print(apply_discount(100,20))

Review this user story and ensure its implemented as described.

  1. The function should return the final price after applying the discount.

Return not print.

1 Like

I have tried that and the terminal does not display the function output. It shows blank.

I have tried:

return print(‘Price:’, price, ‘Discount amount:’, discount, ‘Final price:’, price*(1-discount/100))

return(‘Price:’, price, ‘Discount amount:’, discount, ‘Final price:’, price*(1-discount/100))

and,

return ‘Price:’, price, ‘Discount amount:’, discount, ‘Final price:’, price*(1-discount/100)

I figure it out I needed to print the function. Thank you!

1 Like