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)






  • 相关阅读:
    HDU 1261 字串数(排列组合)
    Codeforces 488C Fight the Monster
    HDU 1237 简单计算器
    POJ 2240 Arbitrage
    POJ 3660 Cow Contest
    POJ 1052 MPI Maelstrom
    POJ 3259 Wormholes
    POJ 3268 Silver Cow Party
    Codesforces 485D Maximum Value
    POJ 2253 Frogger(最短路)
  • 原文地址:https://www.cnblogs.com/JacquelineQA/p/13174556.html
Copyright © 2011-2022 走看看