博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python基础-函数(一)--python3
阅读量:6360 次
发布时间:2019-06-23

本文共 3735 字,大约阅读时间需要 12 分钟。

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 "
    ", line 1, in
    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 Nonereturn 语句的位置是可选的,不是固定出现再函数的最后,可以自定义在函数的任何地方。#返回函数的运行结果    >>> 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+1lambda 简化了函数定义的书写形式。是代码更为简洁,但是使用函数的定义方式更为直观,易理解lambda的应用场景:1.有些函数如果只是临时一用,而且它的业务逻辑也很简单时,就没有必要用def来定义,这个时候就可以使用lambda。2.函数都支持函数作为参数。lambda函数就可以应用>>> fun10           #函数体
>>> g=lambda x:x+1 #函数体>>> g
at 0x00000000034371E0>>>> g(1)2

转载于:https://blog.51cto.com/1054054/2088296

你可能感兴趣的文章
flutter 教程(一)flutter介绍
查看>>
CSS面试题目及答案
查看>>
Spring自定义注解从入门到精通
查看>>
笔记本触摸板滑动事件导致连滑的解决方式
查看>>
Runtime 学习:消息传递
查看>>
你了解BFC吗?
查看>>
linux ssh tunnel使用
查看>>
十、详解FFplay音视频同步
查看>>
自定义元素探秘及构建可复用组件最佳实践
查看>>
自定义Linux service脚本
查看>>
ICMP
查看>>
CentOS6 手动编译升级 gcc
查看>>
memcached的安装与开启脚本
查看>>
zabbix 邮件报警 -- sendmail
查看>>
JavaScript异步编程
查看>>
tcpdump用法小记
查看>>
Oracle随机函数—dbms_random
查看>>
windows下开发库路径解决方案
查看>>
linux迁移mysql数据目录
查看>>
脚本源码安装LNMP
查看>>