dados da lista de compras de processamento de texto python

Faça upload direto do código, a explicação está no comentário, se você não entendeu o comentário e deixar uma mensagem, você deve responder

'''
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=0
    for contents in f:
        #将* 折全部替换为空
        pricelines = re.sub("[*折]","",contents)
        #将半价替换为5,相当于5折  方便统一计算
        pricelines = pricelines.replace("半价","5")
        #删除前后空格
        pricelines = pricelines.strip()
        #按中部空格分隔,返回list
        pricelines = pricelines.split()
        if pricelines:
            #根据题意,我们知道,后面是为打折数目
            #8折 处理掉折 就只有8这个字符
            #所以此时是一个位数len之后 为1
            #根据条件判断除以100 还是除以10
            #然后就出来了当前物品的打折之后的价格
            if len(pricelines[1]) == 1:
                countprice+=float(pricelines[1])*float(pricelines[0])/10
            else:
                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)) )

Dados de teste

Salve o formato de arquivo txt local, você pode alterar o caminho do arquivo por conta
própria , operando o arquivo **** 180,90 88% de desconto
**** 10,25 65% de desconto
**** 56,14 10% de desconto
**** 104,65 10% de desconto
**** 100,30 88% de desconto
**** 297,15 metade do preço
**** 26,75 35% de desconto **** 130,62
metade do preço
**** 240,28 58% de desconto
**** 270,62 20% de desconto
**** 115,87 12% de desconto
**** 247,34 5% de desconto
*** * 73,21 10% de desconto
**** 101,00 metade do preço
**** 79,54 metade do preço
**** 278,44 30% de desconto
**** 199,26 metade do preço
**** 12,97 10% de desconto
**** 166,30 78% de desconto
**** 125,50 58% de desconto
**** 84,98 10% de
desconto
**** 113,35 68% de desconto **** 166,57 metade do preço
**** 42,56 10% de desconto
**** 81,90 95% de
desconto
**** 131,78 20% de desconto **** 255,89 78% de desconto
** ** 109,17 10% de desconto
**** 146,69 68% de desconto
**** 139,33 35% de desconto
**** 141,16 78% de desconto
**** 154,74 20% de desconto
**** 59,42 20% de desconto
**** 85,44 68% de desconto
**** 293,70 88% de desconto
**** 261,79 65% de desconto
* *** 11,30 12% de desconto
**** 268,27 58% de desconto
**** 128,29 12% de desconto
**** 251,03 20% de desconto
**** 208,39 75% de desconto
**** 128,88 75% de desconto
**** 62,06 10% de desconto
** ** 225,87 75% de desconto
**** 12,89 75% de desconto
**** 34,28 75% de desconto
**** 62,16 58% de desconto **** 129,12 metade do
preço
**** 218,37 metade do preço
**** 289,69 20% de desconto

Portal

Acho que você gosta

Origin blog.csdn.net/weixin_43402353/article/details/109147912
Recomendado
Clasificación