1. 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段
  2. 定义
    def function_name(args...):
    function_body #例子
    def print_something():
    print('Hello,function')
  3. 命名规则
    #和变量的命名规则一样
    1、函数名只能包含字符串、下划线和数字且不能以数字开头
    2、不能是关键字
  4. 返回值
    #返回值有三种
    ## 没有返回值
    ## 一个返回值
    ## 多个返回值 #没有返回值
    ##1.不需要返回任何数据,不用return
    def func1():
    print('haha') ##2.用以结束函数的运行
    def fun2():
    return
    print('这个print函数不会被执行') #一个返回值
    ##可以返回任何类型的值
    def fun3():
    return [1,2,3] #元组和字典,字符串数字都行 #返回多个值
    ##返回值之间使用逗号隔开,使用相应数量的变量接收返回值
    def fun4():
    a = 1
    b = 2
    return a,b
    n1, n2 = fun4()
  5. 参数
    1. 实参和形参

      实际参数:调用函数时候的参数
      
      形式参数,定义函数时候的参数
      
      def func(a):    #a是形式参数
      pass s = 'aaa'
      func(s) #s是实际参数
    2. 位置参数
      #当我们调用函数的时候,把对应位置的参数放进去,这些参数就是位置参数
      def my_sum(a,b,c):
      return a+b+c 这里a,b,c就是位置参数
    3. 关键字参数
      #如果我们在调用函数的时候,指定参数=值,就是关键字参数
      def my_sum(a,b,c):
      return a+b+c my_sum(b=1,a = 2,c=8)
    4. 默认参数
      #如果一个参数大多数情况都是同一个值,就可以使用默认参数
      def print_name(name = 'hsr'):
      print(name) print_name() #输出hsr print_name('haha') #输出haha
    5. 动态参数
      #使用*args接收按位置传值多余的参数,存到一个元组中
      def my_sum(*args): #*是必须的,但是args可以换成其他变量名
      sum = 0
      for tmp in args:
      sum += tmp
      return sum
      my_sum(1,2,3,4,5) #使用**kwargs接收按关键字传值的参数,存到一个字典中
      def print_something(**kwargs):
      for k,v in kwargs.items():
      print("%s , %s"%(k,v))
      print_something(a=1,b=2,c=3) #动态传参的另一种方式
      ##传给*args
      l = [1,2,3]
      my_sum(*l) #在序列前面加* ##传给**kwargs
      d = {'a':1,'b':2}
      print_something(**d) #在字典前面加**
    6. 参数的顺序
      位置参数,*args,**kwargs,默认参数
  6. 函数注释
    def func(arg):
    '''
    描述功能
    arg:...参数功能类型
    return:返回值类型
    '''
    函数体
  7. 解包
    #python会自动把逗号隔开的多个值默认为是一个元组
    s = 1,2,3
    print(type(s)) #我们可以用相同数量的变量来将元组,列表,字典中的元素分别赋值到变量上
    li = [1,2,3]
    a,b,c = li #a=1,b=2,c=3

最新文章

  1. vc-complex-type.2.3: Element 'filter-mapping' cannot have character [children], because the type's content type is element-only.
  2. tomcat 实例
  3. Command mvn jetty:run
  4. MySql与Java的时间类型
  5. 多线程java代码移植到android&下载文本界面的更新
  6. mysql 5.5 5.6配置日志
  7. Arcgis9.3下栅格数据的坐标转换出错
  8. 高效SQL语句(SQL Server)
  9. 整理的Unity导出安卓工程利用ANT进行多渠道批量打包APK
  10. 【转】 Android快速开发系列 10个常用工具类 -- 不错
  11. window.event对象详细介绍
  12. java笔记10之循环
  13. 文本溢出、垂直外边距合并、BFC、hasLayout
  14. Windows 8实例教程系列 - 开篇
  15. 某直播App问题分析
  16. 为什么要用Handler ?
  17. awk 实用技巧
  18. Netty高可靠性设计:优化建议
  19. winform文件筛选器
  20. linux audit (9)--生成audit报表

热门文章

  1. JS取出特定字符前后的字符串,针对一串字符里面的单个字符前后的字符串
  2. js类的使用
  3. 打包成ipa包
  4. webpack实战---安装操作
  5. 封装HttpClient进行http请求与https请求
  6. .conf、.bak是什么格式
  7. Java String.replaceAll()方法
  8. linux文件与用户和群组
  9. hdu1290
  10. 苹果要求全部新app以及版本号更新必须支持iOS 8 SDK和64-bit