FIFO财务核算基本样例

首先,了解一下FIFO(First In First Out)的基本原理,即先入先出。例如,读进一串数字[1,2,3,4,5],首先输出的是1,最后输出的是5.

在python中,queue中Queue模块中有put()(进入队列),get()(得到队列的数字),empty()(判断队列是否为空)来供队列使用

例如:输入一句:我有一只三酷猫!

import queue

s1 = '我是一只三酷猫!'

FIFO = queue.Queue()  

按照先入先出原则,输出队列中的数

i = len(s1)-1

while i >= 0:

    FIFO.put(s1[i])

    i-=1

while not FIFO.empty():

    print(FIFO.get())

输出结果:!猫酷三只一有我

掌握了FIFO的基本原理后,来看下面这个小例子,对药店当日财务及销售情况进行整理:

药店当日进货表,每一行的数据分别表示货号,药名,采购数量,实际数量,成本价:

['20191126001','阿莫西林',2,2,18],
['20191126002','咳嗽糖浆',1,1,35],
['20191126003','小儿清肺片',10,10,35],
['20191126004','阿莫西林',5,5,19]

药店当日销售表,每一行分别表示销售记录编号,货号,药名,销售数量,成本价,销售价:

    ['20191126001','','阿莫西林',2,0,25],

    ['20191126002','','咳嗽糖浆',1,0,48],

    ['20191126004','','阿莫西林',1,0,25]

首先弄清楚我们的需求:

1.更新采购表,根据销售表重新确定采购表中的实际数量

2.更新销售表,根据采购表确定销售表的货号和成本计价

InDetail=[       #货号,药名,入库数量,实际数量,成本价
    ['20191126001','阿莫西林',2,2,18],
    ['20191126002','咳嗽糖浆',1,1,35],
    ['20191126003','小儿清肺片',10,10,35],
    ['20191126004','阿莫西林',5,5,19]
    ]
SaleRecord=[     #销售记录编号,货号,药名,销售数量,成本价,销售价
    ['20191126001','','阿莫西林',2,0,25],
    ['20191126002','','咳嗽糖浆',1,0,48],
    ['20191126004','','阿莫西林',1,0,25]
    ]

 读取销售记录表的每一行,循环采购表

i=0
s_len=len(SaleRecord)
while i < s_len:
    Curr_Record=SaleRecord[i]
    j=0
    I_len=len(InDetail)
    while j < I_len:
        if InDetail[j][1] == Curr_Record[2] and InDetail[j][3] >= Curr_Record[3]:
            SaleRecord[i][1] = InDetail[j][0]      #获取入库单号
            SaleRecord[i][4] = InDetail[j][4]      #获取成本价
            InDetail[j][3] = InDetail[j][3]-SaleRecord[i][3]
            break
        else:
            j+=1
    i+=1

输出更改后的销售清单和采购表:

print("处理后的销售表:")
for sale in SaleRecord:
    print(sale)
print("处理后的采购表:")
for detail in InDetail:
    print(detail)

输出结果如图:

处理后的销售表:
['20191126001', '20191126001', '阿莫西林', 2, 18, 25]
['20191126002', '20191126002', '咳嗽糖浆', 1, 35, 48]
['20191126004', '20191126004', '阿莫西林', 1, 19, 25]
处理后的采购表:
['20191126001', '阿莫西林', 2, 0, 18]
['20191126002', '咳嗽糖浆', 1, 0, 35]
['20191126003', '小儿清肺片', 10, 10, 35]
['20191126004', '阿莫西林', 5, 4, 19]

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值