淘先锋技术网

首页 1 2 3 4 5 6 7

一、函数定义

在python中,定义一个函数要使用def语句,依次写出函数名、括号、括号中的参数和冒号:,然后,在缩进块中编写函数体,函数的返回值用return语句返回。

def <函数名> (<形参表>):
      <函数体>

注意:

  • 函数名可以是任何有效的Python标识符;
  • 参数列表是调用该函数时传递给它的值,可以由多个、一个或零个参数组成,当有多个参数时各个参数由逗号分隔;
  • 圆括号必不可少,即使没有参数也不能少;
  • 函数体是函数每次被调用时执行的代码,可以由一个语句或者多个语句组成,函数体一定要进行缩进。
  • 函数体内部的语句在执行时,一旦执行到return时,函数就执行完毕,并将结果返回。如果没有return 语句,函数执行完毕后也会返回结果,只是返回值为None。(return None可以简写为return)

二、函数调用

要调用一个函数,需要知道函数的名称和参数;
在调用函数时需要注意参数个数和参数类型。


三、自定义函数

自定义函数的方法与前面的“函数定义”方法一致;

3.1 空函数

如果想定义一个什么事都不做 的空函数,可以用pass语句:

def nop()
    pass

pass可以用来作为占位符,比如现在还没想好怎么写函数的代码,可以先放一个pass,让代码能运行起来。pass还可以用在其他语句里,比如:

if age>= 18:
    pass

四、函数返回多个值

函数可以返回多个值,比如在 游戏中经常需要从一点 移动到另一点,给出坐标、位移和角度,就可以计算出新的坐标:

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

这样就可以同时获得多个返回值:
>>> x,y = move(100,100,60,math.pi/6)
>>> print x,y
151.961524227 70.0
但其实这只是一种假象,Python 函数返回的仍然是单一值:
>>> r = move(100,100,60,math.pi/6)
>>> print r
(151.961524227 70.0)
原来返回值是一个tuple,但在语法上,返回一个tuple可以省略括号,而多个变量 可以同时接收一个tuple,按位置赋给对应 的值,所以Python的函数返回多个值其实 就是返回一个tuple,但 写起来更方便。

参考文献

【1】廖雪峰python官方网站–函数
【2】王仁斌:Python与数据科学【B】