吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 597|回复: 9
收起左侧

[求助] python这种递归怎么写

[复制链接]
wd4748 发表于 2023-12-18 10:25
[Python] 纯文本查看 复制代码
[{'Material': '3612622283548', 'Customername': 'CAP 175 HF AO Barrier 2020', 'Deliverydate': '2024-01-04 00:00:00', 'Needqty': 32000.0}, {'Material': '3612622283548', 'Customername': 'CAP 175 HF AO Barrier 2020', 'Deliverydate': '2024-01-08 00:00:00', 'Needqty': 31000.0}, {'Material': '3612622283548', 'Customername': 'CAP 175 HF AO Barrier 2020', 'Deliverydate': '2024-01-15 00:00:00', 'Needqty': 32000.0}]
[{'Material': '3612622283548', 'Liability': '待完成', 'Orderid': 'XM72-20-23110247', 'Orderqty': 31311.0}, {'Material': '3612622283548', 'Liability': '待完成', 'Orderid': 'XM72-20-23120084', 'Orderqty': 63945.0}]

上面的哪行是到货信息  分别是客户料号 客户名称 到货日期 到货数量  
下面哪行是订单信息 分别是客户料号 订单号 订单数量
现在的需求是 把订单信息分配到到货信息里面 根据到货信息里面的到货日期 一次 从订单信息里面分配过去 用的哪个订单 分配了多少数量 分配第一个订单分配完了就分配第二个订单
这样的递归函数怎么写呢

image.png

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

devilpanama 发表于 2023-12-18 10:35
为啥会是递归呢,不应该是遍历么
 楼主| wd4748 发表于 2023-12-18 10:50
sai609 发表于 2023-12-18 10:53
为啥会是递归呢,不应该是遍历么。。。。用循环函数for
 楼主| wd4748 发表于 2023-12-18 11:00
sai609 发表于 2023-12-18 10:53
为啥会是递归呢,不应该是遍历么。。。。用循环函数for

能帮忙写个python实例么
1107934496 发表于 2023-12-18 11:17
你这个用xlookup不就能实现吗
yjc19820826 发表于 2023-12-18 13:12
用xlookup应该能实现的
52testg 发表于 2023-12-18 13:47
[Python] 纯文本查看 复制代码
# 定义日期和入库数量的字典
inventory = {
    '2023-01-01': 70400,
    '2023-01-02': 79200,
    '2023-01-03': 30800,
    '2023-01-04': 79200,
    '2023-01-05': 49280,
    '2023-01-06': 158400,
    '2023-01-07': 317680,
    '2023-01-08': 158400,
    '2023-01-09': 79200,
    '2023-01-10': 158400,
    '2023-01-11': 80080,
    '2023-01-12': 79200,
    '2023-01-13': 158400,
    '2023-01-14': 158400
}

# 定义字典存储订单号和订单数量
orders = {
    '订单1': 73920,
    '订单2': 171600,
    '订单3': 54560,
    '订单4': 274560,
    '订单5': 288640,
    '订单6': 316800,
    '订单7': 168960,
    '订单8': 308000
}

# 根据库存数量拆分订单
for order, quantity in orders.items():
    remaining_quantity = quantity
    print(f"Order: {order}")
    fulfilled = False
    for date, stock in inventory.items():
        if stock > 0:
            if stock >= remaining_quantity:
                print(f"   Date: {date}, Quantity: {remaining_quantity}")
                inventory[date] -= remaining_quantity
                fulfilled = True
                break
            else:
                print(f"   Date: {date}, Quantity: {stock}")
                remaining_quantity -= stock
                inventory[date] = 0
    if not fulfilled:
        print(f"   Insufficient inventory to fulfill order {order}")


--来自GPT
lbbas 发表于 2023-12-18 15:12
看了半天好像明白了楼主需求,就是一个货物进库出库的需求。写一个简单的仓库管理系统即可。还有一个细节问题,若α订单用到了A、B两个到货单(A分配前几个订单后残留的尾部+B的头部),该怎么写呢,写两条吗?
wapjsx 发表于 2023-12-26 08:54
楼主,我们要学会使用别人已经造好的轮子。
【对不起,我不应该说教】
现在我用pandas模块的merge函数作一演示:
[Python] 纯文本查看 复制代码
import pandas as pd
# 导入pandas模块

vara = [{'Material': '3612622283548', 'Customername': 'CAP 175 HF AO Barrier 2020', 'Deliverydate': '2024-01-04 00:00:00', 'Needqty': 32000.0}, {'Material': '3612622283548', 'Customername': 'CAP 175 HF AO Barrier 2020', 'Deliverydate': '2024-01-08 00:00:00', 'Needqty': 31000.0}, {'Material': '3612622283548', 'Customername': 'CAP 175 HF AO Barrier 2020', 'Deliverydate': '2024-01-15 00:00:00', 'Needqty': 32000.0}]
varb = [{'Material': '3612622283548', 'Liability': '待完成', 'Orderid': 'XM72-20-23110247', 'Orderqty': 31311.0}, {'Material': '3612622283548', 'Liability': '待完成', 'Orderid': 'XM72-20-23120084', 'Orderqty': 63945.0}]
# 对变量进行赋值

dfa = pd.DataFrame(vara)
dfb = pd.DataFrame(varb)
# 将上述变量转化为DataFrame

print(pd.merge(dfa,dfb,on = 'Material'))
# 对两个DataFrame进行合并

'''
输出结果如下: 是否是您所需要的?
        Material                Customername         Deliverydate  Needqty Liability           Orderid  Orderqty
0  3612622283548  CAP 175 HF AO Barrier 2020  2024-01-04 00:00:00  32000.0       待完成  XM72-20-23110247   31311.0
1  3612622283548  CAP 175 HF AO Barrier 2020  2024-01-04 00:00:00  32000.0       待完成  XM72-20-23120084   63945.0
2  3612622283548  CAP 175 HF AO Barrier 2020  2024-01-08 00:00:00  31000.0       待完成  XM72-20-23110247   31311.0
3  3612622283548  CAP 175 HF AO Barrier 2020  2024-01-08 00:00:00  31000.0       待完成  XM72-20-23120084   63945.0
4  3612622283548  CAP 175 HF AO Barrier 2020  2024-01-15 00:00:00  32000.0       待完成  XM72-20-23110247   31311.0
5  3612622283548  CAP 175 HF AO Barrier 2020  2024-01-15 00:00:00  32000.0       待完成  XM72-20-23120084   63945.0
'''
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 17:40

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表