专栏首页python3python基础-函数(一)--pyth

python基础-函数(一)--pyth

python基础---函数(一)

目录 python基础---函数(一)1.函数的定义2.函数 的参数详解3.return4.lambda匿名函数

1.函数的定义

function  功能,函数
    函数就是对代码进行一个封装,把实现某一功能的相同代码,进行封装到一起。下次需要使用时,就不需要进行代码编写,直接调用即可。
好处:
    增加代码的复用性,增加代码的可读性减少代码的编写量,降低维护成本。
    函数可以看成,解决某类问题的‘工具’
定义方法:
'''
def function_name(params):
    block
    return expression(表达式)/value
'''
def 关键字表示定义一个函数
function_name 函数名,和变量的命名规则相同,以字母和_开头,可以包含字母,数字和_
params 表示参数,可以是零个,一个或者多个参数,函数参数不用指定参数类型

#examples
    def dieDai(iter):
        for i in iter:
            print(i)
    >>> li=(1,2,3,4)
    >>> dieDai(li)
    1
    2
    3
    4

2.函数 的参数详解

1.必备参数:参数没有默认值
2.默认参数:参数是有默认值,调用函数是可以传参也可以不传参,不传时,参数是默认值
3.不定长参数:可在定义是定义,也可在传入时定义传入
    定义方法:def function_name(*args,**kwargs)
    *args 将传入参数包装成元祖
    **kwargs  将传入参数包装成字典
  • [ ] #1.不传参数 def fun1(): print('不能传参数') fun1('q') Traceback (most recent call last): File "<pyshell#7>", line 1, in <module> fun1('q') TypeError: fun1() takes 0 positional arguments but 1 was given fun1() 不能传参数 #2.必备参数 def fun2(a): print('必须传参数:',a) fun2(2) 必须传参数: 2 #3.默认参数 参数可传也可不传 def fun3(b=2): print('默认参数:',b) fun3() 默认参数: 2 fun3(4) 默认参数: 4 fun3(b=10) 默认参数: 10 ##4.可选参数 可传0-多个,包装成元祖 def fun4(arg): print('可以穿0个到多个',arg) fun4() #返回一个空元祖 可以穿0个到多个 () fun4(1) #返回一个元祖 可以穿0个到多个 (1,) fun4(2,3) 可以穿0个到多个 (2, 3) fun4(4,5,6,7,8) 可以穿0个到多个 (4, 5, 6, 7, 8) fun4([1,2]) 可以穿0个到多个 ([1, 2],) fun4('sdf') 可以穿0个到多个 ('sdf',) fun4({'q':123}) 可以穿0个到多个 ({'q': 123},) fun4((1,2)) 可以穿0个到多个 ((1, 2),) #可选参数,传参时加号,就把里面的壳去掉(解包) fun4((1,2)) 可以穿0个到多个 (1, 2) fun4({'q':123}) 可以穿0个到多个 ('q',) fun4([1,2]) 可以穿0个到多个 (1, 2) fun4('sdf') 可以穿0个到多个 ('s', 'd', 'f') ##5.关键字参数 def fun5(a,b): #定义的时候跟必备参数一样 print(a,b) #必须放到最后 fun5(a=1,b=2) 1 2 def fun6(**kwarg): print('关键字参数:',kwarg) #包装成字典(可传0-多个) >>> fun6() 关键字参数: {} >>> fun6(a=1,b=2) #遵循变量名规则 关键字参数: {'a': 1, 'b': 2} >>> fun6(**{'a':123,'b':'wer'}) 关键字参数: {'a': 123, 'b': 'wer'} >>> fun6(**{1:123,2:'wer'}) #key必须是字符串 Traceback (most recent call last): File "<pyshell#48>", line 1, in <module> fun6(**{1:123,2:'wer'}) TypeError: fun6() keywords must be strings ##参数混合时 关键字参数必须在后面,根据定义的书序,确保必备参数能拿到值且只有一个 #1.必备参数+默认参数:默认参数必须在必备参数的后面 def fun7(b,a=1): print(a,b) >>> fun7(1,) 1 1 >>> fun7('q',a='we') we q >>> fun7(a='we',b='ert') we ert >>> fun7('q','w') w q #2 def fun8(b,m=1,*a): print(b) print(m) print(a) ================== >>> fun8(1,2,3,4,5,6,7,8) 1 2 (3, 4, 5, 6, 7, 8) >>> #3 def fun9(*a,b,m): #b,m为关键自参数 print(a,b,m) print(b) print(m) >>> fun9(1,2,3,4,5,b='q',m='w') (1, 2, 3, 4, 5) q w q w

