函数的文档说明
1. 基本使用
def test(a, b): "用来完成对2个数求和" # 函数第一行写一个字符串作为函数文档 print("%d"%(a+b))
test(11, 22) #函数可以正常调用
输出结果:
33
help(test) # 使用 help 查看test函数的文档说明
输出结果:
Help on function test in module __main__: test(a, b) 用来完成对2个数求和
2. 高级使用
def get_info(name: str, age: int): """ 接收用户的名字和年龄,拼接一个字符串并返回 :param name: 接收一个名字 :param age: 接收用户的年龄,必须是 0-200 间的一个整数 :return: 返回拼接好的字符串 """ return "我的名字叫 %s,今年是 %d 岁" % (name, age) get_info("吴彦祖", 19) get_info(520, 19) # 注意,形参上标注的类型只是提高代码的可读性,并不会限制实参的类型 help(get_info)
输出结果:
函数应用:打印图形和数学计算
目标
- 感受函数的嵌套调用
- 感受程序设计的思路,复杂问题分解为简单问题
思考&实现1
写一个函数打印一条横线
打印自定义行数的横线
参考代码1
# 打印一条横线 def printOneLine(): print("-"*30) # 打印多条横线 def printNumLine(num): i=0 # 因为printOneLine函数已经完成了打印横线的功能, # 只需要多次调用此函数即可 while i<num: printOneLine() i+=1 printNumLine(3)
思考&实现2
写一个函数求三个数的和
写一个函数求三个数的平均值
参考代码2
# 求3个数的和 def sum3Number(a,b,c): return a+b+c # return 的后面可以是数值,也可是一个表达式 # 完成对3个数求平均值 def average3Number(a,b,c): # 因为sum3Number函数已经完成了3个数的就和,所以只需调用即可 # 即把接收到的3个数,当做实参传递即可 sumResult = sum3Number(a,b,c) aveResult = sumResult/3.0 return aveResult # 调用函数,完成对3个数求平均值 result = average3Number(11,2,55) print("average is %d"%result)
函数的嵌套调用
def testB(): print('---- testB start----') print('这里是testB函数执行的代码...(省略)...') print('---- testB end----') def testA(): print('---- testA start----') testB() print('---- testA end----') testA()
输出结果:
---- testA start---- ---- testB start---- 这里是testB函数执行的代码...(省略)... ---- testB end---- ---- testA end----
小总结:
- 一个函数里面又调用了另外一个函数,这就是所谓的函数嵌套调用
- 如果函数A中,调用了另外一个函数B,那么先把函数B中的任务都执行完毕之后才会回到上次 函数A执行的位置