问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图
运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果
在这个练习中,我们将管理一个由字典表示的水果库存,其键是水果的名称(单数),值是库存中对应水果的数量。例如,如果stock包含 2 个苹果和 6 个香蕉,它将由以下字典表示:{'apple': 2, 'banana': 6}。为了简化示例的编写,我们假设该字典将存储在名为stock的变量中 。
在整个练习中,不得修改作为参数传递的字典。
您不必按顺序完成问题。
编写一个add1函数,它将stock(字典)和水果名称作为参数,并返回新股票,其中添加了给定类型的水果。
例子:
add1 (stock, 'apple')返回 {'apple': 3, 'banana': 6}
add1 (stock, 'pear')返回 {'apple': 2, 'banana': 6, 'pear': 1}
编写一个函数enleve1,它将stock(字典)和水果名称作为参数,并返回新stock,其中给定类型的水果已被删除(如果有足够的)。如果这种水果的库存下降到零,则必须删除字典键。如果库存不足,程序将显示“错误:(水果名称)的数量不足”并原样退回原库存。
例子:
enleve1 (stock, 'apple')返回 {'apple': 1, 'banana': 6}
enleve1 (stock, 'pear') 显示“错误:梨太少”并返回 { 'apple': 2, 'banana': 6}
编写一个add函数,它将stock(字典)、水果名称和数量q作为参数,并返回新stock,其中我们添加了指定水果类型的数量q。
例子:
add (stock, 'apple', 5)返回 {'apple': 7, 'banana': 6}
add (stock, 'pear', 4)返回 {'apple': 2, 'banana': 6, 'pear': 4}
编写一个函数remove,它将股票(字典)、水果名称和数量q作为参数,并返回我们已经删除了指定类型水果的数量q的新股票。至于函数enleve1,如果这个水果的库存下降到零,则必须删除字典中的键。如果库存不足,程序将显示“错误: (水果名称)的数量不足”并原样退回原库存。
例子:
remove (stock, 'apple', 2)返回 {'banana': 6}
remove (stock, 'banana', 10) 打印“错误:香蕉数量不足”并返回 {'apple': 2, 'banana': 6}
编写一个函数after_delivery,它将stock(字典)以及交货内容(也由字典表示)作为参数,并在交货后返回新库存(知道交货内容增加了当前库存) .
例子:
after_delivery (stock, {'peach': 4, 'apple': 5})返回 {'apple': 7, 'banana': 6, 'peche': 4}
编写一个命令函数,它将当前stock(字典)以及所需的最小股票stock(还有字典)作为参数,并返回与获得所需stock必须执行的命令相对应的字典。如果水果在当前库存中已经出现足够数量(大于或等于所需库存),则不应出现在订单中。
例子:
假设stock_ Want = {'apple': 15, 'orange': 20},则order (stock, stock_ Want)返回 {'apple': 13, 'orange': 20}。
假设stock_ Want = {'apple': 10, 'banana': 4},则order (stock, stock_ Want)返回 {'apple': 8}。
编写一个以stock为参数的total函数,它返回股票stock中存在的水果总数(所有类型的组合)
示例:
total(stock)回报 8.
编写一个数量函数,该函数将stock作为参数以及一个水果名称列表Fruits_a_compter,并返回名称在Fruits_a_compter 列表中的股票中存在的水果数量。
例子:
假设stock_bis = {'apple': 15, 'peach': 4, 'lemon': 3, 'orange': 20},则数量 (stock_bis, ['apple', 'lemon', 'pear'])返回 18.
编写一个函数citrus_quantity,它将库存作为参数并返回库存中存在的柑橘类水果的数量。柑橘类水果的名称将被考虑:orange, citron, mandarine, clémentine 和 pamplemousse.
例子:
假设stock_bis = {'apple': 15, 'peach': 4, 'lemon': 3, 'orange': 20},则citrus_quantity (stock_bis)返回 23。