Python "return" difficulties -


first, let me have done thorough research trying understand. not understand explanations others have given (which understood asked question). code have problems with:

def tax(bill):     """adds 8% tax restaurant bill."""     bill *= 1.08     print "with tax: %f" % bill     return bill  def tip(bill):     """adds 15% tip restaurant bill."""     bill *= 1.15     print "with tip: %f" % bill     return bill  meal_cost = 100 meal_with_tax = tax(meal_cost) meal_with_tip = tip(meal_with_tax) 

when delete first "return bill" , run it, first number there error when tries calculate second number. def tax(bill) takes 100 , outputs 108 right? if delete first "return bill", why def tip(bill) not doing it's calculations 108 instead of giving error?

i have problem grasping basic concepts of programming. i've been learning intensely 3 months , am. slippery subject mind grasp , appreciate help.

i believe you're misunderstanding difference between return , print statement.

in tax(bill) function, you're multiplying bill *= 1.08. print value of bill. print outputs value of bill console window -- doesn't store value or allow used other functions in way.

the return statement you're deleting returns value stored in bill, 108, caller. caller in instance meal_with_tax = tax(meal_cost). means value of meal_with_tax return value of tax(bill). when delete return bill, you're returning value of none, value of meal_with_tax none. want return bill assign value 108 meal_with_tax.

the reason tip(bill) returns error because it's attempting calculate none *= 1.15. value of bill inside tip(bill) not 108 think.


Comments

Popular posts from this blog

javascript - Chart.js (Radar Chart) different scaleLineColor for each scaleLine -

apache - Error with PHP mail(): Multiple or malformed newlines found in additional_header -

java - Android – MapFragment overlay button shadow, just like MyLocation button -