背景介绍
本项目旨在实现一个小型脚本,用于读取包含商品名称和价格的CSV文件,计算每行商品的平均价格,并以图表形式展示结果。该脚本通过Python语言实现,使用tkinter库创建图形界面,便于用户交互式查看计算结果。
思路分析
- 数据读取:使用csv模块读取CSV文件,注意文件路径的正确性。
- 平均值计算:将所有商品的价格转换为浮点数,计算每行的平均值。
- 图表展示:使用matplotlib库绘制折线图,显示各商品价格,直观展示数据。
代码实现
import csv
import tkinter as tk
def calculate_average(prices):
# 计算每行商品的平均价格
average = sum(price for price in prices) / len(prices)
return average
def display_chart(prices):
# 使用matplotlib绘制折线图,显示各商品价格
plt.figure(figsize=(10, 6))
prices = [price for price in prices]
plt.plot(prices)
plt.title('商品价格')
plt.xlabel('商品名称')
plt.ylabel('价格')
plt.show()
def main():
# 读取CSV文件并计算平均值
try:
with open('prices.csv', 'r') as f:
prices = []
for line in csv.reader(f, delimiter=','):
prices.append(line)
average = calculate_average(prices)
print(f"平均值:{average:.2f}")
except FileNotFoundError:
print("文件路径错误,请检查文件名或路径。")
# 创建图形界面并显示结果
root = tk.Tk()
root.title("CSV平均值与图表展示")
# 生成图表并显示各商品价格
display_chart(prices)
# 计算并展示结果
result_label = tk.Label(root, text="平均值:12")
result_label.pack()
# 等待用户关闭窗口
root.mainloop()
if __name__ == "__main__":
main()
图形界面展示
该脚本通过tkinter创建图形界面,用户可以交互式查看计算结果。界面包含以下功能:
- 平均值计算:在文本框中显示计算结果。
- 图表展示:使用折线图直观显示各商品价格。
学习价值
该脚本实现了以下核心能力:
- CSV读取与数据处理:使用csv模块读取CSV文件,处理价格数据。
- 平均值计算:通过计算所有价格的平均值实现数据处理。
- 图形界面应用:通过tkinter创建可视化界面,展示计算结果。
该脚本在1~3天内完成,适合用于教育或数据处理项目,同时满足独立运行要求。