Q:

contradictory output while calling two defined functions at one time

Stuck up in confusion!! observe this function first:
def tax(amt):
    if amt < 241:
        r = 0
    elif amt < 481:
        r = amt * 0.15
    else:
        r = amt * 0.28
    return r

def net(amt):
    return amt - tax(amt)

now when i call these only one function at one time like given below, then the output comes out successfully without any error: 
print('enter The Grosspay')
r = int(raw_input())
net_pay = net(r)
print(net_pay)

But when i call both function together like given below then the error pops up with a message that "float object is not callable"
print('enter The Grosspay')
r = int(raw_input())
tax = tax(r)
net_pay = net(r)
print("tax: " + str(tax) + "\t" + "net payment: " + str(net_pay))

A:

You can't have the same name represent both the function and the float. 
This line creates the global name tax and binds it to a function:
def tax(amt):

This line creates the global name tax and binds it to a float:
tax=tax(r)

This second binding (to float) destroys the first binding (to a function). Later, when net calls tax(), you'll get the error "float object is not callable".
Solution: Give your functions and your variables different names.

