1. 函数定义规范:
  1. def test(a):
  2. """
  3. 返回输入字符
  4. :param a:
  5. :return: a
  6. """
  7. return a
  8.  
  9. # 函数定义规范:
  10. # def:定义函数的关键字
  11. # test:函数名
  12. # ():可定义形参
  13. #""" """: 函数介绍
  14. #return:定义返回值

 

函数参数

  1. 形参:在定义函数和函数体的时候使用的参数,目的是在函数调用的时候接受实参(形参和实参要一一对应)
    实参:调用函数传给函数的参数,可以是常量、变量、表达式、函数
  1. 实参:大概分为位置参数、默认参数、关键字参数、参数组
  2.  
  3. 调用函数实参使用标准: 形参和实参要一一对应;关键字参数一定要放在位置参数的后面;关键字参数调用,位置无需固定
  1. def test(x,y):
  2. print("y= %s"%y,end=",")
  3. print("x= %s"%x)
  4.  
  5. test(3,4) ##纯位置参数调用
  6. #>>>y= 4,x= 3
  7. test(y=5,x=3)##纯关键字参数调用,可以无序
  8. #>>>y= 5,x= 3
  9. test(3,y=5)
  10. #>>>y= 5,x= 3
  11. test(x=3,4) ###这样调用会报错,因为关键字参数一定要放在位置参数的后面
  12. #>>>报错
  13. test(3,x=4) ##这样也会报错,相当于位置参数给形参x赋值了,然后关键字参数又给x赋值了
  14. #>>>TypeError: test() got multiple values for argument 'x'
  1. 形参使用标准: 必须是最先为位置参数,然后为默认参数,最后为参数组(先**args,再**kwargs
  1. def test(x,y,z=3,*args,**kwargs):
  2. print("x= %s"%x,end=",")
  3. print("y= %s"%y,end=",")
  4. print("z= %s" %z)
  5.  
  6. test(1,3,4)
  7. #>>>x= 1,y= 3,z= 4

 默认参数和参数组调用

  1. 默认参数:既可以用位置参数调用,也可以用关键组参数调用
    *args:N个位置参数转换为元组形式
    有两种方法调用:1.接受一般位置参数
    2.*和数组|元组|集合进行搭配
    **kwargs:N个关键字参数转换为字典形式
    有两种方法调用:1.接受一般关键字参数
    2.*和字典进行搭配
  1.  
  1. def test(x,y,z=3,*args,**kwargs):
  2. print("x= %s"%x,end=",")
  3. print("y= %s"%y,end=",")
  4. print("z= %s" %z,end=",")
  5. print(args,end=",")
  6. print(kwargs)
  7.  
  8. """
  9. 默认参数即可以用位置参数调用,也可以用关键组参数调用
  10. """
  11. test(1,3,4)
  12. #>>>xx= 1,y= 3,z= 4,(),{}
  13. test(1,3,z=5)
  14. #>>>x= 1,y= 3,z= 5,(),{}
  15.  
  16. """
  17. *args:把N个位置参数转换为元组形式
  18. 有两种方法调用:1.接受一般位置参数
  19. 2.*和数组|元组|集合进行搭配
  20. """
  21. test(1,2,3,4,5,6)
  22. #>>>x= 1,y= 2,z= 3,(4, 5, 6),{}
  23. test(1,2,3,*(4,5,6))
  24. #>>>x= 1,y= 2,z= 3,(4, 5, 6),{}
  25. test(1,2,3,*[4,5,6])
  26. #>>>x= 1,y= 2,z= 3,(4, 5, 6),{}
  27. test(1,2,3,*{4,5,6})
  28. #>>>x= 1,y= 2,z= 3,(4, 5, 6),{}
  29.  
  30. """
  31. *args:把N个关键字参数转换为字典形式
  32. 有两种方法调用:1.接受一般关键字参数
  33. 2.*和字典进行搭配
  34. """
  35. test(1,2,3,m=4,n=5)
  36. #>>>x= 1,y= 2,z= 3,(),{'m': 4, 'n': 5}
  37. test(1,2,3,**{"m":4,"n":5})
  38. #>>>x= 1,y= 2,z= 3,(),{'m': 4, 'n': 5}
  1. 关键字参数调用无序性:
  1. def test(x,y,z=3,*args,**kwargs):
  2. print("x= %s"%x,end=",")
  3. print("y= %s"%y,end=",")
  4. print("z= %s" %z,end=",")
  5. print(args,end=",")
  6. print(kwargs)
  7.  
  8. test(1,2,m=4,n=5,z=6)
  9. #>>>x= 1,y= 2,z= 6,(),{'m': 4, 'n': 5}

返回值:  

  1. 返回值数为0时,返回None;
    返回值数为1时,返回object;
    返回值数>1时,返回元组
  1. def test1(x):
  2. pass
  3.  
  4. def test2(x):
  5. return x
  6.  
  7. def test3(x,y,z):
  8. return x,y,z
  9.  
  10. print(test1(1))
  11. #>>>None
  12. print(test2(1))
  13. #>>>1
  14. print(test3(True,"hello",3))
  15. #>>>(True, 'hello', 3)
  1. 高阶函数:
  2. 一个函数可以接受另一个函数作为参数。
    a:把一个函数名当做实参传给另一个函数
    b:返回值中包含函数名
  1. def add(x, y, f):
  2. return f(x) + f(y) ##理解f为函数名
  3. #当我们调用add(-5, 6, abs)时,参数x,y和f分别接收-5,6和abs
  4.  
  5. print(add(-5,6,abs)) ##调用时直接使用函数名调用
  6. #>>>11

  

  1. 递归函数:
  1. 递归函数特点:
    1.必须有一个明确的结束条件
    2.每次进入更深的递归时,问题规模相比上次递归应有所减少
    3.递归效率不高
  1. def test(n):
  2. if n>0:
  3. n = n // 2
  4. print(n)
  5. return test(n)
  6. return "over"
  7.  
  8. print(test(10))

  

  1.  

【python】传入函数的更多相关文章

  1. Python的函数式编程-传入函数、排序算法、函数作为返回值、匿名函数、偏函数、装饰器

    函数是Python内建支持的一种封装,我们通过把大段代码拆成函数,通过一层一层的函数调用,就可以把复杂任务分解成简单的任务,这种分解可以称之为面向过程的程序设计.函数就是面向过程的程序设计的基本单元. ...

  2. python的函数

    函数一词起源于数学,但是在编程中的函数和数学中的有很大不同.编程中的函数式组织好的,可重复使用的,用于实现单一功能或相关联功能的代码块. 我们在学习过程中已经使用过一些python内建的函数,如pri ...

  3. 【Python】函数基础简介

    一.函数 1. 简介 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段.函数能提高应用的模块性,和代码的重复利用率. 2. 组成 函数代码块以 def 关键词开头,后接函数名和圆括号( ...

  4. Python基础-函数篇

    本节内容 1. 函数基本语法及特性 2. 参数与局部变量 3. 返回值 嵌套函数 4.递归 5.匿名函数 6.函数式编程介绍 7.高阶函数 8.内置函数  函数与函数式编程 1.面向对象: 华山派-- ...

  5. Python基础篇【第2篇】: Python自定义函数

    Python函数 1. 函数定义 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段.函数能提高应用的模块性,和代码的重复利用率.你已经知道Python提供了许多内建函数,比如print ...

  6. python基础——函数的参数

    python基础——函数的参数 定义函数的时候,我们把参数的名字和位置确定下来,函数的接口定义就完成了.对于函数的调用者来说,只需要知道如何传递正确的参数,以及函数将返回什么样的值就够了,函数内部的复 ...

  7. python map函数

    map()函数 map()是 Python 内置的高阶函数,它接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回. 例如,对于li ...

  8. python匿名函数(lambda)

    简单来说,编程中提到的 lambda 表达式,通常是在需要一个函数,但是又不想费神去命名一个函数的场合下使用,也就是指匿名函数 当我们在传入函数时,有些时候,不需要显式地定义函数,直接传入匿名函数更方 ...

  9. python中函数的总结之三

    1. 可变长参数 在函数中可变长参数分为两种:一种是非关键字参数,表示为元组:一种是关键字参数,表示为字典. 具体看下面的例子代码,相当于单元测试: #!/usr/bin/env python #'t ...

  10. Python之函数进阶

    本节内容 上一篇中介绍了Python中函数的定义.函数的调用.函数的参数以及变量的作用域等内容,现在来说下函数的一些高级特性: 递归函数 嵌套函数与闭包 匿名函数 高阶函数 内置函数 总结 一.递归函 ...

随机推荐

  1. python3 字符串相关函数

    python版本 3.5 #Author by Liguangbo#_*_ coding:utf-8 _*_str="i like study python, welcome to my p ...

  2. wireshark使用简介

    wireshark界面简介 Wireshark是世界上最流行的网络分析工具.这个强大的工具可以捕捉网络中的数据,并为用户提供关于网络和上层协议的各种信息.与很多其他网络工具一样,Wireshark也使 ...

  3. TestLink

    TestLink的主要功能包括: 测试需求管理 测试用例管理 测试用例对测试需求的覆盖管理 测试计划的制定 测试用例的执行 大量测试数据的度量和统计功能 TestLink的主要特色包括: 支持多产品或 ...

  4. roscpp

    不服气不行,写ROS这伙就是比我知道的库函数多 inti函数:初始化节点是简单读些命令行参数和环境配置来配置节点名呀,命名空间呀和命名重映射之类东西. 其是在roscpp里面解释很清楚了,只是,我当时 ...

  5. 《转》简述c语言的优缺点

    C语言是1972年由美国的Dennis Ritchie设计发明的,到1978年由美国电话电报公司(AT&T)贝尔实验室正式发表了C语言.再到1970到80年代,C语言被广泛应用.这短短的几十年 ...

  6. osg,vtk,ogre的区别

    osg使用过一年,阅读过一部分源代码,vtk也断续使用过三四年了,ogre研究的比较深入,基本上比较熟悉它的整体结构,说说个人的看法 vtk是一个算法库,里面包括了很多挺不错的算法,如果做有限元云图, ...

  7. eclipse 本地项目提交到远程库以及从远程库中添加项目 ---git

    本地项目提交到远程库 1.右击项目->team->share project 2.选择本地库 从远处库中的项目拉到本地 1.右击项目->import项目

  8. SSM框架学习之高并发秒杀业务--笔记1-- 项目的创建和依赖

    在慕课网上看了Java高并发秒杀API视屏后,觉得这个案例真的让我学到了很多,现在重新自己实现一遍,博客记下,顺便分析其中的要点. 第一步是项目的创建和依赖 利用Maven去创建工程然后导入Idea中 ...

  9. mac xcworkspace xcodebuild

    xcodebuild 在介绍xcodebuild之前,需要先弄清楚一些在XCode环境下的一些概念[4]: Workspace:简单来说,Workspace就是一个容器,在该容器中可以存放多个你创建的 ...

  10. C++ / CLI 调用 C++ /Native 随记

    C# 封装 原生C++ 方法:1.C++ CLR(托管)  调用 C++(原生)2.C#调用C++ CLR ,  注意各个平台编译版本需一致.3.C# 默认编绎生成版本是 any cpu , 需修改成 ...