python - Why is this returning an extra none? -
def hotel_cost(nights): return nights * 140 bill = hotel_cost(5) def add_monthly_interest(balance): return balance * (1 + (0.15 / 12)) def make_payment(payment, balance): new_balance2 = balance - payment new_balance = add_monthly_interest(new_balance2) print "you still owe: " + str(new_balance) make_payment(100,bill)
why return
you still owe: 607.5 none
?
it doesn't return that. returns none
, because that's function returns if don't have return statement.
meanwhile, prints out "you still owe: 607.5", because that's what's in print statement.
(by "it" here, i'm assuming you're referring function call make_payment(100, bill)
.)
my guess you're running inside ide or other interactive session that's printing out return value of each statement. so, code prints "you still owe: 607.5", , interactive interpreter prints "none".
the default python
interactive interpreter (like ipython
, bpython
, many others) swallow none
returns instead of printing them out. whichever 1 you're using presumably doesn't that.
Comments
Post a Comment