|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 shuofxz 于 2016-7-23 20:58 编辑
如下代码,是一个递归调用的函数。比如输入5的时候,test(5),在执行最后一次递归的时候temp=0,进入到else里面,执行的时候发现这行代码是执行了的 print("return前输出的语句"),但是却没有打印出100来,是return没有执行吗?
- def test(temp):
- #默认输入一个大于零的整数
- if temp:
- print(temp)
- print('A')
- temp = temp // 2
- test(temp)
- print('B')
- else:
- print("return前输出的语句")
- return 100
- print("return后输出的语句")
复制代码
还有第二种情况,我把return语句写到了if判断的外面,递归的时候多次执行了这个函数,然而最后的输出却只打印了一个100,这是为什么?
- def test(temp):
- #默认输入一个大于零的整数
- if temp:
- print(temp)
- print('A')
- temp = temp // 2
- test(temp)
- print('B')
- else:
- print("return前输出的语句")
- return 100
- print("return后输出的语句")
复制代码
|
|