python 函数(三)

函数

特点:复用性强,可以重复完成某个功能的代码块。

语法:define 定义

提高函数的复用性-------实现参数化(定义时:形参/位置参数,调用时:实参)

def 函数名(参数1,参数2,参数3.....):

#函数代码块

函数的调用: 函数名()

例子

def hi():

    print("hello world!")

hi()

结果 hello world

 

def hi(name,content):

    print("{0}说:{1}".format(name,content))

hi('张三',"hello world!")

结果 张三说:hello world!

注:

  1. 函数可无参数可多个参数。
  2. 定义函数时,有几个参数调用时就要传几个参数。
  3. 默认参数,位置必须放在位置参数的后面否则报错
  4. 默认参数可以设置多个
  5. 调用函数的时候,按顺序赋值
  6. 调用函数时可以强制指定参数的赋值。
  7. return关键字 返回一个值给调用者,使用变量接收,函数结束的标志,-灵活调用函数

写函数步骤:

①先用零散的代码写出功能。(选取一组数据完成功能)

②把代码变成一个函数def 函数名()

③利用方法提高函数的复用性

例子:求和

def add(m,n):

    sum=0

    for item in range(m,n+1):

        sum+=item

    print(sum)

add(1,100)

参数:两种参数:动态参数和关键字参数

①动态参数 *args  arguments 不定长参数

例子:

def add(*args):

    print("数据类型为:",type(data))

    sum=0

    for item in args:

        sum+=item

    return(sum)

data=[1,2,3,4]

res=add(*data)  #加一个*掉一层,元组类型

print(res)  

结果

数据类型为: <class 'list'>

10

②关键字参数(指针对字典就行处理):传递参数时 形式为字典形式即: key=value 形式  要求形式以字典形式传入时使用

例子:

def dict_datas(**kwargs):

    print("kwargs的值是",kwargs)

    print("kwargs的类型是:",type(kwargs))

dict_datas(name="张三",age=18)

结果

kwargs的值是 {'name': '张三', 'age': 18}

kwargs的类型是: <class 'dict'>

 

def dict_datas(**kwargs):

    print("kwargs的值是",kwargs)

    print("kwargs的类型是:",type(kwargs))

d={"name":"李四","age":20}

dict_datas(**d)

结果

kwargs的值是 {'name': '李四', 'age': 20}

kwargs的类型是: <class 'dict'>

注:

1.动态参数和关键字参数不传值也可以调用函数,结果为空值。位置参数调用时必须有实参传入。

2.参数的混合使用,默认值参数放到位置参数后和动态参数无关,不能放在关键字参数之后,一般:位置参数--默认参数--动态参数--关键字参数。

例子

def datas(a,b,c=1,*args,**kwargs):

print("a+b+c的和是:",a+b+c)

 

    print("*args的值是:",args)

    print("**kwargs的值是:",kwargs)

datas(1,2,3,4,5,6)

结果

a+b+c的和是: 6

*args的值是: (4, 5, 6)

**kwargs的值是: {}

 

def datas(a,b,c=1,*args,**kwargs):

    print("a+b+c的和是:",a+b+c)

    print("*args的值是:",args)

    print("**kwargs的值是:",kwargs)

datas(1,2,3,x=2)

结果

a+b+c的和是: 6

*args的值是: ()

**kwargs的值是: {'x': 2}

3. 变量的范围   局部变量和全局变量

①局部变量和全局变量同时存在时函数优先调用局部变量

a=7

def add(b):

    a=10

    print("函数内部a的值:",a)

    print("b的值是:",b)

add(100)   

结果

函数内部a的值: 10

b的值是: 100

②局部变量只能在函数内部调用不能在函数外部使用。

③如果函数内部涉及到修改全局变量,必须在修改前进行声明。global声明它为全局变量

4. 函数间的相互调用

posted @ 2019-10-11 11:15  Y、  阅读(164)  评论(0编辑  收藏  举报