3.return

return 有两个作用:
    1.用来返回函数的运行结果,或者调用另外一个函数。比如max()函数
    2.函数结束的标志。主要运行了return,就强制结束了函数。return后面的程序都不会执行
如果函数中没有写return,其实函数运行结束时,默认执行了 return None
return 语句的位置是可选的,不是固定出现再函数的最后,可以自定义在函数的任何地方。

#返回函数的运行结果
    >>> def fun1(a,b):      #返回a=2
        if a>b:
            return a
    >>> fun1(2,1)
    2
    >>> a=fun1(2,1)
    >>> a
    2
    >>> def fun1(a,b):      #返回b=None
        if a>b:
            print(a)
    >>> fun1(2,1)
    2
    >>> b=fun1(2,1)
    2
    >>> b
#函数结束的标志 可以放在任何地方
    >>> def fun10(a,b):
        if a>b:
            print(a)
    >>> fun10(2,1)
    2
    >>> def fun10(a,b):
        return('我不下去了') #函数结束标志
        if a>b:
            print(a)
    >>> fun10(2,1)
    '我不下去了'

4.lambda匿名函数

没有函数名的函数
g = lamdba x:x+1
lambda 简化了函数定义的书写形式。是代码更为简洁,但是使用函数的定义方式更为直观,易理解

lambda的应用场景:
1.有些函数如果只是临时一用,而且它的业务逻辑也很简单时,就没有必要用def来定义,这个时候就可以使用lambda。
2.函数都支持函数作为参数。lambda函数就可以应用

>>> fun10           #函数体
<function fun10 at 0x0000000003429D08>
>>> g=lambda x:x+1  #函数体
>>> g
<function <lambda> at 0x00000000034371E0>
>>> g(1)
2

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • python 函数

    函数能提高应用的模块性,和代码的重复利用率。你已经知道Python提供了许多内建函数,比如print()。但你也可以自己创建函数,这被叫做用户自定义函数。

    py3study
  • 学习笔记-小甲鱼Python3学习第十七

    优秀的东西永远是经典的,经典的东西永远是简单的,不是说复杂不好,而是能够把复杂的东西简单化,堪称经典。

    py3study
  • Python 函数调用&定义函数&函数参

    在python中内置了很多函数,我们可以直接调用 。想要调用函数首先要知道函数的名称及包含的参数,还可以通过查看python官方的文档:https://docs...

    py3study
  • Python 函数调用&定义函数&函数参

    在python中内置了很多函数,我们可以直接调用 。想要调用函数首先要知道函数的名称及包含的参数,还可以通过查看python官方的文档:https://docs...

    py3study
  • python-函数基础

    def test(): a = 10 ​ # 不能再函数外部使用,此处会报错 print(a)

    py3study
  • python中的函数

    1.什么是函数 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。 函数能提高应用的模块性,和代码的重复利用率。 2.定义一个函数 1.函数代码...

    py3study
  • python笔记13

    函数调用,通过“键=值”形式加以指定。可以让函数更加清晰、容易使用,同时也清除了参数的顺序需求。

    林祈
  • C#向excel中写入数据的三种方式

    第一种:将DataGrid中的数据以流的形式写到excel中,格式以html的形式存在             Response.Clear();       ...

    岑玉海
  • Python学习笔记 控制流和函数

    控制流 条件语句 Python只有一种条件语句,那就是if语句。如果需要多重分支,使用if-elif-else结构。Python没有switch语句,条件语句只...

    乐百川
  • 关于VB6.0中控件加载的难题

    版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/huyuyang6688/article/...

    DannyHoo

扫码关注云+社区

领取腾讯云代金券