函数前引用:函数即变量,需要在引用前定义好。
def test ():
print("from test")
test1()
def test1():
print("from test1")
test()
def test ():
print("from test")
test1()
test()
def test1():
print("from test1")
递归:例如:问路的事情(问了很多人),最后一个人知道了在回传回来
递归:1.必须有个明确的结束条件,函数见return就结束了
2.递归浪费空间
# def test(n):
# print(n)
# if int(n/2) == 0:
# return n
# return test(int(n/2))
#
# test(10)
问路的程序:
# person_list=["xiaoming","zhangsan","lisi","wanger","haha"]
# def ask_way(person_list):
# if len(person_list)==0:
# return '根本没有人知道'
# person=person_list.pop(0)#从列表中弹出一个人进行问路
# if person=="wanger":
# return "%s说,我知道,**在什么路上***"%person
#
# res=ask_way(person_list)#只要是递归就会存在自己调用自己
# return res
# res=ask_way(person_list)
# print(res)
回顾:
1.全局变量:顶头写的
2.局部变量:有缩颈,先从自身找,没有找上一级
3.lobal修改全局变量
4.nonlocal修改上一级变量
5.前向应用
6.递归:自身调用自身,需要明确的结束条件