使用关键字def 来告诉Python你要定义一个函数。这是函数定义,向Python指出了函数名
#函数传入单个参数
def fun_nm(user):
print(user)
fun_nm('ls')
#函数传参时,有多个参数
def fun_nm(user, age):
print(user)
print(age)
fun_nm('zs', '20')
#函数传参时,参数有默认值时,传入时可以不传实参
def fun_nm(user, age=20):
print(user)
print(age)
fun_nm('zs')
#覆盖默认值
fun_nm(‘zs’, 40)
注意:第一个参数最好不要设为默认值,否则有多个参数时,第一参数值永远是第一个实参若不传入,实参数和形参数不匹配,会报错;
#键值对参数,可以不考虑传入顺序
def fun_nm(user, age):
print(user)
print(age)
fun_nm(age=20, user='zs')
#函数返回值可以赋值新变量
def fun_nm(user, age):
return 0
res=fun_nm('zs', '20')
#让实参变成可选,类似默认值,只不过默认值是’'空,可以对address是否为空进行判断
def fun_nm(user, sex, address=''):
return 0
fun_nm('zs', '0')
#参数可以是列表,但在列表传入时,若不想改变列表中值,则以切片形式传入
若在函数中操作列表中值,则以列表名传入
fun_nm(list[:]):源列表元素不被改变
fun_nm(list):函数中可以修改列表中元素值
#传递任意数量参数(元组)
def fun_nm(*name):
print(name)
for tmp in name:
print tmp
fun_nm('zs', 'ls', 'ww')
#也可以与其他参数结合
def fun_nm(age, *name):
#也可以传入字典(**user_info中**表明python将会传入的键值对放在user_info字典中)
def fun_nm(user, age, **user_info):
tmp_dir={}
for key, value in user_info.items():
tmp_dir[key]=value
return tmp_dir
fun_nm('zs', '20', 'user=ls', 'age=60')
#函数实现放在其他模块中,使用时直接导入调用
#导入整个模块文件
import function
#使用模块中函数
funtion.fun_nm()
#导入模块 中指定函数, as可以对函数名指定别名
from function import fun_nm, fun_nm1, fun_nm2 as fm2
#导入模块中所有函数,这种不推荐,看不到具体函数名称
from function import *