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():
totalpr=0
global amount_paid
global amount_sold
global profit_loss
global commission_paid_sale
global commission_paid_purchase
global totalpr
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'))
最後のコード行は問題を示しています。 "totalpr"の表示は、例えば3つの入力株の実行集計ではありません。それは単に再現された利益の損失です。誰かが株価データを入力することを何度も決めている間に、それを正確に表示するにはどうすればよいですか?それが動作する方法:誰かが '-999'というセンチネルを入力すると、プログラムはすべてのインスタンスからすべてのprofit_lossを集めて出力します。それでおしまい。合計が正しく印刷されない
スタート(CALC 'の先頭に' totalpr = 0 'を設定しないことになる) '... –
はありませんwork.'totalpr = 0'は 'calc()'の先頭か 'global totarpr'の直後にあります – Gamification
' calc'が呼ばれるたびに 'totalpr'をリセットしています... – MisterMiyagi