- 定义函数
def greet():
print('hello.')
greet()
- 传递参数
def greet(user):
print('hello , ' + user.title())
greet('lily')
- 实参和形参
在定义函数的时候用的user就是形参——函数完成其工作需要的信息。
在调用函数的时候用的’lily’就是实参——函数在调用函数时需要传递给函数的信息,这个值被储存在形参user中。 - 位置实参
当一个函数的形参个数不止一个的时候,在调用函数的时候就需要注意函数的位置了。
def describe_pet(pet_type,pet_name):
print('I hava a ' + pet_type)
ptint('It`s name is ' + pet_name)
describe_pet('dog','maomao')
如果交换形参的位置,describe_pet(‘maomao’,’dog’)打印出来的语句就会出现我们不想看到的结果。
- 关键字实参
关键字实参是传递给函数的名称—值对。你直接在实参中将名称和值关联起来了,因此向函数传递实参时不会混淆。关键字实参让你无需考虑函数调用中的实参顺序,还清楚地指出了函数调用中各个值的用途。
describe_pet(pet_name = 'maomao',pet_type = 'dog')
describe_pet(pet_type = 'dog',pet_name = 'maomao')
上面的两种调用方式都可以正确的,可以打印出我们想要的语句,所以在关键字调用的时候我们无需考虑实参的顺序。
- 默认值
编写函数时,可给每个形参指定默认值。在调用函数中给形参提供了实参时,Python将使用指定的实参值;否则,将使用形参的默认值。因此,给形参指定默认值后,可在函数调用中省略相应的实参。使用默认值可简化函数调用,还可清楚地指出函数的典型用法。
def describe_pet(pet_type,pet_name = ''):
print('I hava a ' + pet_type)
ptint('It`s name is ' + pet_name)
describe_pet('dog')
值得注意的一点是,当存在有默认值的形参时,就需要在定义函数的时候把有默认值的形参放在所有形参的后面。而且,当形参有默认值的时候,那么这个参数就会变成可选参数,调用函数的时候传或者不传这个参数对函数的调用都是没有影响的。
- 返回值
在定义函数的时候,我们也可以给函数设置返回值,返回值的类型可以是很多种:字符串,整数,列表,元组,字典等都是可以的,我们也可以使用之前学过的方式去处理这些返回值。
def return_models(model_1,model_2,model_3):
models = []
models.append(model_1)
models.append(model_2)
models.append(model_3)
return models
models = return_models('plane','ship','tank')
for modle in models:
print(model)