Python实战项目总结

article/2025/11/6 15:57:45

Python实战项目总结

项目:处理超市营业额。
题目:一:已知文件“超市营业额2.xlsx”,将所有员工的工号前面增加一位数字,增加的数字和原工号最后一位相同,把修改好的数据写入新文件“超市营业额2_修改工号.xlsx”。例如,工号1001改为11001,1003改为31003。

1:如何实现对工号的修改:

观察发现可以将工号除以10的余数乘1000,再加上原来的工号。
即:new_num=(old_num)%10*10000+old_num

2:如何处理xlsx文件:

使用openyxl模块。

wb=openpyxl.load_workbook('超市营业额2.xlsx')   #打开表格文件
worksheet=wb["Sheet1"]    #访问工作表Sheet1

3:如何遍历特定的行或列?

笔者目前正在学pandas,还未初步掌握,所以在这里采用暴力for循环方式。

for i in list(worksheet.columns)[0]:if i.value!='工号':new_num = int(i.value) % 10*10000+int(i.value)new_num_list.append(new_num)

引申:获取特定行或列的方式:
我们可以想到的是用“索引”的方式,但是sheet.rows是生成器类型,不能使用索引。所以我们将其转换为list之后再使用索引,例如用list(sheet.rows)[3]来获取第四行的tuple对象。

#输出特定的行
for cell in list(worksheet.rows)[3]:  #获取第四行的数据print(cell.value,end=" ")
print()
#河北省 1514.7 2039.6 107.7 139.8 915.5 167.9 531.7 115.8 285.7 265.4 166.3 47.0#输出特定的列
for cell in list(worksheet.columns)[2]:  #获取第三列的数据print(cell.value,end=" ")
print()
#家庭经营纯收入 1957.1 2707.4 2039.6 1622.9 2406.2 2210.8 2556.7 2521.5 767.7 2271.4 3084.3……#已经转换成list类型,自然是从0开始计数。

PS:引申部分摘编自TheGkenoe博主的文章。

4:如何写入新的文件?

newworksheet.cell(j + 1, 2, new_name_list[j])

for j in range(len(new_num_list)):newworksheet.cell(j + 1, 1, new_num_list[j])  #写入变更后的数据,j+1表示行数,1为列数。newworksheet.cell(j + 1, 2, new_name_list[j])newworksheet.cell(j + 1, 3, new_date_list[j])newworksheet.cell(j + 1, 4, new_time_list[j])newworksheet.cell(j + 1, 5, new_sales_list[j])newworksheet.cell(j + 1, 6, new_kind_list[j])

完整代码如下:

'''超市营业额处理之工号修改'''
import openpyxl
wb=openpyxl.load_workbook('超市营业额2.xlsx')   #打开表格文件
worksheet=wb["Sheet1"]    #访问工作表Sheet1
new_num_list=['工号']    #定义新的列表用来存储改变后的数据
new_name_list=['姓名']
new_date_list=['日期']
new_time_list=['时段']
new_sales_list=['交易额']
new_kind_list=['柜台']wb2=openpyxl.Workbook()
newworksheet=wb2.active
newworksheet.title="New Sheet1"for i in list(worksheet.columns)[0]:if i.value!='工号':new_num = int(i.value) % 10*10000+int(i.value)new_num_list.append(new_num)
for i in list(worksheet.columns)[1]:if i.value!='姓名':new_name_list.append(i.value)
for i in list(worksheet.columns)[2]:if i.value!='日期':new_date_list.append(i.value)
for i in list(worksheet.columns)[3]:if i.value!='时段':new_time_list.append(i.value)
for i in list(worksheet.columns)[4]:if i.value!='交易额':new_sales_list.append(i.value)
for i in list(worksheet.columns)[5]:if i.value!='柜台':new_kind_list.append(i.value)for j in range(len(new_num_list)):newworksheet.cell(j + 1, 1, new_num_list[j])  #写入变更后的数据,j+1表示行数,1为列数。newworksheet.cell(j + 1, 2, new_name_list[j])newworksheet.cell(j + 1, 3, new_date_list[j])newworksheet.cell(j + 1, 4, new_time_list[j])newworksheet.cell(j + 1, 5, new_sales_list[j])newworksheet.cell(j + 1, 6, new_kind_list[j])
wb2.save(filename='超市营业额2_修改工号.xlsx')

原图:

在这里插入图片描述

效果图:

在这里插入图片描述


http://chatgpt.dhexx.cn/article/EiYDETpP.shtml

相关文章

服务器部署 Python 项目总结

title: 服务器部署 Python 项目总结 date: 2023-07-05 16:33:49 tags: 服务器Python categories:服务器 cover: https://cover.png feature: false 1. 准备 Python 项目需要 Python 的环境,假如服务器操作系统为 CentOS 7 的话,默认安装了 Python2 与 …

python基础——经营第一个项目,如何将python学得更6 ?

python基础——经营第一个项目,如何将python学得更6 ? hello!我是wakeyo_J,每天一个konwledge point,一起学python,让技术无限发散。 经营第一个项目,如何将python学得更6 ? python基…

5分钟就能完成的5个Python小项目,赶紧拿去玩玩吧

最近在做python项目开发的时候发现了好多好玩的小项目,并且都是代码量较少容易上手,对新手十分友好。所以今天就来和小伙伴分享一些Python从一行代码到三十行代码的好玩项目,之后博主也会在这里持续更新更多好玩的项目,记得关注哦…

70个Python练手项目列表,看了让你茅塞顿开~

