Function not calling properly
<pre><code>def main():

    def load():
        name=0
        count=0
        totalpr=0
        name=input("Enter stock name OR -999 to Quit: ")
        while name != '-999':
            count=count+1
            shares=int(input("Enter number of shares: "))
            pp=float(input("Enter purchase price: "))
            sp=float(input("Enter selling price: "))
            commission=float(input("Enter commission: "))
            name = input("Enter stock name OR -999 to Quit: ")

    def calc():
        amount_paid=shares*pp
        commission_paid_purchase=amount_paid*commission
        amount_sold=shares*sp
        commission_paid_sale=amount_sold*commission
        profit_loss=(amount_sold - commission_paid_sale) -(amount_paid + commission_paid_purchase)
        totalpr=totalpr+profit_loss

    def print():
        print("\nStock Name:", name)
        print("Amount paid for the stock:       $",      format(amount_paid, '10,.2f'))
        print("Commission paid on the purchase: $", format(commission_paid_purchase, '10,.2f'))
        print("Amount the stock sold for:       $", format(amount_sold, '10,.2f'))
        print("Commission paid on the sale:     $", format(commission_paid_sale, '10,.2f'))
        print("Profit (or loss if negative):    $", format(profit_loss, '10,.2f'))
        print("Total Profit is $", format(totalpr, '10,.2f'))
        return main()




load() #to input the values
calc()
print()
</code></pre>

<p>I'm not sure what I'm doing wrong: </p>

<p>Should I be putting in variable names into <code>def load():</code>, <code>def calc():</code> and <code>def print():</code>? </p>

<p>As I run it now, it says <code>"load"</code> is not defined. How would I go about defining <code>load</code>? And for that matter, if I didn't define <code>def calc():</code> and <code>def print():</code> how do I define those? </p>

<p>I do properly call them at the end of the code, in the order that I'd like to call them -- <code>load</code>, <code>calc</code>, and then <code>print</code>. </p>

<p>Is my "<code>return main()</code>" the right thing to do? I don't know, I Just want this code to run properly without error that's all. I'm under the impression that I'm just missing a few things. Any help would be appreciated. </p>

<pre><code>def load():    
    global name
    global count
    global shares
    global pp
    global sp
    global commission
    name=input("Enter stock name OR -999 to Quit: ")
    count =0
    while name != '-999':
        count=count+1
        shares=int(input("Enter number of shares: "))
        pp=float(input("Enter purchase price: "))
        sp=float(input("Enter selling price: "))
        commission=float(input("Enter commission: "))
        calc()
        display()
        name=input("\nEnter stock name OR -999 to Quit: ")

def calc():
    global amount_paid
    global amount_sold
    global profit_loss
    global commission_paid_sale
    global commission_paid_purchase
    global totalpr
    totalpr=0
    amount_paid=shares*pp
    commission_paid_purchase=amount_paid*commission
    amount_sold=shares*sp
    commission_paid_sale=amount_sold*commission
    profit_loss=(amount_sold - commission_paid_sale) -(amount_paid + commission_paid_purchase)
    totalpr=totalpr+profit_loss

def display():
    print("\nStock Name:", name)
    print("Amount paid for the stock:       $",      format(amount_paid, '10,.2f'))
    print("Commission paid on the purchase: $", format(commission_paid_purchase, '10,.2f'))
    print("Amount the stock sold for:       $", format(amount_sold, '10,.2f'))
    print("Commission paid on the sale:     $", format(commission_paid_sale, '10,.2f'))
    print("Profit (or loss if negative):    $", format(profit_loss, '10,.2f'))

def main():
    load()


main()

print("\nTotal Profit is $", format(totalpr, '10,.2f'))
</code></pre>

python function python-3.x calling-convention