zoukankan      html  css  js  c++  java
  • 函数

    1.形参

    #coding=utf-8  形参
    def rect_area(width,height):
    area=width*height
    return area
    def print_area(width,height):
    area=width*height
    print("{0}*{1}长方形的面积:{2}".format(width,height,area))
    2.调用函数-使用位置参数调用函数

    3.使用关键字参数调用函数,调用者可以清晰地看出所传递参数的含义,提高函数调用的可读性。

    def rect_area(width,height):
    area=width*height
    return area
    r_area=rect_area(width=320,height=480)
    #关键字的名称就是定义函数时形参的名称
    print("{0}*{1}长方形的面积:{2} ".format(320,480,r_area))
    r_area=rect_area(height=320,width=480)
    #实参不再受形参的顺序限制
    print("{0}*{1}长方形的面积:{2} ".format(320,480,r_area))

    4.参数的默认值:因为python没有函数重载的概念,而是为函数参数提供默认值
    #coding=utf-8
    def make_coffee(name='卡布奇诺'):
    return "制作一杯{0}咖啡".format(name)
    coffee1=make_coffee("拿铁")
    coffee2=make_coffee()
    print(coffee1)
    print(coffee2)

    5.可变参数
    python中的函数可以定义接收不确定数量的参数,这种参数成为可变参数。
    可变参数有2中,*/**参数
    6.基于元组的可变参数(*可变参数)
    *可变参数在函数中被组装成一个元组
    #coding=utf-8
    def sum(*numbers):#可变参数
    total=0.0
    for number in numbers:
    total+=number
    return total
    #多个参数被组装成元组numbers
    print(sum(100.0,20.0,30.0))
    print(sum(30.0,80.0))

    7.基于字典的可变参数(**可变参数)
    **可变参数在函数中被组装成一个字典

     8.局部变量和全局变量

     一般情况况下不在模块和函数中定义两个同名变量,因为会发生命名冲突,函数中的同名变量会屏蔽模块中的同名变量。

    对于在模块和函数中各定义的一个同名变量,如果在函数中将其声明为global,则会将函数中的这个同名变量提升为全局变量。

    9.函数类型

    10.过滤函数filter()

    #提供过滤函数条件
    def f1(x):
    return x>50

    data1=[66,15,91,28,98,50,7,80,99]
    filtered=filter(f1,data1)
    data2=list(filtered) #转换为列表
    print(data2)
    11.映射函数map()
    map()函数用于对容器中的元素进行映射(或变换)。
    eg:我想讲列表中的所有元素都乘以2,返回新的列表
    def f1(x):
    return x*2

    data1=[66,15,91,28,98,50,7,80,99]
    #filtered=filter(f1,data1)
    mapped=map(f1,data1)
    data2=list(mapped) #转换为列表
    print(data2)
    12.匿名函数lambda():没有名称的函数
    '参数列表'与函数的参数列表是一样的,但是不需要用小括号括起来
    lambda参数列表:lambda体
    PS:lambda体部分不能是一个代码块,不能包含多条语句,只有一条语句,语句会计算一个结果并返回给lambda()函数,但与有名称的函数不同的是,不需要使用return语句返回
    #lambda匿名函数
    def calc(opr):
    if opr =='+':
    return lambda a,b:(a+b)
    else:
    return lambda a,b:(a-b)

    f1=calc('+')
    f2=calc('-')
    print("10+5={0}".format(f1(10,5)))
    print("10-5={0}".format(f2(10,5)))

    13.lambda函数很强大,可以减少代码量
    1)def add(a,b)
        return a+b
    1.1)lambda a,b:(a+b)
    2)def sub(a,b):
        return a-b

    2.2)lambda a,b:(a-b)
    14.之前filter和map函数的例子转化为lambda

    data1=[66,15,91,28,98,50,7,80,99]
    filtered=filter(lambda x:(x>50),data1)
    data2=list(filtered) #转换为列表
    print(data2)
    #map()


    data1=[66,15,91,28,98,50,7,80,99]
    mapped=filter(lambda x:(x*2),data1)
    data2=list(mapped) #转换为列表
    print(data2)






  • 相关阅读:
    创建大顶堆
    大顶堆的实现
    二叉树的前序,中序,后序,层序实现
    链表实现多项式相加
    225. Implement Stack using Queues
    232. Implement Queue using Stacks
    JavaScript 实现队列操作
    Vue 路由守卫
    回文数 & {}[]() 符号判断

  • 原文地址:https://www.cnblogs.com/JacquelineQA/p/13174556.html
Copyright © 2011-2022 走看看