函数的构成
def 函数名称(形参)
调用函数时 函数名称(实参)这个过程中实参存储于形参中
实参可以是列表等各种形式
传递实参的方法包括位置实参、关键字实参、使用列表或者字典
关键词实参传递给函数名称—值对,此时实参的顺序将不重要
也可以通过判断句,使得参数可选
def describe_animals(animal_type,animal_name):
'''显示宠物信息'''#说明函数的作用
print('\nI have an '+animal_type+'.')
print("\nIts name is " +animal_name+'.')
describe_animals(animal_type='yang',animal_name='dundun')
#设置默认值
def describe_animals(animal_name,animal_type='yang'):#这里要设置默认值的参数尽量放在后面
'''显示宠物信息'''#说明函数的作用
print('\nI have an '+animal_type+'.')
print("\nIts name is " +animal_name+'.')
describe_animals(animal_name='dundun')
#让实参可选
def describe_animals(animal_name,animal_type,sex=''):#sex可选
'''显示宠物信息'''#说明函数的作用
if sex:
print('\nI have an '+animal_type+'.')
print("\nIts name is " +animal_name+'.')
print(sex)
else:
print('\nI have an '+animal_type+'.')
print("\nIts name is " +animal_name+'.')
describe_animals(animal_name='dundun',animal_type='yang',sex='boy')
#可以传递任意数量的实参
def make_pizza(*toppings):#相当于把形参变成了一个列表
"""打印客户所有的配料"""
print(toppings)
make_pizza('a','b','c')
#使用任意数量的关键字实参
def build_profile(first,last,**user_info):
#**user_info是任意数量的键值对
profile={}
profile['last name']=last
profile['first name']=first
for key,value in user_info.items():
profile[key]=value
return{profile}
参数不匹配的原因是实际提供的实参的个数与所需的实参个数不匹配。python会直接提示少了哪些参数
返回值
当函数本身并没有打出结果的,就需要返回值
要使的函数可以导入,要先将其存储于模块中,模块是扩展名未.py的文件,在原来文件A所在的目录中存储函数B
import A
print(A.B())
from 模块 import 函数 as 别名
from 模块 import * 意为导入该模块的所有函数
if __name__=="__main__":
加上上面的代码,就可以使得模块中不读取这句代码以后的内容
禁止函数修改列表:利用切片的方式建立副本
def describe_animals(animal_name[:],animal_type,sex=''):