python - 如何使用循环生成使用先前输出作为输入的列表?
问题描述
我目前正在尝试编写一个代码,该代码使用价格输入生成 n 周的每周价格变化,但我看到递归使用所有周的初始输入。有没有办法做到这一点?谢谢!
输入
def price():
discount = 0.88
price = 0
price = float(input('Enter price:\n'))
for i in range(6):
newPrice = round((price * discount), 2)
print('Week',i+1,'price is:','$',newPrice)
输出
Enter price: 10
Week 1 price is: $ 8.8
Week 2 price is: $ 8.8
Week 3 price is: $ 8.8
Week 4 price is: $ 8.8
Week 5 price is: $ 8.8
Week 6 price is: $ 8.8
期望的输出
Enter price: 10
Week 1 price is: $ 8.8
Week 2 price is: $ 7.74
Week 3 price is: $ 6.81
Week 4 price is: $ 5.99
Week 5 price is: $ 5.27
Week 6 price is: $ 4.64
解决方案
您可以通过存储将初始price
值替换为值来实现它newPrice
。所以newPrice
是多余的,我们可以删除它。像这样:
def price():
discount = 0.88
price = 0
price = float(input('Enter price:\n'))
for i in range(6):
price = round((price * discount), 2)
print('Week',i+1,'price is:','$', price)
另请参阅在 python 中我们通常使用蛇案例:
函数名称应为小写,必要时用下划线分隔单词以提高可读性。变量名遵循与函数名相同的约定。
所以最好使用new_price
.
对于货币计算,通常使用decimal
type。