python 函数

  函数:
     
 函数代码块以 def ()关键词开头  
      调用:函数名()
      任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数。
      函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
      函数内容以冒号起始
 全局变量和局部变量
      定义在函数内部的变量拥有一个局部作用域,叫局部变量
      定义在函数外的拥有全局作用域,叫全局变量
      局部变量只能在其被声明的函数内部访问,而全局变量可以在整个程序范围内访问。
      当全局变量和局部变量同名时,局部变量优先
      局部变量想在全局用, global变量名,如果变量相同, 原全局变量值会被覆盖,
      当列表和字典作为全局变量时,不用加global
       
 可更改与不可更改对象:
      可更改(mutable)对象:
      list,dict 等则是可以修改的对象,当函数中调用全局变量并改变对象值时,全局变量的值也改变
      不可更改(immutable)对象:
      strings, tuples, 和 numbers 是不可更改的对象,当函数中调用全局变量时,
      即使改变也是局部值改变,不会影响全局变量值
参数:
     1必需参数(必选参数):
         须以正确的顺序传入函数。调用时的数量必须和声明时的一样
    
      2默认参数:
        调用函数时,如果没有传递参数,则会使用默认参数(默认值 直接赋值的)
        可以不指定参数名,但是顺序要保证,否则要指定参数名


      3不定长参数 *:
           也是可变参数,允许你传入0个或任意个参数,这些可变参数在函数调用时自动组装为一个元组
           (如果使用时不传参数,输出为空元组)
           定义可变参数和定义一个list或tuple参数相比,仅仅在参数前面加了一个*号。
           但是,调用该函数时,可以传入任意个参数,包括0个参数:
           如果已经有一个list或者tuple,要调用一个可变参数怎么办?
           所以Python允许你在list或tuple前面加一个*号,把list或tuple的元素变成可变参数传进去:
    
       4关键字参数**: (键值对的形式)
           使用关键字参数允许函数调用时参数的顺序与声明时不一致
           关键字参数允许你传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个字典
           输出参数变成字典,传参必须是健值对的形式,多个参数会在一个字典形式输出
           
       5命名关键字参数:取到字典里指定得健的值,
       
      注: 在Python中定义函数,可以用必选参数、默认参数、可变参数、关键字参数和命名关键字参数,
      这5种参数都可以组合使用,除了可变参数无法和命名关键字参数混合。
      但是请注意,参数定义的顺序必须是:必选参数、默认参数、可变参数/命名关键字参数和关键字参数。


return [表达式] 结束函数,选择性地返回一个值给调用方。可以返回多个值,返回的多个值组成一个元组,
           返回值加上一对中括号,则返回一个列表不带表达式的return相当于返回 None。


 匿名函数:没有名字 函数体简单 
      使用 lambda 来创建匿名函数,他是一个表达式” : “后面,只能有一个表达式,def则可以有多个
      像if或for或print等语句不能用于lambda中,def可以。
      语法格式:变量名=lambda 参数名(可以有多个):表达式
      
       map()循环:
          map(函数,序列,可以和range使用)把序列中的值当参数逐个传给函数。
          如果函数中有两个参数,即可两个序列,并把结果作为新的list返回。
        
       filter() 过滤
             filter(函数名,序列,可以和range使用)对列表中的项目依次执行函数
             将执行结果为True的项目组成一个List/String/Tuple(取决于序列的类型)返回。
             
       reduce统计/ 需要导入  (函数,参数有两个:条件语句)还可以接收第3个可选参数
          (函数,序列)函数的参数只能有两个,先把序列中第一个值和第二个值当参数传给函数,
            再把函数的返回值和第三个值当参数传给函数,然后只返回一个结果。
            reduce()函数接收的参数和 map()类似,一个函数 f,一个list,但行为和 map()不同,
            reduce()传入的函数 f 必须接收两个参数,reduce()对list的每个元素反复调用函数f
            ,先计算序列里的头两个, 在和第三个计算,依次类推并返回最终结果值。
            Python内置了求和函数sum(),但没有求积的函数,请利用reduce()来求积:
            
  自定义排序函数:
            sorted()函数 :      sorted(迭代对象,函数,key,排序规则)
                    iterable -- 可迭代对象。
                    cmp -- 比较的函数,这个具有两个参数,参数的值都是从可迭代对象中取出,此函数必须遵守的规则为,
                               大于则返回1,小于则返回-1,等于则返回0。
                    key -- 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,
                               指定可迭代对象中的一个元素来进行排序。
                    reverse -- 排序规则,reverse = True 降序 , reverse = False 升序(默认)。
                    
                   它可以接收一个比较函数来实现自定义排序,比较函数的定义是,传入两个待比较的元素 x, y,
                   如果 x 应该排在 y 的前面,返回 -1,如果 x 应该排在 y 的后面,返回 1。如果 x 和 y 相等,返回 0。
                   可以对字符串进行排序,按照ASCII大小来比较
                   
           .sort()排序方法:    sort(函数,key,排序规则)
           .sorted()和sort()的区别:
                  sort 是应用在 list 上的方法,sorted 可以对所有可迭代的对象进行排序操作。
                  sort :对原有列表进行排序,改变原来列表的顺序,无返回值
                  sorted:序时不影响原数据,产生新的排序数据,还是原结果
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值