函数执行过程和递归函数练习题

函数执行过程和递归函数练习题

可以通过网页工具查看代码执行过程,链接如下:
函数的执行过程:
def foo1(b,b1=3):
print(“foo1 called”,b,b1)
return 1
def foo2(c):
print(“foo2 called”,c)
return foo3(c)
def foo3(d):
print(“foo3 called”,d)
return 3
def main():
print(“main called”)
foo1(100,101)
foo2(200)
return (“main ending”, foo1(1) + foo2(2) + foo3(3))
print(main())
斐波那契数列:
函数嵌套形式:{{{}{}}{{}{}}}
#F(0)=0, F(1)=1, F(n)=F(n-1) + F(n-2)
def fib(n):
return 1 if n < 2 else fib(n-1) + fib(n-2)
fib(5)
#F(0)=0, F(1)=1, F(n)=F(n-1) + F(n-2)
pre = 0
cur = 1
print(pre,cur,end=’ ‘)
def fib(n,pre = 0, cur = 1):
pre, cur = cur, pre + cur
print(cur, end = ‘ ‘)
if n == 2:
return
fib(n-1,pre,cur)
fib(5)
阶乘:
函数嵌套形式{{{{}}}}
def fac(n):
if n == 1:
return 1
return n * fac(n-1)
fac(5)
def fac(n, m = 1):
if n == 1:
return m
m *= n
return fac(n-1,m)
fac(5)
逆序打印数字:
将一个数字逆序放入列表中,例如1234 => [4,3,2,1]
nums = 12345789
def revert(nums, lst=[]):
x,y = divmod(nums, 10)
lst.append(y)
if x == 0:
return lst
return revert(x)
print(revert(nums))
strsample = “abcdef”
# nums = str(nums)
def revert(strsample, lst=[]):
if len(strsample) == 0:
return lst
lst.append(strsample[-1])
return revert(strsample[:len(strsample)-1],lst)
print(revert(strsample))
clipboard
解答:
y = x/2 – 1
def peach(n, x = 1):
if n == 1:
return x
x = 2 * (x + 1)
return peach(n-1, x)
print(peach(10))
def peach(days=1):
if days == 10:
return 1
num = (peach(days+1) + 1)*2
return num
print(peach())
def peach(days=10):
if days == 1:
return 1
return (peach(days-1) + 1)*2
print(peach())

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/96399

(0)
JacoJaco
上一篇 2018-04-16 14:50
下一篇 2018-04-16 19:53

相关推荐

  • 封装与解构 集合

    封装和解构 封装:将多个值进行分割,结合在一起,本质上返回元组,只是省掉了小括号 ‘==‘意思为内容一致,‘=’意思为内存空间一致 解构:把线性结构的元素解开,并顺序的赋值给其他变量,左边接纳的变量数要和左边解开的元素数量一致 集合不是非线性 解构中使用*变量名接收,但不能单独使用,被*变量名收集后组成一个列表 第一个下划线为9,结果被第二个下划线重新赋值为…

    Python笔记 2018-04-01
  • Python学习第十三周总结

    网络协议和管理、http服务和Apache

    2018-06-03
  • Python第三周小结

    经过了三周的学习,我们已经基本完成了Python基础数据结构的学习,包括列表,字符串,元组,bytes, bytearray, set, 字典等。为了更好的理解和熟练使用这些基本的数据结构,我将它们各自的特点分别总结 并做成了表格,希望能够帮助我们更好的理解的同时,熟练掌握这些数据结构。    

    2018-04-10
  • 树 概念


    二叉树

    2018-04-16
  • 第一周作业

    linux基础

    Python笔记 2018-05-12
  • IPython封装解构和集合

    IPython Shell命令 !command 执行shell命令 !ls -l , !touch a.txt file = !ls -l | grep py 魔术方法 使用%开头的,IPython内置的特殊方法 %magic 格式 %开头是line magic %% 开头是cell magic,notebook的cell %alias 定义一个系统命令的…

    Python笔记 2018-03-31