Python之函数
函数分为无参函数和有参函数
#!/usr/bin/env python
# -*- coding:utf8 -*-
# @Time : 2017/11/1 9:01
# @Author : hantong
# @File : def.py
#函数分为无参函数和有参函数
#无参函数形如如下:
def hello():
print "Hello World"
hello()
#有参函数形如如下:
def fun(x, y):
print(x)
print(y)
return x+y #return只能返回一次,只要执行return函数就终止了
sum = fun(10,3)
print(sum)
#总结:def 是固定语句,后跟函数名称(函数名称可以任意取值,但不能重复&同名),如上面的hello,fun都是函数名称
# 函数名称后面必须跟上(),括号后面是:,注意:()里面根据自己的需要添加参数
def funcA(a,b=0):
print(a)
print(b)
funcA(1)
funcA(1,20)
#总结:如果实参传入数据的时候,已经有默认值(上例中b=0),输出传入的值,如果没有传入值,则输出默认值
#当参数为tuple时
def funcD(a,b,*c):
print(a)
print(b)
print(c)
tuple = ('hello','world')
funcD(1,2,*tuple)
#tuple前面的*号是解包
funcD(1,2,3,4,5,6)
#当参数为dict时
def funcF(a,**b):
print(a)
print(b)
dict = {'hi':'hello','wo':'world'}
funcF(100,**dict)
#dict前面加上**是解包
funcF(100,x="hello",y="你好")
匿名函数lamb
匿名函数
python 使用 lambda 来创建匿名函数。
- lambda只是一个表达式,函数体比def简单很多。
- lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。
- lambda函数拥有自己的命名空间,且不能访问自有参数列表之外或全局命名空间里的参数。
- 虽然lambda函数看起来只能写一行,却不等同于C或C++的内联函数,后者的目的是调用小函数时不占用栈内存从而增加运行效率。
语法
lambda函数的语法只包含一个语句,如下:
lambda [arg1 [,arg2,.....argn]]:expression
[arg1 [,arg2,.....argn]]:expression
实例:
#!/usr/bin/env python
# -*- coding:utf8 -*-
# @Time : 2018/4/13 14:19
# @Author : hantong
# @File : 20180413_def.py
g = lambda x : x**2
print(g(2))
sum = lambda arg1, arg2, arg3 : arg1+arg2+arg3;
print("相加后的值为: ",sum(10,20,30))
执行结果:
X的平方是: 4
相加后的值为: 60