import csv class SalesTable: def __init__(self, n, unit, date, ): self.n = n self.unit = unit self.date = date self.sales = [] self.total = 0 def input_sales(self): for i in range(1, self.n + 1): No = input("请输入代号:") Name = input("请输入名字:") Num = input("请输入大小:") Price = int(input("请输入价格:")) self.sales.append(line(No, Name, Num, Price)) self.Price = Price def output_table(self): with open('sales_table.csv', mode='w', newline='') as f: writer = csv.writer(f) writer.writerow(['销售清单']) writer.writerow(['单位:' + self.unit, '日期:' + self.date]) writer.writerow(['No', 'Name', 'Num', 'Price']) for table in self.sales: writer.writerow([table.No, table.Name, table.Num, table.Price]) self.total += table.Price writer.writerow(['总销售额:'+str(self.total)]) print("CSV文件已成功生成!") print("单位:{}\t\t\t\t\t\t日期:{}".format(self.unit, self.date)) print('-' * 50) for table in self.sales: table.torow() print('-' * 50) print('总销售额:{:,.3f}'.format(self.total)) class line: def __init__(self, No, Name, Num, Price): self.No = No self.Name = Name self.Num = Num self.Price = Price def torow(self): print('|{:<10}|{:<10}|{:>10}|{:>15,.3f}'.format(self.No, self.Name, self.Num, self.Price)) n = int(input('成员数量:')) unit = input('单位:') date = input('日期:') sales_table = SalesTable(n, unit, date, ) sales_table.input_sales() sales_table.output_table()请分析这个代码的功能和运用了什么
时间: 2024-02-14 18:14:20 浏览: 106
这段代码是一个简单的销售清单程序,使用了Python内置的csv模块来生成.csv文件,其中SalesTable类包含了销售清单的基本信息和一系列销售清单项,line类则是销售清单项的数据结构。程序首先让用户输入销售清单的基本信息和销售清单项的数量,然后通过input_sales()方法依次获取每个销售清单项的数据,将其存储在一个列表中。最后,程序通过output_table()方法将销售清单的基本信息和每个销售清单项的数据写入.csv文件,并打印在控制台上,同时计算并输出销售总额。程序使用了Python的面向对象编程思想,通过类和对象来组织和处理数据,同时运用了Python内置的csv模块来方便地生成.csv文件。
阅读全文