回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我对我正在做的一些家庭作业的程序有意见。我的程序中有多个while循环,第一个循环之后的循环似乎导致第一个循环重新打印用户输入的数据。你知道吗</p>
<pre><code>repeat = 'y'
p = 'y'
b = 'y'
s = 'y'
while repeat != 'n':
while p == 'y':
stocksPurchased = float(input("Number of stocks purchased: "))
if stocksPurchased < 0:
print("Negative Values are not allowed. Please re-enter.")
else:
p = 'n'
while b == 'y':
pricePerStockBought = float(input("Amount per stock purchased in $: "))
if pricePerStockBought < 0:
print("Negative Values are not allowed. Please re-enter.")
else:
b = 'n'
while c == 'y':
commissionWhole = float(input("Commission Rate as a percent %: "))
if commissionWhole < 0:
print("Negative Values are not allowed. Please re-enter.")
else:
c = 'n'
while s == 'y':
pricePerStockSold = float(input("Amount per stock sold in $: "))
if pricePerStockSold < 0:
print("Negative Values are not allowed. Please re-enter.")
else:
s = 'n'
commissionRate = commissionWhole/100
grossPurchasePrice = stocksPurchased*pricePerStockBought
purchaseCommission = grossPurchasePrice*commissionRate
totalPurchasePrice = grossPurchasePrice+purchaseCommission
grossSalesPrice = stocksPurchased*pricePerStockSold
saleCommission = grossSalesPrice*commissionRate
netSalePrice = grossSalesPrice-saleCommission
totalCommissionPaid = purchaseCommission+saleCommission
profit = netSalePrice-totalPurchasePrice
profitPercentage = (profit/grossPurchasePrice)*100
print("Commission Fee paid after buying: $", format(purchaseCommission, ',.2f'))
print("Amount stock sold for: $", format(grossSalesPrice, ',.2f'))
print("Commission Fee paid after selling: $", format(saleCommission, ',.2f'))
print("Total Commission Paid: $", format(totalCommissionPaid, ',.2f'))
print("Total Profit made: $", format(profit, ',.2f'))
print("Profit Percentage: %", format(profitPercentage, ',.1f'))
if profitPercentage >= 8:
print("Congrats! You beat the index fund!")
elif 0 <= profitPercentage < 8:
print("Well, you still made money")
elif profitPercentage == 0:
print("Nothing gained, nothing lost")
else:
print("Perhaps the stock market isn't for you")
if totalCommissionPaid > profit:
print("Seems you should either pick different stocks, or find a cheaper broker")
repeat = input("Would you like to go again y/n?: ")
</code></pre>
<p>如果我在这里输入<code>y</code>,程序会重复,但不会重新提示输入数字,而是重新打印上一次运行的数据。你知道吗</p>
<p>例如,如果我分别输入数字:<code>1000, 10, 5, 15</code>,它只会重新打印以前的数字。你知道吗</p>
<p><img src="https://i.stack.imgur.com/4DKVo.png" alt="Example of the issue I am having"/></p>