函数(粗定义)

函数
把相对独立的某个功能抽象出来,使之成为一个独立的整体
使用函数包括定义函数和调用函数(必须先定义再调动)
定义函數:

以def开头即可

def function_name(name1,arg2):

               function body

               return value

函数名(function_name):与Python其他标识命名规则相同,字母或下划线开头,后可跟字母,数字,下划线。函数名命名时应能反映函数所执行的任务

Ps:函数名字母的大小写不同视为两个不同的函数

函数参数(arg1,arg2):调用一个函数时可以传递的参数。可有一个或多个,也可没有

函数内容(function body):有效代码都可以 但要注意函数内容要相对于定义函数def行需要缩进四个空格(tad)

函数返回值(return value):函数执行后需要返回的值。也可以不反回任何内容,不反会内容则视为返回“none”

def introduce(name):

               print(“hello”,name)

Introduce(“world”)

>>hello world

函数参数:

创建函数时,可以设置参数也可以不设置参数。对于设置参数的函数,当调用函数时需要向函数传递参数,被传入的参数称为实参数,而函数定义时的参数为形参

必须参数

即当定义函数时使用参数了,调用该函数时必须输入参数,并且调用的数量和顺序必须和定义函数时的参数保持一致。

def add(a,b):

               Print(“a+b”,a+b)

add(1,2)

>>a+b=3

如果少传一个参数或多传几个参数 程序会报错  无法运行

关键字参数:

使用关键字参数可以不按函数定义时的参数的顺序来调用函数,Python解释器能够根据函数定义的参数名来匹配参数。

def hello(name,age):

               print(“姓名:”,name)

               print(“年龄:”,age)

hello(name=”零一”,age=18)#按顺序传递

hello(age=3,name”小明”)#不按顺序传递参数

>>姓名:零一

>>年龄:18

>>姓名:小明

>>年龄:3

但不能传入没有定义的参数

def person_name(name)

               Print(“姓名”,name)

person_name(name=”零一”,age=18)#错误

因age未被定义  导致调用函数错误

综上:关键字参数的顺序对结果没有影响,无论是否按照顺序调用都可以得到正常的结果。

默认参数:

定义函数可以给函数添加默认值,如果调用函数时没有传入函数,函数会使用默认值,并不会报错

def default_value(name,age=18)

               print(“我的名字是:”,name)

               print(“我今年:”,age,”岁”)

default_value(“零一”)

>>我的名字是:零一

>>我今年:18岁

但是要注意默认参数必须定义在最后,否者会报错

def default_value(age=18,name):

               print(“我的名字是:”,name)

               print(“我今年:”,age,”岁”)

default_value(name=”零一”)#错误

即:非默认参数不能跟在默认参数后面

可变参数:

在某些情况下我们不能在定义函数之前不能确定参数的数量和内容,这时候就可以用可变参数。

some_func(*args,**kwargs)

some_func 为函数名

*args和**kwargs为可变参数

def foo(*args):

               print(args)

foo()

foo(1,2)

foo(“ad”,”12”,”sd”)

>>()

>>(1,2)

>>(‘ad’,’12’,’sd’)

“*args”获得的是一个元组

def foo(**kwargs):

               print(kwargs)

foo()

foo(1,2)

>>{}

>>{1,2}

“**kwargs”获得的是一个字典

原文地址:https://www.cnblogs.com/zl-mengxiang/p/13865477.html