函数和代码的复用
##定义一个对于整数n求阶乘的函数
def fact(n):
s=1
for i in range(1,n+1):
s *= i
return s
定义完后函数就可使用
>>> print(fact(10))
3628800
也可定义fact为两个参数的函数,必须的参数放在前,不必要的放在后,用逗号隔开(1为m的初始值)
若要同时输出结果和参数,可在return后添加
##定义一个对于整数n!同时计算n!//m的函数
def fact(n,m=1):
s=1
for i in range(1,n+1):
s *= i
return s//m,n,m
n,m可通过位置传递,也可直接名称传递
>>> print(fact(10))
3628800,10,1
>>> print(fact(10,5))
725760,10,5
>>> print(fact(m=5,n=10))
725760,10,5
*b为可变参数(可给出多个参数)
##定义一个对于整数n!并和给出的其他参数相乘的函数
def fact(n,*b):
s=1
for i in range(1,n+1):
s *= i
for item in b:
s *= item
return s
>>> print(fact(10))
3628800
>>> print(fact(10,3,5,8))
435456000
全局变量和和局部变量
##全局变量和和局部变量
n,s=10,100
def fact(n):
s=1
for i in range(1,n+1):
s *= i
return s
print(fact(n),s)
输出结果为3628800 100
保留字global,声明某一变量为全局变量
n,s=10,100
def fact(n):
global s
for i in range(1,n+1):
s *= i
return s
print(fact(n),s)
输出结果为362880000 362880000
局部变量为组合数据类型且未创建,等同于全局变量
##局部变量为组合数据类型且未创建,等同于全局变量
Is = ["F","f"]
def func(a):
Is.append(a)
return
func("C")
print(Is)
>>>['F', 'f', 'C']
Is = ["F","f"]
def func(a):
Is=[]
Is.append(a)
return
func("C")
print(Is)
这段代码中定义中的Is为局部变量,但输出全局变量
>>>['F', 'f']
lambda函数
lambda函数返回函数名作为结果,一般在某一参数有函数形式是使用
>>> f = lambda x,y : x+y
>>> f(10,15)
25
>>> f = lambda : "lambda函数"
>>> print(f())
lambda函数