上述递归求成品和半成品价格的需求加了新条件
时间: 2023-08-17 17:21:15 浏览: 132
好的,明白了。根据你的描述,我了解到你想要对之前的递归求成品和半成品价格的需求进行修改以适应新的条件。根据你提供的信息,我假设你想要在原来的求解过程中加入新的料件编号 `ima01`,并且使用新的价格 `ima53` 替换掉原来的价格 `bmb53`。如果我的理解有误,请随时指出。
为了实现这个修改,你可以在 `find_price` 函数中添加一个新的参数 `new_price`,用于存储新的价格。然后,在递归调用时,你可以根据料件编号是否为 `ima01` 来选择使用原来的价格 `bmb53` 还是新的价格 `ima53`。具体的实现代码如下所示:
```python
def find_price(item, new_price=None):
if item in price_dict:
# 如果给出了新价格,则使用新价格;否则使用原来的价格
return new_price if new_price is not None else price_dict[item]
else:
# 递归调用
sub_items = bom_dict[item]
sub_prices = []
for sub_item in sub_items:
if sub_item == 'ima01':
sub_price = find_price(sub_item, new_price='ima53')
else:
sub_price = find_price(sub_item, new_price=new_price)
sub_prices.append(sub_price)
return sum(sub_prices)
```
在这个修改后的代码中,当遇到料件编号为 `ima01` 的子件时,程序会使用新的价格 `ima53`;否则,程序会根据传入的 `new_price` 参数来选择使用原来的价格 `bmb53` 还是新的价格 `ima53`。
希望这个修改后的代码可以满足你的需求。如果你有任何疑问或需要进一步的帮助,请随时告诉我。
阅读全文