zoukankan      html  css  js  c++  java
  • Python中的函数

    一、Python函数定义

    Python定义函数使用def语句,定义格式如下:

    def function_name(parameter):

        " 函数说明"  #函数的第一行语句可以选择性地使用文档字符串-用于存放函数说明

        函数体

    函数的返回值用return语句返回

    注意:1、函数体内部的语句在执行时,一旦执行到return时,函数就执行完毕,并将结果返回

               2、如果没有return语句,函数执行完毕后也会返回结果,只是结果为None

               3、Python函数支持返回多个值,返回多个值时其实返回一个tuple

    示例如下:

    import math
    def move(x,y,step,angle):
    nx=x+step*math.cos(angle)
    ny=x+step*math.sin(angle)
    return nx,ny

    x,y=move(100,100,60,math.pi/6)
    print x,y
    r=move(100,100,60,math.pi/6)
    print r[0],r[1]

    结果如下:

    151.961524227 130.0
    (151.96152422706632, 130.0)

    二、Python函数定义默认参数

    Python函数定义时,可默认参数,调用函数传参数时传必要的参数,需要的时候再传额外的参数覆盖默认参数值

    由于函数从左往右顺序匹配,所有默认参数要定义在必需参数的后面

    示例如下:

    def greet(str="World"):
    print "Hello,"+str

    greet()
    greet("Bart")

    结果如下:

    Hello,World
    Hello,Bart

    三、Python函数定义可变参数

    有时需要函数能接受任意个参数,也就是不定长参数,可以定义一个可变参数,定义可变参数后,Python解释器会把传入的一组参数组装成一个tuple传递给可变参数

    示例如下:

    def average(*args):
    if len(args)==0:
    return 0
    if len(args)>=0:
    sum=0
    for i in args:
    sum+=i
    return float(sum)/len(args)

    print average()
    print average(1,2)
    print average(1,2,3,4)

     结果如下:

    0
    1.5
    2.5

    四、Python函数定义关键字参数

    Python使用关键字参数允许函数调用时参数的顺序与声明时不一致,Python解释器能够用参数名来匹配参数值

    示例如下:

    def printinfo(name,age):
    print "name:",name
    print "age:",age

    printinfo(age=18,name="Mali")

    结果如下:

    name: Mali
    age: 18

    五、Python匿名函数

    python使用lambda来创建匿名函数

    lambda函数语法:

    lambda [arg1[,arg2,arg3,...]]:表达式

    注意:1、lambda只是一个表达式,函数体比def简单很多

               2、lambda的主体只是一个表达式,而不是代码块,lambda能封装的逻辑有限

               3、lambda函数拥有自己的命名空间,不能访问自有参数列表之外或全局命名空间里的参数

    示例如下:

    sum=lambda x,y:x+y
    print sum(1,2)

    结果如下:

    3

    六、参数传递

    Python函数的参数传递:

    不可变类型:类似c++的值传递,如整数、字符串、元组

    可变类型:类似c++的引用传递如列表、字典

  • 相关阅读:
    CF1305 Ozon Tech Challenge 2020 游戏存档
    CF1310A Recommendations 题解
    CF755G PolandBall and Many Other Balls 题解
    关于后缀自动机
    具体数学学习笔记
    Flask-SQLAlchemy中解决1366报错
    常用的SQLalchemy 字段类型
    flask_model防止循环引用
    navicate远程访问ubuntu上的mysql数据库
    flask运行环境搭建(nginx+gunicorn)
  • 原文地址:https://www.cnblogs.com/testerlina/p/12407788.html
Copyright © 2011-2022 走看看