Python数组for循环:Python'For' 循环迭代数组

我是 python 的新手,我正在寻找循环结构的一些帮助,特别是如何使用 'For' 循环或替代循环来解决问题。我需要根据数组中的前几天的折扣价格计算折扣价格,以便它将遍历数组并应用 10 % 折扣。

opnDays = ["mon", "tue", "wed", "thr", "fri"]
price = 10
def discount(array):
    for day in array:
        disPrice = price - (price * .1)
        print(day, disPrice)
discount(opnDays)
>>>
mon 9.0
tue 9.0
wed 9.0
thr 9.0
fri 9.0

我想得到:

>>>
mon 9.0
tue 8.1
wed 7.29
thr 6.561
fri 5.9109

任何有关如何组织此循环以获得前一天的 10 % 折扣的帮助都会有所帮助。谢谢

3

你的代码,写的,是接近:

opnDays = ["mon", "tue", "wed", "thr", "fri"]
price = 10
def discount(array):
    disPrice = price
    for day in array:
        disPrice *= 0.9
        print(day, disPrice)

我在这里做的是改变disPrice在循环中的设置方式。你在每次迭代中将它设置为相同的值(0.9 * price)。我所做的只是在开始时将其设置为price,并在每次迭代中将其乘以0.9,从而产生所需的行为。

0

您不会更改price的值,因此在循环的每次迭代中计算相同的结果。

这应该有效:

for day in array:
    price = price - (price * .1)
    print(day, price)
0

如果你想坚持在代码中使用函数,以下是一种方法:

opnDays = ["mon", "tue", "wed", "thr", "fri"]
price = 10
def discount(array):
    disPrice = price # assign initial price to discount
    for day in array:
        disPrice = disPrice*0.9 # Reduce the discount by 10 percent every time
        print(day, disPrice)
discount(opnDays)
Output
mon 9.0
tue 8.1
wed 7.29
thr 6.561
fri 5.9049000000000005
0

您的代码非常接近,但每天都需要修改前一天的价格。

我会将起始价格传递到函数中,就像你传递日名称列表一样。我也使用了.format,所以我们得到打印为美元和美分的价格。这只会影响价格的打印方式,不会影响实际值,所以我们不会失去任何准确性。

我也稍微改变了你的名字,使它们符合通常的 PythonPEP-0008风格。

def discount(array, price):
    for day in array:
        price = price - (price * .1)
        print("{}: {:.2f}".format(day, price))
open_days = ["mon", "tue", "wed", "thr", "fri"]
start_price = 10.00
discount(open_days, start_price)
output
mon: 9.00
tue: 8.10
wed: 7.29
thr: 6.56
fri: 5.90

本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处

(111)
Property utils:在Python中导入Utils
上一篇
小程序请求接口的api:与TinderAPI接口的所有客户端应用程序
下一篇

相关推荐

发表评论

登录 后才能评论

评论列表(31条)