Python基础-Python函数

1、函数的申明

Python中使用def关键字来声明函数,声明函数的格式为:

def func_name(args):
    ...body...
    [return ...]
'''函数名后面必须加冒号;如果函数体和def不在同一行,则必须缩进;return指定函数返回值,用来结束函数'''

2、函数参数

def myFunction(arg1,arg2,*args,**kargs):
    函数体
'''arg1和arg2是开发者自定义的参数名。在函数里,参数名可以当成变量使用;
*args是将多个参数生成一个列表。在函数里,可以将args当成一个列表来使用里面的参数;
**kargs将多个参数以字典的形式表示。在函数里,通过字典的读取方式获取kargs里的参数'''

示例:

def get_name1(arg1,arg2):
    print('1、我的名字是:',arg1,arg2)
def get_name2(*args):
    print('2、*args的数据格式是:',args)
    print('2、我们的名字分别是:',args[0],args[1])
def get_name3(**kwargs):
    print('3、**kwargs的数据格式是:',kwargs)
    print('3、我们的名字分别是:', kwargs['name1'], kwargs['name2'])
# 调用函数
get_name1('Lucy','Tom')
get_name2('Lily','Mary')
get_name3(name1='Lilei',name2='Tony')

执行结果:

1、我的名字是: Lucy Tom
2、*args的数据格式是: ('Lily', 'Mary')
2、我们的名字分别是: Lily Mary
3、**kwargs的数据格式是: {'name1': 'Lilei', 'name2': 'Tony'}
3、我们的名字分别是: Lilei Tony

3、函数的返回值

将函数的处理结果传递到函数外的程序使用,有关键词return和yield实现。return是在返回结果的同事中断函数的执行,yield是返回结果并不中断函数的执行,使用了 yield 的函数被称为生成器(generator)。示例:

# return返回
def myReturn():
    for i in range(5):
        return i
# yield返回
def myYield():
    for i in range(5):
        yield i
# 调用函数
result1 = myReturn()
print('return数据类型是:',type(result1))
result2 = myYield()
print('yield数据类型是:',type(result2))
for i in result2:
    print('yield:',i)

执行结果:

return数据类型是: <class 'int'>
yield数据类型是: <class 'generator'>
yield: 0
yield: 1
yield: 2
yield: 3
yield: 4

4、函数的调用

函数的调用是“函数名+花括号”的方式。示例:

def fun1():
    print('我是函数fun1')
def fun2(name):
    print('我是函数fun2,我的名字是',name,'现在我要调fun1')
    fun1()  #调fun1
def fun3(name):
    print('我是func3,我的名字是',name,'现在我要调fun2')
    fun2('Lily')  # 调fun2
# 主程序
if __name__=='__main__':
    fun3('Lucy')

执行结果:

我是func3,我的名字是 Lucy 现在我要调fun2
我是函数fun2,我的名字是 Lily 现在我要调fun1
我是函数fun1

5、变量的作用域

x=3
def myfunc(a,b):
    c=10
    print(x,a,b,c)
myfunc(5,6)  # 输入结果:3 5 6 10

上面的函数涉及到了4个变量:a、b、c、x。其中:
-全局变量x
-本地变量a、b、c,其中本地变量a和b是函数的参数

全局变量:在出程序里定义的变量成为全局变量,全局变量在所有作用域都可读
局部变量:在函数内部定义的变量成为局部变量,局部变量只能在本函数里可读
函数读取变量的优先级:函数在读取变量时,优先读取本身的局部变量,然后再去读全局变量
定义全局变量:global

posted @ 2021-12-28 18:20  、阿红吖  阅读(73)  评论(0编辑  收藏  举报