我需要在一个列表中添加用户的购买行为,条件如下:
"当年购物满15,000元或以上的客户可享受八折优惠。如果他们在这个月也花了3000或更多,他们有额外的15%。">
列表如下:
purchases=[{"id": "123", 'price':16000, 'date': "(2022, 3, 12)"},{"id": "123", 'price':4000, 'date': "(2022, 11, 20)"}]
我不知道如何把今年和这个月的采购加起来,如果有人能帮助我:)
您可以从datetime.date.today()
获取当前年份和月份(参见Python中的Datetime当前年份和月份)
import datetime
today = datetime.date.today()
# Current year: today.year
# Current month today.month
遍历purchases
的每个元素。每个元素中的"date"
键告诉您购买的日期。这个键的值是一个元组的字符串表示,这很烦人,但是我们可以使用ast.literal_eval
来解析它。
元组的第一个元素是购买的年份。第二个元素是月份。因此,我们需要检查这些值是否与today
的值匹配,并添加相应的总数:
import ast
total_month = 0
total_year = 0
for purchase in purchases:
p_date = ast.literal_eval(purchase["date"])
if p_date[0] == today.year:
total_year += purchase["price"]
if p_date[1] == today.month:
total_month += purchase["price"]
在我们看完所有的购买之后,我们可以检查我们的标准:
if total_year >= 15_000:
print("20% discount")
if total_month >= 3000:
print("Extra 15% discount")