【发布时间】:2018-10-12 14:34:31
【问题描述】:
我正在开发一个财务计算器。我目前拥有它,因此每次代码循环时它都会添加到结果列表中。我打算将这些结果添加到一个新列表中,以便输入循环的次数。 修改函数将确保第一个列表在每个循环中具有不同的结果,因为它会随机化通货膨胀和利率。
例如,输入 sims 为 10,因此它将循环 10 次。每次循环时,它都会将列表结果添加到列表模拟中,然后重置列表结果。这将产生 10 个不同的列表列表
目前我得到了我需要的输出,但只有第一个循环被添加到第二个列表中,所以例如它只是重复第一个循环 10 次,而不是每次都重置和随机化。
def modify_rate(interest_rate, interest_change):
return interest_rate + interest_change * (1 - random.random() * 2)
def modify_rate(inflation_rate, inflation_change):
return inflation_rate + inflation_change * (1 - random.random() * 2)
def run_simulation():
years, annual_spend, savings_balance, inflation_rate, interest_rate, interest_change, inflation_change, sims = inputs()
simulations = []
i = 0
for x in range(0, sims):
result = []
while i < years:
interest_rate = modify_rate(interest_rate, interest_change)
inflation_rate = modify_rate(inflation_rate, inflation_change)
i = i + 1
totalcost = annual_spend * (1 + inflation_rate) ** 1
annual_spend = totalcost
totalsave = savings_balance - annual_spend
savings_balance = totalsave
x = savings_balance * (1 + interest_rate) ** 1
savings_balance = round(x, 2)
result.append(savings_balance)
if i >=years:
break
elif savings_balance < 0:
break
simulations.append(result)
print(simulations)
我创建了一个小型示例,其中计算将被添加 x 次,然后将结果添加到列表中,然后将其添加到另一个列表 x 次
x = int(input("enter"))
y = int(input("enter"))
k = int(input("enter"))
a = []
i = 0
h= []
for x in range(0, k):
while i < y:
i = i + 1
z = x + 10 + i
a.append(z)
if i >= y:
break
h.append(a)
print(h)
任何指导将不胜感激:)
【问题讨论】:
-
注意输入
x在while循环中不可用。
标签: python list for-loop while-loop append