Python基础-函数

小菜UP 2018-05-09 22:58:12

函数

定义:函数是组织好的一组语句的集合,可重复使用的,用来实现单一,或相关联功能的代码段。

也就是将一些重复做的事情、动作,提取出来通过定义一个函数来实现代码的复用,同时也是代码可扩展、易维护。

语法定义:

python定义函数通过def关键字,一般格式如下:

def 函数名(参数列表):
	函数体 
def output(): 
	print("hello world !") 
#调用函数 
	output() 
#输出结果 'helloworld'

默认情况下,参数值和参数名称是按函数声明中定义的顺序匹配起来的。

带参数实例

def area(height,width) :
	res = height * width
	return res
area(4,5) #20

注:这里要说明一下,如果你想要一个函数的执行结果,你可以使用return,把结果返回。也意味着这个函数执行结束了。如果函数中没有指定return,那么返回值为None。

函数参数与局部变量

形参只有被调用时才分配内存地址,在调用结束之后,会立即释放内存,形参只有在函数内部有效,函数结束之后,无法调用形参。

实参可以是常量、变量、表达式、函数等,无论实参是何种类型的量,在进行函数调用时,它们都必须有确定的值,以便把这些值传送给形参。因此应预先用赋值,输入等办法使参数获得确定值。

非固定参数

若你在定义函数时,不确定传入多少个参数时,可以使用非固定参数。

def info (name,age,*args): 
	print(name,age,args)
info('jack',22) 
# 输出: Jack, 22 () 
# 后面()就是args,因为没有传值,所以是空的
info('tom',22,'181cm','72kg')
# 输出: 'tom',22,('181cm',72k) 
# *args 会把多个传入的参数变成一个元组形式。

还有一种**kwargs

def info (name,age,*tup,**dic) :
    print(name,age,tup,dic)
info('Jerry',24)
'''
 输出: Jerry,24 () {}
 后面{} 这个就是
kwarge,没有传值,所以为空。'''
info('jerry',24,'176cm','60kg',sex='male',addr='未知')
# 输出:jerry,24,('176cm','60kg') 
{'sex':'male','addr':'未知'}
# **dic会把传入的多个参数变成一个字典的形式。

全局变量与局部变量

首先,要知道变量是做什么的,变量就是存储数据的。

全局变量:程序在一开始就定义的变量,作用于整个程序中,在函数,类中,子程序中可以访问,使用。

局部变量:就是定义在子程序中的变量,它只能在子程序中,被访问,被使用。在子程序外,是不能使用局部变量的。

小结: 在程序中,当全局变量和局部变量,变量名相同时:在定义局部变量的子程序内,局部变量起作用;在其它地方全局变量起作用。

匿名函数

匿名函数就是不需要显式的指定函数

# 一般函数
def calc(n) :
    return n**n
print(calc(10))
# 匿名函数
calc = lambda n:n**n
print(calc(10))

# 输出同样的结果:10000000000