首页 > 解决方案 > 如果我将 f 字符串存储在 for 循环内的变量中,该变量会获取 for 循环内的所有值吗?

问题描述

我需要根据客户在文本文件上的订单打印“收据”。但是当我执行这个时,只显示最后一个订单,而不是其余的。我应该怎么办?

with open("receipt.txt", "w") as file:
        header = '''
        ==
        CODE\t\t\tNAME\t\t\tQUANTITY\t\t\tSUBTOTAL
        '''
        orders_list = sorted(orders_list, key=lambda k: k['code']) 
        
        for order in orders_list:
            order_code = order['code']
            order_name = products[order_code]["name"]
            order_qty = order['qty']            
            order_subtotal = order['subtotal']

            body = f"{order_code}\t\t{order_name}\t\t{order_qty}\t\t\t{order_subtotal}\t\t"

        lower = f'''
        
        Total:\t\t\t\t\t\t\t\t\t{total}
        ==
        '''
        
        receipt = header + body + lower
        file.write(receipt)

标签: python

解决方案


body您在每次迭代中覆盖之前的值。您需要将其初始化为空字符串,然后在循环内附加到它。


推荐阅读