说句废话:
最基本的函数能输入数据处理后输出,关键的在于逻辑和格式正确。
一、编写函数的格式:
- 在Python中,定义一个函数要使用 def 语句,依次写出函数名、括号、括 号中的参数和冒号:,然后,在缩进块中编写函数体,函数的返回值用return 语句返回,函数体要严格缩进,python中没有c语言的{}来界定函数边界,靠缩进来确定函数边界。
比较大小的函数:
def my_cmp(x,y):
if x<y:
temp=x
x=y
y=temp
return x,y
print my_cmp(1,2)
此处需要注意return运行方式:一旦执行到return时,函数就执行完毕,并将结果返回。如果没有return语句,函数执行完毕后也会返回结果,只是结果为 None。在这一段逻辑中:
for x in L:
if isinstance(x,str):
return x.upper()
L是一个list ,里面有多个字符串,当确定x是字符串类型后,函数return x.upper()后函数返回不再执行,所以只能输出第一个字符串,无法输出后续。
- 返回多个函数值,在函数的return部分有 return x, y 这样的返回值,接收时
x, y = fun(100, 100, 60)
可以用两个变量来接收,也可以用一个变量,比如r=fun(100, 100, 60)
,return实际上返回的是一个tuple(x,y)
,多个变量同时接收一个tuple,按位置赋给对应的值,所以,Python的函数返回多值其实就是返回一个tuple。 - 默认参数,函数的默认参数是简化调用,只需要把必须的参数传进去。但是在需要的时候,又可以传入额外的参数来覆盖默认参数值。由于函数的参数按从左到右的顺序匹配,所以默认参数只能定义在必需参数的后面:
def fn1(a, b=1, c=2):
- python中函数的参数个数是可变的,比如排序函数输入序列的个数并不一定,因此,一个函数能接受任意个参数,我们就可以定义一个可变参数,可变参数的名字前面有个 * 号,我们可以传入任意个可变参数:
def fn(*args): print args
python 把传入的一组参数组装成一个tuple传递给可变参数,因此,在函数内部,直接把变量 args 看成一个 tuple。
二、函数的调用
- 要调用一个函数,需要知道函数的名称和参数,但是,1、调用函数的时候,如果传入的参数数量不对,会报TypeError的错误。2、传入的参数数量是对的,但参数类型不能被函数所接受,也会报TypeError的错误。
- Python内置了很多有用的函数,我们可以直接调用。