函数就是把代码归集到一个名称下
- 函数作用:现代编程语言都支持把一段代码打包命名,后续直接写这个名字就可以执行这段代码,不用重复复制粘贴代码。
def关键字:用来定义函数,后面跟函数名、括号、冒号,缩进内部就是函数代码块。
代码
def in_fridge():
try:
count = fridge[wanted_food]
except KeyError:
count = 0
return countCode language: JavaScript (javascript)
运行测试
# 先定义全局字典 fridge
fridge = {"milk":"这是牛奶", "egg":"这是鸡蛋", "ice":"这是冰淇淋"}
# 设置要查找的食物
wanted_food = "juice"
print(in_fridge()) # juice不存在,输出 0
wanted_food = "milk"
print(in_fridge()) # milk存在,输出:这是牛奶Code language: PHP (php)
问题
这个函数没有参数,直接读取外部全局变量fridge、wanted_food。
- 如果没有提前定义
fridge,调用函数直接报NameError: name 'fridge' is not defined - 函数依赖外部全局变量,耦合度很高,不好复用。
改进版(使用参数)
def in_fridge(fridge_dict, wanted_food):
try:
count = fridge_dict[wanted_food]
except KeyError:
count = 0
return count
# 调用
fridge = {"milk":"这是牛奶", "egg":"这是鸡蛋", "ice":"这是冰淇淋"}
print(in_fridge(fridge, "juice"))
print(in_fridge(fridge, "milk"))Code language: PHP (php)
总结
def 函数名():开启函数定义,冒号不能丢,内部代码全部缩进。return:给调用者返回结果,函数执行到return就结束。try ... except KeyError:捕获字典查找键不存在时抛出的异常,找不到就返回0。
输出
0
这是牛奶
Previous: 运行单独 py 文件
Next: 函数 docstring