def fun_name([params,params]):
body
注意:形参可以在定义时赋默认值,如果实参要传入,那么默认值会被覆盖!
fun_name([params,params])
注意:函数的调用不一定要满足实参等于形参,但是实参个数一定是小于或等于形参!
def ask_ok(prompt, retries=4, complaint='Yes or no, please!'):
while True:
ok = input(prompt)
if ok in ('y', 'ye', 'yes'):
return True
if ok in ('n', 'no', 'nop', 'nope'):
return False
retries = retries - 1
if retries < 0:
raise IOError('refusenik user')
print(complaint)
def main():
ask_ok('please input somecodes : ', 10);
return结束调用,并将结果返回给调用者;如果没有return,函数在函数体结束位置将控制权返回给调用方。
函数的形参只接收了实参的值,给形参赋值并不影响实参,换句话说Python是通过值来传递参数,而不是引用。
所以函数不能修改形参变量本身,但是对于一些可变对象(如列表或者图形对象,换句话就是非基本数据类型),那么在函数内部是可以修改的,但是这个变量本身在内存的位置不可能发生改变。
和高级语言一样