python - 如果我将 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)
解决方案
body
您在每次迭代中覆盖之前的值。您需要将其初始化为空字符串,然后在循环内附加到它。
推荐阅读
- sed - SED 用新字符串替换被空格包围的字符串
- ios - 无法在 Swift 中找到正确的 iOS DateFormatter
- linux - 容器和主机的时差问题
- reactjs - 为什么在从事件处理程序分配状态时需要设置组件的值?
- javascript - 从服务器读取另一台机器的文件
- c# - 跨平台 C# 加密:无法生成正确的密钥/选择正确的算法
- go - 无法通过远程 ssh 命令在远程服务器上构建 go 程序
- sql - 连接来自多列和多行的字符串
- c# - 使用 WinForms 控件中的 SystemEvents 为具有静态方法的类处理模式
- python - 美式看跌期权定价的迭代方法