我有两个list(oil_price和price,两者长度相同),想让它在两个循环中迭代,并通过if-else语句。代码只去做第一行。有谁能帮忙吗?
for x in oil_price:
for y in price:
if float(x) <= 60:
cost = y * qty
if cost > funds:
return funds, stocks
else:
cash_balance = float(funds - cost)
stocks += qty
return cash_balance, stocks
elif float(x) > 60:
sale = qty * y
if qty > stocks:
return funds, stocks
else:
cash_balance = float(funds + sale)
stocks_owned = stocks - qty
return cash_balance, stocks_owned
对Błotosmętek的回答进行补充(使用一个 return
语句在循环的第一次迭代后退出函数),你可以使用一个列表(2D-listarray,如果你愿意)来存储中间结果,然后使用 continue
转到循环的下一步。这样,您就可以计算出所有的 oil_price
和 price
.
所以,它可以看起来像这样。
results = []
for x in oil_price:
for y in price:
if float(x) <= 60:
cost = y * qty
if cost > funds:
results.append([funds, stocks])
continue
else:
cash_balance = float(funds - cost)
stocks += qty
results.append([cash_balance, stocks])
continue
elif float(x) > 60:
sale = qty * y
if qty > stocks:
results.append([funds, stocks])
continue
else:
cash_balance = float(funds + sale)
stocks_owned = stocks - qty
results.append([cash_balance, stocks_owned])
continue
我相信这看起来会更漂亮,但还是可以的。