[英]While Loop: how do I set (something = integer) only once during the loop
我不知道如何將費率和本金都設置為其設定的數字一次
在這個循環中,它不斷地重置 rate = 5 和 principal = 9000,但我希望循環繼續,主體不斷增加到 10,000 11,000 12,000 等。
N = 5
rate = 5
while rate <= 15:
principal = 9000
principal = principal + 1000
while principal <= 15000:
simple = principal * (1 + (rate/100) * N)
compound = principal * (1 + (rate/100)) ** N
print(str(rate) + "%", principal, simple, compound)
運行時應該如下所示:
5% $10000 $12500.00 $12762.82
5% $11000 $13750.00 $14039.10
5% $12000 $15000.00 $15315.38
5% $13000 $16250.00 $16591.66
5% $14000 $17500.00 $17867.94
5% $15000 $18750.00 $19144.22
10% $10000 $15000.00 $16105.10
10% $11000 $16500.00 $17715.61
10% $12000 $18000.00 $19326.12
10% $13000 $19500.00 $20936.63
10% $14000 $21000.00 $22547.14
10% $15000 $22500.00 $24157.65
15% $10000 $17500.00 $20113.57
15% $11000 $19250.00 $22124.93
15% $12000 $21000.00 $24136.29
15% $13000 $22750.00 $26147.64
15% $14000 $24500.00 $28159.00
15% $15000 $26250.00 $30170.36
在while loop
之外初始化速率並在第一個while
中增加它
N = 5
rate = 0
while rate < 15:
rate += 5
principal = 9000
while principal < 15000:
principal = principal + 1000
simple = principal * (1 + (rate/100) * N)
compound = principal * (1 + (rate/100)) ** N
print(str(rate) + "%", principal, simple, compound)
您需要增加 while 循環內的速率,以便它結束:
while rate <= 15:
rate += 5
謝謝大家的幫助,我明白了:)
N = 5
rate = 5
principal = 10000
while principal <= 15000:
simple = principal * (1 + (rate/100) * N)
compound = principal * (1 + (rate/100)) ** N
print(str(rate) + "%", "$" + str(principal), "$" + str(simple), "$" + str(compound))
principal += 1000
if principal >= 15001:
rate += 5
principal = 10000
if rate >= 20:
principal = 15001
使用單個for-loop
:
range(start, stop + 1, step)
顯式創建rate
和principal
列表
*
將range
解包成一個list
,與list(range(1, 5))
相同itertools.product
創建組合或rate
和principal
並使用for-loop
遍歷生成器f-string
打印(例如print(f'{variable}')
)from itertools import product
N = 5
rate = [*range(5, 16, 5)]
principal = [*range(10000, 16000, 1000)]
for v in product(rate, principal):
simple = v[1] * (1 + (v[0]/100) * N)
compound = v[1] * (1 + (v[0]/100)) ** N
print(f'{v[0]}% ${v[1]} ${simple} ${compound:0.02f}')
5% $10000 $12500.0 $12762.82
5% $11000 $13750.0 $14039.10
5% $12000 $15000.0 $15315.38
5% $13000 $16250.0 $16591.66
5% $14000 $17500.0 $17867.94
5% $15000 $18750.0 $19144.22
10% $10000 $15000.0 $16105.10
10% $11000 $16500.0 $17715.61
10% $12000 $18000.0 $19326.12
10% $13000 $19500.0 $20936.63
10% $14000 $21000.0 $22547.14
10% $15000 $22500.0 $24157.65
15% $10000 $17500.0 $20113.57
15% $11000 $19250.0 $22124.93
15% $12000 $21000.0 $24136.29
15% $13000 $22750.0 $26147.64
15% $14000 $24500.0 $28159.00
15% $15000 $26250.0 $30170.36
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.