函数
函数定义
注意冒号
def 函数名(形参1,形参2...):
"""文档字符串“”“
函数体代吗
举例:
#函数定义,其中def为函数定义的关键词
def greet_user(username):#usename是函数的形式参数
"""显示简单问候语"""#文档字符串,用来描述函数的作用
print(username+',hello')#函数体的代码
greet_user('Alice')#调用函数
插入代码片
参数传递
- 位置实参
函数在传递实参时,实参的顺序应该和形参顺序一样
def ShowPets(type,name):
"""显示宠物信息"""
print('the pet is '+type+",its name is "+name)
ShowPets('狗','旺财')
#在这里必须把写 狗 ,再写 旺财 和函数定义的参数一模一样的顺序
- 关键字实参
所谓关键字实参传递,就是在传递参数时,明确指出实参传递给哪一个形参,这样一来就不用像位置实参传递一样,必须写一样的顺序了
ShowPets(name = '旺财',type = '狗')
- 默认值
默认值是指在定义函数事先给形参一个初始值,如果在调用时没有给那个参数(定义时有默认值的参数)实参,就会默认传递的时定义的值
def ShowPets(name,type='狗'):
"""显示宠物信息"""
print('the pet is '+type+",its name is "+name)
ShowPets(name = '旺财')
输出的结果都是一样的如下:
the pet is 狗,its name is 旺财
总结:在默认值的函数定义时,有默认值的那个形参要写在最右边
如果需要返回值,在函数末尾加一个
return+要返回的参数
注意:当传递的参数时列表时,函数是直接可以访问列表的,也就是说相当于地址传递,可以改变当前列表的值,如果不i想改变,可以传递一个切片上去如:
function_name(list_name[ : ])
这样传递的参数就可以原来列表的副本,不会影响到原列表