1、自己定义函数
def 函数名(参数列表) :
使用return返回值
别的文件要调用该自定义函数,需要添加语句 from 文件名 import 函数名
例如: from abstest import my_abs
可以定义空函数用作占位符,适用于写程序的粗略框架
def nop():
pass
2、Python可以使用tuple返回多个值
例如 x,y=move(100,100,60,math.pi)
import math
def move(x, y, step, angle=0):
nx = x + step * math.cos(angle) ny = y - step * math.sin(angle) return nx, ny
函数还可以在形参中给参数赋默认值,如果调用函数时,不写该参数,那么函数中按默认值处理。
建议某些值占绝大多数的变量赋默认值,这样调用时就可以不用输入了。
可以有多个设置默认值的参数,但是调用时要按顺序,如果不想按顺序,就要写出形参名
def enroll(name,gender,age=6,city='beijing'):
print("name is:",name)
print("gender is",gender)
print("age is",age)
print("city is",city)
from enroll import enroll
enroll('Sarah','F')
enroll('Sandra','F',7,'shanghai')
enroll('kimi','M','7')
enroll('Jason','M',city='Fuzhou')
形参如果设置默认值,只能指向不变对象,在定义的时候,该形参的值就被计算出来了,这里指的是形参指向的内存地址被计算出来了,该内存地址不变,但是如果内存地址里的值发生了改变,即指向了可变的对象,那么每一次调用值都会变化,因此形参指向变化的值,导致出问题。
如果需要设置形参的默认值为空list,可以用None来做标志,如果调用时不输入参数,那么L=None,如果判断成功,就给L赋值为空list
def add_end(L=None):
if L is None:
L = []
L.append('END')
return L