python-文本处理购物清单数据
直接上代码,解释在注释,不懂评论留言,必回
'''
4. 有一份长长的购物清单,格式如下;
--------------------
**** 180.90 88折
**** 10.25 65折
**** 56.14 9折
**** 104.65 9折
…
**** 289.69 8折以下是让人头疼的购物单,为了保护隐私,物品名称被隐藏了。
假设只允许用现金购买,那么应最少准备多少张100元的钞票(5200)
'''
import re
fpath = "C:/Users/Lenovo/Desktop/购物清单.txt"with open(fpath,'r',encoding='utf-8') as f:countprice=0for contents in f:#将* 折全部替换为空pricelines = re.sub("[*折]","",contents)#将半价替换为5,相当于5折 方便统一计算pricelines = pricelines.replace("半价","5")#删除前后空格pricelines = pricelines.strip()#按中部空格分隔,返回listpricelines = pricelines.split()if pricelines:#根据题意,我们知道,后面是为打折数目#8折 处理掉折 就只有8这个字符#所以此时是一个位数len之后 为1#根据条件判断除以100 还是除以10#然后就出来了当前物品的打折之后的价格if len(pricelines[1]) == 1:countprice+=float(pricelines[1])*float(pricelines[0])/10else:countprice+=float(pricelines[1])*float(pricelines[0])/100#打印一共需要多少钱print("一共需要{:.2f}元".format(countprice))temp = int(countprice)%100#不能整除的话,需要在原来的基础上加一张100元#例如5363肯定需要54张才够呀if temp != 0 :print("一共需要{}张100元".format(int(countprice//100) +1))else:print("一共需要{}张100元".format(int(countprice//100)) )
测试数据
请保存本地txt文件格式,可自行更换文件路径,操作文件
**** 180.90 88折
**** 10.25 65折
**** 56.14 9折
**** 104.65 9折
**** 100.30 88折
**** 297.15 半价
**** 26.75 65折
**** 130.62 半价
**** 240.28 58折
**** 270.62 8折
**** 115.87 88折
**** 247.34 95折
**** 73.21 9折
**** 101.00 半价
**** 79.54 半价
**** 278.44 7折
**** 199.26 半价
**** 12.97 9折
**** 166.30 78折
**** 125.50 58折
**** 84.98 9折
**** 113.35 68折
**** 166.57 半价
**** 42.56 9折
**** 81.90 95折
**** 131.78 8折
**** 255.89 78折
**** 109.17 9折
**** 146.69 68折
**** 139.33 65折
**** 141.16 78折
**** 154.74 8折
**** 59.42 8折
**** 85.44 68折
**** 293.70 88折
**** 261.79 65折
**** 11.30 88折
**** 268.27 58折
**** 128.29 88折
**** 251.03 8折
**** 208.39 75折
**** 128.88 75折
**** 62.06 9折
**** 225.87 75折
**** 12.89 75折
**** 34.28 75折
**** 62.16 58折
**** 129.12 半价
**** 218.37 半价
**** 289.69 8折
本题相关资料传送门
- 文本处理
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
