2016-09-23 8 views
0
#Fiery Elsa 
#ID:899525 
#Homework 2, Program 2 


#Initialization 
count=0 
name=input("Enter stock name OR -999 to Quit:") 

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


#Calculations 
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) 

#Output 
print("Stock 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')) 

-999を押すとプログラムがループしますが、出力は出力されません。私は間違って何をしていますか?whileループをキックアウトできません。

プログラムは、理想的には、ユーザーが完了するまでユーザーが何度でも入力できるようにする必要があります。例えば、3組の入力があり、3組の出力が得られます。

+0

'name'のは' int'ことはありません、あなたは '文字列に対してチェックする必要がある「-999'' – AChampion

+0

@AChampion私は『やめる』を試みたが、それはどちらか動作しませんでした –

+1

ができ」あなたのエラーを複製します... "-999"に変更すると、私のためにループが正常終了します( '' quit''も同様です)。 – AChampion

答えて

0

nameのタイプはstringですが、これはタイプint-999と比較しているようです。

ループを変更してname != "-999"にすると、比較が機能します。あなたが望むように動作するようにコードをもう一度リファクタリングする必要がありますが、これは良いスタートでなければなりません:)

+0

私はあなたの推薦を反映するために比較を変更しましたが、それでも私を蹴るわけではありません。それは企業名として "-999"と読みます。 –

+0

改行文字と入力値を取得している場合は、name.split()を比較してみることができますか? –

+0

-999は出力をポストしない - 別の入力を受け取り、出力を投稿する –

0

各入力後に名前の値を評価する必要があります。

stock_name = [] # make a list for stock name 
shares = [] # change also all other input variables into list type 

while True: # this will allow you to loop the input part 
    name = input() 
    if name != '-999': # this will evaluate the value of name 
     stock_name.append(name) # this will add your latest name input to the list 
     # Do the same to your other inputs 
    else: 
     break # exit your while loop 

# you need another loop here to do calculations and output 
# I think this is where your count variable should go to index your lists 
+0

私はそれを試みたが、株価は "-999" –

+0

name変数は前のデータを上書きします。リストタイプに変更する必要があります。 – CpK

0
while name!="-999": #try this one 
    count=count+1 
    name=input("Enter stock name OR -999 to Quit:") 
    shares=int(input("Enter number of shares:")) 
    pp=float(input("Enter purchase price:")) 
    sp=float(input("Enter selling price:")) 
    commission=float(input("Enter commission:")) 
関連する問題