python--函数

函数的基本操作

定义函数

1
2
3
#使用def来定义一个函数myfun,来实现x的累加
def myfunadd(x):
	x = x + 1

位置参数

1
2
3
4
5
6
7
8
9
10
11
#位置参数
def func(a,b,c):
    return"".join((c,b,a)) #使用join表示在后面添加字符串
print(func("我", "是", "你"))

#帮助函数中的/:代表着/的左边不能指定参数的名字,只能指定其值,但是/的右边就无所谓了。
#我们还可以用*来代替/ *的左边不能用参数的名字,但是右边要用
def fun(a,*,b,c):
	print(a,b,c)
fun("d","e","g") #error,第二第三个参数要加参数名字
fun("d",b="e",c="g") #d e g

收集参数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#收集函数即只指定一个参数,然后允许调用函数时传入任意数量的参数。在函数的形式参数之前加上*号即可
def myfun(*var):
    print("一共传入了{}个参数".format(len(var)))
    print("第二个参数是{}".format(var[1]))

#注意只能指定一个带*号的参数,要是需要其他的形式参数,那么需要用到关键字参数。
def myfun2(*var,a,b):
    print(var,a,b)
myfun2("Deng",a="Gao",b="zheng") #像这样a和b使用了关键字参数即可

#在形式参数之前加上两个*代表着传入的参数可以自动转换成为字典
def myfun(**var):
    print(var) #
myfun(a=1,b=2,c=3) #('a':'1','b':'2','c':'3')即为字典形式

#综合
def xing(a,*b,**c):
    print("a=",a,"b=",b,"c=",c)
xing("deng",1,2,3,c="zheng")

#!!!个人总结:1.对于没有星的参数来说,在传入参数时只要出现“,”,那么就会自动跳到下一个参数!2.对于有一个星的参数来说,不能使用关键字参数来传递参数给它!!!否则会报错,它会自动收集剩下的数,即捡破烂。3.对于有两个*的参数来说,你必须要使用关键字参数来传递,因为它会让你的数变成字典!

综上:没有星无所谓使不使用关键字参数,有一个星不能使用关键字参数,两个星必须使用关键字参数。

解包参数

1
2
3
4
5
6
7
8
9
10
11
#先定义参数的值,然后再传递参数
var = (1,2,3)
def fun(a,b,c):
    print(a,b,c)
fun(*var)  #1,2,3 这样就是解包啦!

#字典的解包
var = ('a' = '1','b' = '2','c' = '3')
def fun(a,b,c):
    print(a,b,c)
fun(**var)

闭包

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#在函数中定义函数
def funA():
    x = 888
    def funB(): #这个funB函数的作用域就在funA中,外部调用funB会报错的。
    	print(x)
    funB() 
    
def outer():
    x=0
    y=0
    def inner(x1,y1):
        print(x,y)
#使用下列语句可以调用inner函数!
outer()() #第一个括号表示调用outer函数,第二个括号表示inner函数

回调函数

1
2
3
4
5
6
#函数中函数的名称可以做参数
def avg(x,y):
    return (x+y)/2
def f(函数名,x,y):
    函数名(x,y)  #我们这里把参数的名字当中函数名
f(avg,2,4) #这里实现的就是avg(2,4) = 3
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值