前言: 不管学习哪门语言都希望能做出实际的东西来,这个实际的东西当然就是项目啦,不用多说大家都知道学编程语言一定要做项目才行。 这里整理了70个Python实战项目列表,都有完整且详细的教程,你可以从中选择自己想做的…

Python 小型项目大全 36~40

三十六、沙漏 原文:http://inventwithpython.com/bigbookpython/project36.html 这个可视化程序有一个粗糙的物理引擎,模拟沙子通过沙漏的小孔落下。沙子堆积在沙漏的下半部分;然后把沙漏翻过来,重复这个过程。 运行示例 图 36-…

7 年 Python 的我,总结了这 90 条写 Python 程序的建议

本文于网络整理,版权归原作者所有 自己写 Python 也有四五年了,一直是用自己的“强迫症”在维持自己代码的质量。都有去看Google的Python代码规范,对这几年的工作经验,做个简单的笔记,如果你也在学pythpn,准…

pot lib:optimal transport python库

文章目录 transport1. [计算最优传输(Computational Optimal Transport)](https://zhuanlan.zhihu.com/p/94978686)2. 离散测度 (Discrete measures), 蒙日(Monge)问题, Kantorovich Relaxation (松弛的蒙日问题)3. scipy.stats.wasserstein_distance 距…

Python 小型项目大全 46~50

# 四十六、百万骰子投掷统计模拟器 原文:http://inventwithpython.com/bigbookpython/project46.html 当你掷出两个六面骰子时,有 17%的机会掷出 7。这比掷出 2 的几率好得多:只有 3%。这是因为只有一种掷骰子的组合给你 2(当两个…

在 Python 中完成的一些大型项目有哪些?

在本文中,我们将了解一些在 Python 中完成的大型项目。 Python是目前最流行的编程语言之一。这一趋势似乎将在 2022 年及以后继续下去。所以,如果你刚刚开始使用Python,你能做的最好的事情就是研究一些现实世界的Python项目想法。 Python 是…

PBL Python 学习——第0天

一个月PBL Python学习 第一章 Python环境的基本搭建 文章目录 一个月PBL Python学习前言一、Python下载二、Pycharm下载和配置1.Pycharm下载macOS查看方法第一步第二步第三步 Windows 2.Pycharm配置macOSWindows 总结 前言 本人是一位中学生,python新手&#xff0…

Python 小型项目大全 61~65

六十一、ROT13 密码 原文:http://inventwithpython.com/bigbookpython/project61.html ROT13 密码是最简单的加密算法之一,代表“旋转 13 个空格”密码将字母A到Z表示为数字 0 到 25,加密后的字母距离明文字母 13 个空格: A变成N&…

7个Python实战项目代码,让你分分钟晋级大老

关于Python有一句名言:不要重复造轮子。 但是问题有三个: 1、你不知道已经有哪些轮子已经造好了,哪个适合你用。有名有姓的的著名轮子就400多个,更别说没名没姓自己在制造中的轮子。 2、确实没重复造轮子,但是在重复…

Python 小型项目大全 76~81

七十六、井字棋 原文:http://inventwithpython.com/bigbookpython/project76.html 井字棋是一种在3 3网格上玩的经典纸笔游戏。玩家轮流放置 X 或 O 标记,试图连续获得三个。大多数井字棋都以平局告终,但如果你的对手不小心,你也…

Python 小型项目大全 66~70

六十六、简单替换密码 原文:http://inventwithpython.com/bigbookpython/project66.html 简单替换密码用一个字母代替另一个字母。由于字母A有 26 种可能的替换,B有 25 种可能的替换,C有 24 种可能的替换,等等,所以可能…

河北软件职业技术学院05级NIIT班第四学习小组——流氓山好汉一览

李大毛:只所以叫大毛,并不是因为这家伙浑身长毛,而是因为这家伙天天下载毛片,使毛片比病毒还疯狂地通过QQ在班里乱窜。 王狗狗:只所以叫狗狗是因为这家伙特别坏,在女生面前常常装成一正人君子面&#xff0…

软件精英齐聚张江 “校园之星”闪亮沪上——微软院校IT课程“校园之星”大赛决赛结果揭晓

2007年8月10日,微软院校IT课程“校园之星”大赛总决赛和颁奖仪式在上海张江软件园举行。自活动开展以来,备受人们关注的冠军获得者终于水落石 出,冠军组成员为湖北武汉商贸职业学院陶泽华、江苏南通农业职业技术学院王珍勇、辽宁沈阳理工大学…

重磅:吴晟当选 Apache 软件基金会 2021年董事

点击上方“开源社”关注我们 | 作者:刘天栋 | 编辑:王玥敏 | 设计:王福政 宣布新一届 ASF 董事会成员名单 在本周举行的 Apache 软件基金会(ASF)年度会员大会上,以下人员当选为ASF董事会成员。 Bertrand De…

科东软件Intewell操作系统获2023数字中国创新大赛·信创赛道全国总决赛三等奖

深耕信创生态,科东软件捷报频传 科东软件Intewell操作系统获2023数字中国创新大赛信创赛道全国总决赛三等奖 4月27日,2023数字中国创新大赛信创赛道全国总决赛(以下简称“大赛”)落下帷幕,历时2个多月,全国282支队伍,…

麦聪软件喜获双软认证

近日,北京麦聪软件有限公司(以下简称:麦聪软件)喜获由中国软件行业协会颁发并由北京软件和信息服务业协会评估的“软件产品证书”和“软件企业证书”,即业界公认的“双软认证”。 据了解,获得“双软认证”…