python中def fun()是什么意思_python学习函数

函数  对象  模块

定义函数

def MyFirstFunction():

print(‘第一个函数‘)

······

调用函数

MyFirstFunction()

加入参数

def MySecondFunction(name):

print(name + ‘是谁‘)

调用含参函数

MySencondFunction(‘某某某‘)

MySecondFunction(name=‘某某某‘)

形参和实参:name是形参,传进来的具体参数才是实参

给函数写说明文档用#注释

查看注释文档

函数._doc_

help(函数)

增加默认参数

def MySecondFunction(name=‘abc‘)

收集参数

def test(*params)

print(len(params), params[1])

输入test(1,‘abc‘,3,45)

输出 4 ‘abc‘

收集参数加其他参数

def test(*params, num=6)  //最好加上默认值

print(len(params), params[1], num)

输入test(1, ‘abc‘, 3, 45, num=9)  //必须加num=,否则报错

输出 4 ‘abc‘ 9

函数与过程

python都是函数,都会有返回值

def hello():

print(‘Hello!‘)

temp = hello  输出为  Hello!  但是temp=None

没有return值的返回都是None

返回值

def back1():

return [1, ‘abc‘, 3.14]  //返回数组

def back2():

return 1, ‘abc‘, 3.14  //返回元组

局部变量和全局变量

def sum(a, b):

c = a + b

return c  //c为局部变量,外部无法直接调用c

函数可以读取调用全局变量

如果在函数内修改全局变量,只对函数内有效,尽量避免

可以在函数中用 globe c  将局部变量设为全局变量

函数的内嵌

def fun1():

print(‘abc‘)

def fun2():    //内嵌函数定义在fun1内部定义

print(‘def‘)

fun2()    //内嵌函数调用只能在fun1该函数内部使用

函数的闭包

def FunX(x):

def FunY(y):

return x*y

return FunY

调用

i = FunX(8)

i(5)  结果为40

或者

FunX(8)(5)

使用闭包时注意内部和全局变量的关系

def Fun1():

x = 5

def Fun2():

x*=x

return x

return Fun2()    //函数错误,x在Fun2中被修改

解决办法

def Fun1():

x = 5

def Fun2():

nonlocal x  //设置x为非局部变量

x*=x

return x

return Fun2()

匿名函数(lambda)

精简且不需要定义命名函数名,简化可读性

g = lambda x : 2 * x + 1

就可直接调用g(5)

g = lambda x, y : x + y

直接调用g(3, 4)

两个厉害的bif

filter(Function or None, iterable)

过滤器,去掉iterable中非ture的部分

list(filter(None,[1, 0, Ture, False]))  结果为 [1, Ture]

例如取奇数

def odd(x)

return x % 2

temp = range(10)

show = filter(odd, temp)

list(show)  结果为  [1, 3, 5, 7, 9]

简化  list(filter(lambda x : x % 2, range(10)))

map(Function, iterable)

将iterable的值分别带入function函数中,组成数组输出

list(map(lambda x : x*2, range(10)))  结果为  [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]

原文地址:https://www.cnblogs.com/jdzhang1995/p/10234799.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值