首页 > 解决方案 > 如何使用循环生成使用先前输出作为输入的列表?

问题描述

我目前正在尝试编写一个代码,该代码使用价格输入生成 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

标签: python

解决方案


您可以通过存储将初始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.

对于货币计算,通常使用decimaltype


推荐阅读