python绘制水果价格与利润表图1-3


input输入
(默认输入:
苹果🍎
橘子🍊
梨子🍐
葡萄🍇空一行空值表示结束输入input添加
1. 添加
2. 删除
序号和文字都可以,要空格或者空行
可以点对点输入数据深色主题
mpl_style(dark=True)# 折线图
plt.plot(x, y, marker='o')
plt.plot(x, y2, marker='o')# 坐标轴名称
plt.xlabel('X')
plt.ylabel('Y')# 显示plt.show()input设置数据
多行循环
回车空2行input输入
(默认输入:
苹果🍎
橘子🍊
梨子🍐
葡萄🍇空一行空值表示结束输入input设置:标题
默认
产品 单价 利润 数量 总额
苹果🍎
橘子🍊
栗子🌰
葡萄🍇总之从input接受的文本变成这样input添加
1. 添加
2. 删除
序号和文字都可以,要空格或者空行文件名命名方法:编号. 库 样式 时间戳
保存 /storage/emulated/0/文件/代码print相关/结构图/
没有就新建
中文字体 /storage/emulated/0/文件/字体大全/字体包/宋体.ttf
其它中文字体 /storage/emulated/0/文件/字体大全/字体包/
英语字体 /storage/emulated/0/文件/字体大全/
这个目录下检索可用英语.ttf,如果需要英语的话那么多字体,不支持就更换
文件名没有库或者样式就省略掉
优雅热情沉默的注释每行每行

根据您的需求,我将逐步完成代码。首先,我们开始处理输入部分。请确认以下代码是否符合您的要求:

import matplotlib.pyplot as plt# 默认输入数据
default_data = '''
苹果🍎
橘子🍊
梨子🍐
葡萄🍇
'''# 处理默认输入数据
def process_default_input(input_str):data = [line.strip() for line in input_str.split('\n') if line.strip()]return data# 添加数据
def add_data():# 输入要添加的数据print("请输入要添加的数据:")new_data = input()# 处理输入的数据并添加到原数据中data.extend(process_default_input(new_data))# 删除数据
def delete_data():# 输入要删除的数据索引print("请输入要删除的数据索引:")index = int(input())# 检查索引是否有效并删除对应的数据if index >= 0 and index < len(data):data.pop(index)print("删除成功!")else:print("无效的索引!")# 默认输入数据
data = process_default_input(default_data)while True:print("请选择操作:")print("1. 添加")print("2. 删除")print("0. 结束")choice = input()if choice == '1':add_data()elif choice == '2':delete_data()elif choice == '0':breakelse:print("无效的选择!")# 打印最终的数据
print("最终的数据:")
for item in data:print(item)

请尝试运行以上代码,并通过输入选择不同的操作(1. 添加、2. 删除、0. 结束)。您可以根据需要进行相应的操作,并查看最终结果。如果有其他问题,请随时提问。

input设置:标题
默认
产品 单价 利润 数量 总额
苹果🍎
橘子🍊
栗子🌰
葡萄🍇总之从input接受的文本变成这样

好的,根据您的要求,以下是处理标题和数据部分的代码:

# 默认输入数据和标题
default_title = "产品 单价 利润 数量 总额"
default_data = '''
苹果🍎 10 2 5 50
橘子🍊 8 1.6 4 32
栗子🌰 12 3 3 36
葡萄🍇 20 4 2 40
'''# 处理默认数据
def process_default_data(input_str):data = []for line in input_str.split('\n'):line = line.strip()if line:values = line.split()item = {}item['product'] = values[0]item['price'] = float(values[1])item['profit'] = float(values[2])item['quantity'] = int(values[3])item['total'] = item['price'] * item['quantity'] + item['profit']data.append(item)return data# 处理默认标题
def process_default_title(title_str):return title_str.split()# 设置标题
def set_title():# 输入新标题print("请输入新标题:")new_title = input()# 处理新标题并更新全局变量global titletitle = process_default_title(new_title)# 打印表格
def print_table():# 打印标题行row_format = "{:^10}" * len(title)print(row_format.format(*title))# 打印数据行for item in data:print(row_format.format(item['product'], item['price'], item['profit'], item['quantity'], item['total']))# 默认数据和标题
title = process_default_title(default_title)
data = process_default_data(default_data)while True:print("请选择操作:")print("1. 设置标题")print("2. 打印表格")print("0. 结束")choice = input()if choice == '1':set_title()elif choice == '2':print_table()elif choice == '0':breakelse:print("无效的选择!")

请尝试运行以上代码,并通过输入选择不同的操作(1. 设置标题、2. 打印表格、0. 结束)。您可以根据需要进行相应的操作,并查看最终结果。

合并代码

好的,以下是合并后的代码:

# 默认输入数据和标题
default_title = "产品 单价 利润 数量 总额"
default_data = '''
苹果🍎 10 2 5 50
橘子🍊 8 1.6 4 32
栗子🌰 12 3 3 36
葡萄🍇 20 4 2 40
'''# 处理默认输入数据
def process_default_input(input_str):title_str, data_str = input_str.split('\n\n', 1)title = process_default_title(title_str)data = process_default_data(data_str)return title, data# 处理默认数据
def process_default_data(input_str):data = []for line in input_str.split('\n'):line = line.strip()if line:values = line.split()item = {}item['product'] = values[0]item['price'] = float(values[1])item['profit'] = float(values[2])item['quantity'] = int(values[3])item['total'] = item['price'] * item['quantity'] + item['profit']data.append(item)return data# 处理默认标题
def process_default_title(title_str):return title_str.split()# 设置标题
def set_title(title):# 输入新标题print("请输入新标题:")new_title = input()# 处理新标题并返回return process_default_title(new_title)# 添加数据
def add_data(data):# 输入要添加的数据print("请输入要添加的数据:")new_data = input()# 处理输入的数据并添加到原数据中data.extend(process_default_data(new_data))# 删除数据
def delete_data(data):# 输入要删除的数据索引print("请输入要删除的数据索引:")index = int(input())# 检查索引是否有效并删除对应的数据if index >= 0 and index < len(data):data.pop(index)print("删除成功!")else:print("无效的索引!")# 打印表格
def print_table(title, data):# 打印标题行row_format = "{:^10}" * len(title)print(row_format.format(*title))# 打印数据行for item in data:print(row_format.format(item['product'], item['price'], item['profit'], item['quantity'], item['total']))# 处理默认输入数据
title, data = process_default_input(default_title + '\n\n' + default_data)while True:print("请选择操作:")print("1. 设置标题")print("2. 添加数据")print("3. 删除数据")print("4. 打印表格")print("0. 结束")choice = input()if choice == '1':title = set_title(title)elif choice == '2':add_data(data)elif choice == '3':delete_data(data)elif choice == '4':print_table(title, data)elif choice == '0':breakelse:print("无效的选择!")

现在,您可以尝试运行以上代码,并通过输入选择不同的操作(1. 设置标题、2. 添加数据、3. 删除数据、4. 打印表格、0. 结束)。您可以根据需要进行相应的操作,并查看最终结果。如果有其他问题,请随时提问。

点对点设置单元格

添加可以点对点设置数据
例如input
3,4
表示修改3列4行

要实现点对点设置数据,您可以在添加数据的操作中加入相应的逻辑。以下是修改后的代码示例:

# 默认输入数据和标题
default_title = "产品 单价 利润 数量 总额"
default_data = '''
苹果🍎 10 2 5 50
橘子🍊 8 1.6 4 32
栗子🌰 12 3 3 36
葡萄🍇 20 4 2 40
'''# 处理默认输入数据
def process_default_input(input_str):title_str, data_str = input_str.split('\n\n', 1)title = process_default_title(title_str)data = process_default_data(data_str)return title, data# 处理默认数据
def process_default_data(input_str):data = []for line in input_str.split('\n'):line = line.strip()if line:values = line.split()item = {}item['product'] = values[0]item['price'] = float(values[1])item['profit'] = float(values[2])item['quantity'] = int(values[3])item['total'] = item['price'] * item['quantity'] + item['profit']data.append(item)return data# 处理默认标题
def process_default_title(title_str):return title_str.split()# 设置标题
def set_title(title):# 输入新标题print("请输入新标题:")new_title = input()# 处理新标题并返回return process_default_title(new_title)# 添加数据
def add_data(data):# 输入要添加的数据print("请输入要添加的数据:")new_data = input()# 处理输入的数据并添加到原数据中items = process_default_data(new_data)data.extend(items)print("成功添加以下数据:")for item in items:print(item)# 删除数据
def delete_data(data):# 输入要删除的数据索引print("请输入要删除的数据索引:")index = int(input())# 检查索引是否有效并删除对应的数据if index >= 0 and index < len(data):data.pop(index)print("删除成功!")else:print("无效的索引!")# 修改数据
def modify_data(data):# 输入要修改的数据索引print("请输入要修改的数据索引:")index = int(input())# 检查索引是否有效if index >= 0 and index < len(data):item = data[index]# 输入要修改的字段和值print("请输入要修改的字段和值(用逗号分隔):")field, value = input().split(',')# 根据输入的字段修改对应的值if field in item:if field == 'product':item[field] = valueelif field in ['price', 'profit']:item[field] = float(value)elif field in ['quantity']:item[field] = int(value)else:print("无效的字段!")returnitem['total'] = item['price'] * item['quantity'] + item['profit']print("修改成功!")else:print("无效的字段!")else:print("无效的索引!")# 打印表格
def print_table(title, data):# 打印标题行row_format = "{:^10}" * len(title)print(row_format.format(*title))# 打印数据行for item in data:print(row_format.format(item['product'], item['price'], item['profit'], item['quantity'], item['total']))# 处理默认输入数据
title, data = process_default_input(default_title + '\n\n' + default_data)while True:print("请选择操作:")print("1. 设置标题")print("2. 添加数据")print("3. 删除数据")print("4. 修改数据")print("5. 打印表格")print("0. 结束")choice = input()if choice == '1':title = set_title(title)elif choice == '2':add_data(data)elif choice == '3':delete_data(data)elif choice == '4':modify_data(data)elif choice == '5':print_table(title, data)elif choice == '0':breakelse:print("无效的选择!")

现在,您可以尝试运行更新后的代码。在选择“4. 修改数据”时,您可以输入要修改的数据索引,然后输入要修改的字段和值。程序将根据输入进行相应的修改,并显示结果。希望这次更新能满足您的需求,如果有其他问题,请随时提问。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/732999.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PyQt5实现远程更新exe可执行文件

PyQt5实现远程下载更新exe可执行文件 1、实现流程 1、获取远程http地址 2、获取需要更新的exe文件 3、点击更新 4、把exe强关闭 5、下载文件 6、更新2、效果图 3、示例代码 conf.ini配置文件: {"http_address_edit_value": "http://xxx.com/xxx/xxx.exe&qu…

【Go】令牌桶限流算法

1. 限流 限流&#xff0c;顾名思义&#xff0c;限制用户请求流量&#xff0c;避免大规模并发导致系统宕机。 2. 令牌桶算法 令牌管理员以恒定的速率向令牌桶里放置一个令牌。如果桶满&#xff0c;就丢弃令牌。 请求到达时&#xff0c;都要先去令牌桶里取一个令牌&#xff0c…

如何进入Windows 11的安全模式?这里提供详细步骤

序言 如果你在启动Windows 11 PC时遇到问题,则重新启动到安全模式可能会有所帮助,该模式会暂时禁用驱动程序和功能,以使你的PC更稳定。下面是如何做到这一点。 在Windows 7和更早版本中,通常可以在打开电脑后按功能键(如F8)启动安全模式。Microsoft从Windows 8中删除了…

C++内存管理篇

文章目录 1. C/C内存分布2. C中的内存管理方式3. operator new和operator delete函数4. new和delete的实现原理5. 定位new表达式(placement-new) 1. C/C内存分布 C语言中&#xff0c;为了方便管理内存空间&#xff0c;将内存分成了不同的区域&#xff0c;每个区域管理不同的数据…

Linux下CAN调试工具can-utils的使用

文章目录 candumpcansendcanbusload can-utils提供了一系列实用的命令行工具,可以方便的调试CAN总线数据。这里主要记录各个工具的用法 candump: 用于查看CAN数据cansend: 用于发送数据到CAN总线canbusload: 用于查看CAN总线使用率 candump 命令行中输入candump然后回车可以…

构建智能IoT系统的步骤

目录 一、需求分析 二、设备选择与部署 三、架构设计 四、边缘节点的配置 五、数据处理与分析 六、安全措施 七、测试与优化 总结 构建一个智能IoT系统需要经过一系列精心规划和执行的步骤&#xff0c;以确保系统的稳定性、可靠性和高效性。下面将详细介绍构建智能IoT系…

【数据分享】2013-2022年全国范围逐月CO栅格数据(免费获取)

空气质量数据是在我们日常研究中经常使用的数据&#xff01;之前我们给大家分享了2000-2022年全国范围逐月的PM2.5栅格数据和2013-2022年全国范围逐月SO2栅格数据&#xff08;可查看之前的文章获悉详情&#xff09;。 本次我们给大家带来的是2013-2022年全国范围的逐月的CO栅格…

【微信小程序】基本语法

目录 一、列表渲染&#xff08;包括wx:for改变默认&#xff09; 二、事件冒泡和事件捕获 三、生命周期 一、列表渲染&#xff08;包括wx:for改变默认&#xff09; 1、列表渲染(wx-for、block 改变默认wx:for item等) <view> {{msg}} </view> //渲染跟普通vu…

jupyter notebook 调整深色背景与单元格宽度与自动换行

# 安装jupyter主题 pip install jupyterthemes # 列举主题 jt -l # 设置主题 jt -t chesterish设置宽度 打开users 当前用户目录下的custom.css文件 写入.container { width:80% !important; } 即可 设置自动换行 查找创建这个目录以及文件notebook.json 写入配置 “li…

DualSPHysics使用FlowTool工具进行后处理,定义的粒子全在domains外,解决办法

可以知道DualSPHysics官方给了后处理工具使用的示例&#xff0c;如下就是官方给的案例&#xff0c;使用FlowTool工具可以计算出在两个实体domain内的粒子数。 然而我自己也定义了2个domains&#xff0c;但是计算出来Tank1和Tank2里边的粒子数一直是空的&#xff0c;粒子全部在…

保姆级讲解字符串函数(上篇)

目录 字符分类函数 导图 函数介绍 1.getchar 2. isupper 和 islower 字符转换函数&#xff1a;&#xff08;toupper , tolower&#xff09; 与 putchar 字符串函数 导图 string函数的使用和模拟实现 string的使用 求字符串长度 字符串的比较 string函数的模拟实现…

王道机试C++第 4 章 字符串:字符串内容续写几个小程序 Day30

统计字符 习题描述 统计一个给定字符串中指定的字符出现的次数。 输入描述&#xff1a; 测试输入包含若干测试用例&#xff0c;每个测试用例包含2行&#xff0c;第1行为一个长度不超过5的字符串&#xff0c;第2行为一个长度不超过80的字符串。注意这里的字符串包含空格&…

2419. prufer序列(prufer编码,模板题)

活动 - AcWing 本题需要你实现prufer序列与无根树之间的相互转化。 假设本题涉及的无根树共有 n 个节点&#xff0c;编号 1∼n。 为了更加简单明了的描述无根树的结构&#xff0c;我们不妨在输入和输出时将该无根树描述为一个以 n 号节点为根的有根树。 这样就可以设这棵无…

Sora的盈利新视角:从共创经济到产业赋能

随着科技的进步&#xff0c;人工智能和机器学习技术正逐渐成为推动经济增长的新动力。在这样的背景下&#xff0c;Sora作为一款先进的AI视频生成工具&#xff0c;其盈利路径和产业影响也呈现出新的特点。本文将从共创经济和产业赋能的角度&#xff0c;探讨Sora的盈利新路径以及…

kamailio转发电话到目的地,目的返回失败时再转给其他IP

按图中这样测试&#xff1a; A---->kamailio------->B B返回480等失败错误码&#xff08;非200 OK&#xff09;&#xff0c;能进入failure_route[TOVOICEMAIL]&#xff0c;但是t_relay_to_udp执行失败。 好吧&#xff0c;说是&#xff1a;在 failure_route 中处理的是…

苍穹外卖-day01

苍穹外卖-day01 目录 苍穹外卖-day01课程内容1. 软件开发整体介绍1.1 软件开发流程1.2 角色分工1.3 软件环境 2. 苍穹外卖项目介绍2.1 项目介绍2.2 产品原型2.3 技术选型 3. 开发环境搭建3.1 前端环境搭建3.2 后端环境搭建3.2.1 熟悉项目结构3.2.2 Git版本控制3.2.3 数据库环境…

【考研数学】129高分学姐二战经验+资料分享

21年数学三87分 22年数学三129分 可以说这两年该踩的雷我都踩了、该做的题我都做了。 进来看看是什么使我突然醒悟让我数学提分40多分的叭。 李林的880题我也做过&#xff0c;先来说说这本书的优缺点以及适用人群吧。 习题优点 李林老师的880题难度适中&#xff0c;很贴近…

【视频转码】基于ZLMediakit的视频转码技术概述

一、概述 zlmediakit pro版本支持基于ffmpeg的转码能力&#xff0c;在开源版本强大功能的基础上&#xff0c;新增支持如下能力&#xff1a; 1、音视频间任意转码(包括h265/h264/opus/g711/aac等)。2、基于配置文件的转码&#xff0c;支持设置比特率&#xff0c;codec类型等参…

总结:Java枚举类Enum常用API,与EnumUtil工具类封装

总结&#xff1a;Java枚举类Enum常用API&#xff0c;与EnumUtil工具类封装 一通过enum关键字创建一个枚举类&#xff1a;二自定义枚举对象常用方法示例&#xff1a;1.获取枚举值方法&#xff1a;一般为code字段2.获取描述值方法&#xff1a;一般为description字段3.获取枚举对象…

使用docker搭建chromium

使用Docker CLI 首先&#xff0c;你需要确保已经安装了Docker。以下是使用Docker命令行界面&#xff08;CLI&#xff09;搭建linuxserver/chromium的步骤&#xff1a; 拉取linuxserver/chromium镜像&#xff1a; docker pull linuxserver/chromium这将从Docker Hub上拉取最新的…