函数学习
练习代码
用def 关键字定义函数
全局变量和局部变量
定义在函数外的变量看作全局变量,在堆当中
定义在函数内的变量看作局部变量,在栈当中
内嵌函数
函数中,再定义一个函数,这个函数只能再这个上一级函数中调用,不能越级。
全局变量,在函数中使用时要用关键字 global声明 ,
内嵌函数与上一级函数的关系,和函数 与主函数(不知道怎么称呼)类似。
定义在函数中的函数,要使用外部函数的局部变量时,可以使用关键字 nonlocal声明
lambda 可以用于声明 无名函数
x=lambda x:x*x
x(8)
递归
自己初用python写递归函数
sum=1
i=1
n=10
def factorial():
global sum,i,n,sum
sum*=i
i=i+1
if i<=n:
return factorial()
else:
return sum
print(factorial())
例程
def factorical(n):
if n==1:
return 1
else :
return n*factorical(n-1)
print(factorical(10))
裴波那齐数列
递归方法
def algorithm(n):
if n==1:
return 1
elif n==2:
return 1
else :
return algorithm(n-1)+algorithm(n-2)
print(algorithm(12))
迭代方法
def algorithm(n):
last=before_last=1
if n==1:
result=1
elif n==2:
result=1
else :
for i in range(3,n+1):
result=last+before_last
before_last=last
last=result
return result
print(algorithm(12))
汉诺塔
def algorithm(n):
if n==1 :
return 1
else :
return 2*algorithm(n-1)+1
print(algorithm(12))
新学字符串打印方法
print('这篇文章共有%d字'% 897)