首页 > 解决方案 > 为什么 def 函数不会与我的最后一个打印行计算相同的答案?

问题描述

只是想知道为什么最后两个命令的返回值不同 对于交换函数,返回值应该是 600 而不是 100。

unit ={"HKD":1, "USD":7.8, "CAN":6}
price = 100

for cur, rate in unit.items():
    print (cur, rate)

def exchange(price, cur):
  for (cur, rate) in unit.items():
    if cur=="HKD":
      exp = unit["HKD"]*price
    elif cur=="USD":
      exp = unit["USD"]*price
    else:
      exp = unit["CAN"]*price
    return print(exp)

exchange(100, "CAN")
print(unit["CAN"]*price)

标签: python

解决方案


只需正确使用字典:

def exchange(price, cur):
   return unit[cur]*price

为什么你的代码不起作用?cur除了低效方面,在字典键上循环时,您会隐藏参数。

总是问自己“为什么我要在字典上循环执行查找,而字典是为不循环查找而制作的”


推荐阅读