用简易代码快速学习Python(三)

本学习系列介绍:

本学习系列主要针对对编程略有了解有其他语言基础并要进一步学习Python的同学,通过简易的代码快速入门掌握Python语言。

系列总目录:
用简易代码快速学习Python(一)
用简易代码快速学习Python(二)
用简易代码快速学习Python(三)
用简易代码快速学习Python(四)
用简易代码快速学习Python(五)
用简易代码快速学习Python(六)
用简易代码快速学习Python(七)
用简易代码快速学习Python(八)
用简易代码快速学习Python(九)
用简易代码快速学习Python(十)

Day03:

函数文档:

def MyFirstFunction(name):
    '函数定义过程中的name叫做形参,实际传进来的数据叫做实参。' #函数第一行字符串为函数文档,用于解释函数。
    print(name)

print(MyFirstFunction.__doc__) #直接输出函数文档的字符串。

help(MyFirstFunction) 
#以下为help函数方式的输出:
#Help on function MyFirstFunction in module __main__:
#
#MyFirstFunction(name)
#    函数定义过程中的name叫做形参,实际传进来的数据叫做实参。

函数的一些知识点:

关键字参数:

def SaySome(name, words):
    print(name + ':' + words)

SaySome(words='123', name='lxy') #输出:lxy:123

默认参数:

def SaySome(name, words = '123'):
    print(name + ':' + words)

SaySome('111') #输出:111:123

注意:默认参数后不能再出现普通形式的参数,只能是默认参数或收集参数,普通参数只能出现在默认参数之前。

收集参数:

def test(*params):
    print('参数长度为:' , len(params))
    print(params[1])

test(1, '111', 234, 3.14)
#输出:
#参数长度为: 4
#111

注意:如果收集参数后还有其他参数,那么其他参数应该使用默认参数或普通参数的关键字形式传入。

局部变量和全局变量:

注意:在函数中可以访问全局变量,但在函数中直接修改全局变量是无效的(这里与Java不同),Python此时会生成一个和全局变量名称相同的局部变量来运算,而全局变量没有真正改变。如果想要真正的在函数中修改全局变量,需要在函数中用global关键字修饰该全局变量。

闭包:

闭包:如果在一个内部函数中,对在外部作用域的变量的引用,称这个内部函数为一个闭包。

例如:

def Function1(x):
    def Function2(y):
        return x * y
    return Function2 #注意这里不是Function2(),没有括号。

a = Function1
print(type(a)) #输出:<class 'function'>
print(type(a(2))) #输出:<class 'function'>
print(a(2)(3)) #输出:6

注意:如果想在闭包中对外部作用域的变量进行修改(相当于在局部对全局变量的修改),需要使用nonlocal关键字(相当于global关键字)对需要修改的外部变量进行修饰才能修改,否则只会生成一个和外部变量名称相同的局部变量来运算,而外部变量没有真正改变。

例如:

def Function3():
    x = 5
    def Function4():
        nonlocal x
        x = x * 3
        return x
    return Function4()

print(Function3()) #输出:15

Lambda表达式:

Python写一些执行脚本时,使用Lambda表达式就可以省下定义函数的过程,使得代码更加精简。

f = lambda x : 4 * x + 5
print(f(4)) #输出:21

f = lambda x, y : x + y
print(f(3, 5)) #输出:8

过滤器filter函数:

filter(function or None, iterable)

若第一个参数为None,代表直接过滤掉iterable中的0和false。

若第一个参数为函数,则根据函数运算后进行过滤掉iterable中的0和false。

返回值为一个filter类型的对象,需要用容器接收。

例如:

def odd(x):
    return x % 2
temp = range(10)

print(type(filter(odd, temp))) #输出:<class 'filter'> 
print(list(filter(odd, temp))) #输出:[1,3,5,7,9]

也可以使用Lambda表达式简化:

print(list(filter(lambda x : x % 2, range(10)))) #输出:[1,3,5,7,9]

映射map函数:

map(func, *iterables)

返回值为一个map类型的对象,需要用容器接收。

例如:

print(list(map(lambda x, y : x * 2 + y, [1,2,3], [9,6,5,1]))) #输出:[11, 10, 11]
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

刘学长丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值