Python零基础入门讲义:函数的用法

作者 : 开心源码 本文共3205个字,预计阅读时间需要9分钟 发布时间: 2022-05-12 共167人阅读

目录:

1.定义、使用函数

  1.函数定义:def

  2.函数调用:例:myprint()

学习Python中有不明白推荐加入交流群

? ? ? ? ? ? ? ? 号:864573496

? ? ? ? ? ? ? ? 群里有志同道合的小伙伴,互帮互助,

? ? ? ? ? ? ? ? 群里有不错的视频学习教程和PDF!

  3.函数可以当作一个值赋值给一个变量 例:a=myprint()? ? a()

  4.写return? ?return必需是最后一句,不写return返回null

2.函数的参数

  1.不带参数的函数

  2.带固定参数的函数

  3.带可变参数的函数

  4.带关键字参数的函数

  5.参数顺序:固定、可变、关键字参数? ? #可变参数最多只能有一个

3.变量的作用范围

  1.全局变量:除在函数内公告的变量都是全局变量

  2.局部变量:当一个变量同时存在于函数内和函数外,函数内优先使用局部变量

  3.函数再调用之前,函数内部的变量必需再调用之前存在

  4.global 改的是全局变量

  5.nonlocal用在嵌套函数,内层改外层

4.可变量与不变量

  1.函数内部不能修改不变量,在内部只是把值传进去,外部依然是原来的值

  2.可变量:列表、字典、集合

  3.不变量:数字、字符串、元组

5.匿名函数与高阶函数

  1.匿名函数:很短,只用一次

  2.高阶函数:

      过滤:filter

      遍历:map

      递归:reduce

      排序:sorted

2.函数的参数

print(“函数的定义:”)

print(“不带参数的定义:”)

def myfunc():

? ? print(“哈哈”)

? ? return1myfunc()

a=myprint()#先将myprint函数执行一遍,将返回值赋给 aprint(“a的值:”,a)print(“a的类型”,type(a))

b=myprint#b 即myprint函数b()#调用函数print(“b的值:”,b)print(“b的类型”,type(b))print(“带固定参数的定义:”)def myfunc2(a1):

? ? c=sum(a1)

? ? print(c)

myfunc2([1,2])print(“带可变参数的定义:”)defmyfunc3(*args):

? ? c=sum(args)

? ? print(c)

myfunc3()

myfunc3(1)

myfunc3(1,2,3)print(“固定参数与可变参数:”)defmyfunc4(a,*args):

? ? print(a,args)

myfunc4(“a”,”b”)

myfunc4(“a”,”b”,”c”)print(“固定参数、可变参数、关键字参数:”)defmyfunc5(a,*args,k=2):

? ? print(a,args,k)

myfunc5(1,2)

myfunc5(1,2,3,k=3)

3.变量的作用范围

#全局变量print(“全局变量:”)

a=”sss”foriin a:

? ? m=iprint(a)print(m)print(“局部变量:”)def mycount():

? ? a=1? ? b=2print(“局部a”,a)

? ? returna+b

res=mycount()print(res)print(“全局a”,a)print(“函数内修改全局变量:”)

d=9a=3def myfunc(a1,a2):

? ? globala#函数内部修改全局变量a=4print(“内部a”,a)

? ? returna1+a2print(myfunc(a,d))print(“全局a”,a)print(“嵌套函数变量:”)def f1():

? ? a=3def f2():

? ? ? ? nonlocal a? ? ? #只在嵌套函数中使用,内层修改外层print(a)

? ? ? ? a=5? ? f2()

? ? print(a)

f1()

4.可变量与不变量

a1=”abc”b1=[1,2,3]print(“不可变量字符串与可变变量列表的用法”)def f1(a,b):

? ? a+=”d”print(a)

? ? b.append(4)

? ? print(b)

f1(a1,b1)print(“字符串是不可变量”,a1,”列表是可变量”,b1)#字符是不可变量,在函数外值还是原来的值,列表是可变量,在函数内修改,函数外也跟着修改print(“不可变量数字的用法:”)

c1=66def f2(c):

? ? c+=6print(c)

f2(c1)print(“数字是不可变量”,c1)print(“可变变量集合的用法:”)

d1={1,4}def f3(d):

? ? d.add(7)

? ? print(d)

f3(d1)print(“可变变量集合”,d1)print(“可变量字典的用法:”)

e1={1:”x”,2:”y”}def f4(e):

? ? e[1]=”m”print(e)

f4(e1)print(“可变量字典”,e1)

?5.匿名函数与高阶函数

filter:?filter(function,sequence),function可以是匿名函数或者者自己设置函数,它会对后面的sequence序列的每个元素判定能否符合函数条件,返回TRUE或者者FALSE,从而只留下TRUE的元素;sequence可以是列表、元组或者者字符串?

map:它接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回

reduce:reduce(function,iterable),其中function必需传入两个参数,iterable可以是列表或者者元组

sorted:函数对所有可迭代的对象进行排序操作。

python 匿名函数与高阶函数#匿名函数lambdaprint(“匿名函数:”)

f=lambdai:i*2print(f(3))

f2=lambdam,n:m*nprint(f2(2,4))print(“高阶函数:”)#挑选filterprint(“挑选filter:”)

result=[(“G211″,”5″,””),

? ? ? ? (“D311″,”7″,””),

? ? ? ? (“T411″,””,”8″),

? ? ? ? (“K511″,””,”6″)

? ? ? ? ]print(list(filter(lambdai:i[0][0]in”GD”,result)))print(list(filter(lambdai:i[0][0]notin”GD”,result)))#遍历mapprint(“遍历map:”)

list(map(print,filter(lambdai:i[0][0]in”GD”,result)))

list(map(print,filter(lambdai:i[0][0]notin”GD”,result)))

list(map(lambdax: x ** 2, [1, 2, 3, 4, 5]))print(list(map(abs,[-1,2,-3,4])))#递归reduceprint(“递归reduce:”)fromfunctoolsimport reducedef add(x,y):

? ? returnx+yprint(reduce(add,[1,2,3,4,5]))print(reduce(lambdai,j:i+j,[1,2,3,4,5]))#排序sortedprint(“排序sorted:”)print(sorted([1,5,7,3,-2]))print(sorted([1,5,7,3,-2],reverse=True))#reverse=True从大到小排序,默认从小到大l=[(‘a’, 1), (‘b’, 2), (‘d’, 6), (‘e’, 4), (‘c’, 3)]print(sorted(l,key=lambda i:i[0]))print(sorted(l,key=lambdai:i[0],reverse=True))

说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » Python零基础入门讲义:函数的用法

发表回复