如何创建仅接收字典内参数的多参数Python函数?
问题分析与解决
你的代码存在两个核心问题:
*Liquid会将传入的所有参数打包成一个元组,你直接判断整个元组是否在字典的键中,显然不符合预期(字典的键是单个字符串),因此会进入else分支。- 字典的键值对逻辑颠倒,如果你要验证传入的参数是允许的容量值,应该把允许的值作为判断依据,而非用容量值映射名称。
正确实现(按你的需求:传入指定容量值,输出对应容量)
Milk = "1L" Water = "10L" Juice = "500ml" # 定义允许的参数集合,快速验证合法性 ALLOWED_LIQUIDS = {Milk, Water, Juice} def Quantity(*liquids): for liquid in liquids: # 逐个检查每个参数是否合法 if liquid not in ALLOWED_LIQUIDS: print("An Error Occured") return # 存在非法参数时直接终止函数 print(liquid) Quantity(Water, Milk)
输出结果:
10L 1L
扩展实现(如果需求是传入液体名称,输出对应容量)
如果你的实际需求是传入液体名称(如"Milk")并输出容量,可以调整为以下结构:
# 用字典存储名称与容量的映射 liquid_capacities = { "Milk": "1L", "Water": "10L", "Juice": "500ml" } def Quantity(*liquid_names): for name in liquid_names: if name not in liquid_capacities: print("An Error Occured") return print(liquid_capacities[name]) Quantity("Water", "Milk")
输出结果:
10L 1L
内容的提问来源于stack exchange,提问作者Sam1009
相关产品推荐
相关产品推荐

