第十四节课:函数(1)

一、定义函数

1.函数定义:

        函数代码块以 def 关键词开头,后接函数标识符名称和圆括号()

        任何传入参数和自变量必须放在圆括号中间。

        函数的第一行语句可以选择性地使用文档字符串用于存放函数说明

        函数内容以冒号起始,并且缩进。

eg:

'''
定义:
    def 函数名([参数]):
        #函数说明
        代码块
'''
def name ():
    '''
    打印一句话
    :return:
    '''
    print('我是MgVccl!')

2.调用函数

           Python内置了很多函数,内置函数可以直接调用。调用一个函数需要知道函数的名称和函数的参数。函数名其实就是指向一个函数对象的引用,完全可以把函数名赋值给一个变量,相当于给这个函数起了一个别名。

eg:

def name ():
    print('我是MgVccl!')

'''
调用函数:函数名(+参数)
'''
name()  #无参数
a=name
a()

二、参数

1.形参和实参

        形参可理解为放在定义函数所定义的参数,无实际值;实参就是调用函数时给参数赋值。

eg:

'''
函数的参数:实参和形参
'''
def name (input_name):  #input_name,形参,自定义的
     print('你好,我是%s!'%input_name)

name('路飞')  #传递实参,路飞

2.位置参数

        函数定义中允许拥有多个形参,因此函数在调用的时候,也可能包含多个实参。向函数传递参数的方式有很多,通过实参和形参的顺序对应,这就是位置实参。只有位置一致,才能被正确匹配。位置实参是最简单也最常用的关联方式。

eg:

'''
位置实参:函数定义中允许拥有多个形参,因此函数在调用的时候,也可能包含多个实参。
         向函数传递参数的方式有很多,通过实参和形参的顺序对应,这就是位置实参。
         只有位置一致,才能被正确匹配。位置实参是最简单也最常用的关联方式。
'''
def name (input_name,input_address):  #input_name,形参,自定义的
    '''
    打印一句话
    :return:
    '''
    print('你好,我是%s,来自%s'%(input_name,input_address))

name('路飞','海贼王')  #input_name 对应 路飞,input_address 对应 海贼王

3.关键字参数

        关键字实参是传递给函数的名称-值对。直接在实参中将名称和值关联起来,因此向函数传递实参时不会混淆。函数调用使用关键字参数来确定传入的值。使用关键字参数允许函数调用时参数的顺序与声明时不一致,因为 Python 解释器能够用参数名匹配参数值。

eg:

'''
关键字参数: 关键字实参是传递给函数的名称-值对。
            直接在实参中将名称和值关联起来,因此向函数传递实参时不会混淆。
            函数调用使用关键字参数来确定传入的值。
            使用关键字参数允许函数调用时参数的顺序与声明时不一致,
            因为 Python 解释器能够用参数名匹配参数值.
'''
def name (input_name,input_address):
    '''
    打印一句话
    :return:
    '''
    print('你好,我是%s,来自%s'%(input_name,input_address))

#使用关键字参数时要么都带上形参,要么都不带。
name('路飞','海贼王')
name('海贼王','路飞')
name(input_name='路飞',input_address='海贼王')
name(input_address='海贼王',input_name='路飞')
name(input_address='路飞',input_name='海贼王')

4.参数默认值

        函数定义的时候,设置的参数是形参。那么也可以给每个形参指定一个默认值。当调用函数时,如果没有传入实参,就使用形参的默认值。如果调用的时候传入了实参,那么程序将使用传入的实参。

eg:

'''
参数默认值:    
    函数定义的时候,设置的参数是形参,那么也可以给每个形参指定一个默认值。
当调用函数时,如果没有传入实参,就使用形参的默认值。如果调用的时候传入了实参,那么程序将使用传入的实参。
'''
def name (input_name,input_address='海贼王'):  #若在函数调用时没有给input_address赋值,则默认为海贼王
    '''
    打印一句话
    :return:
    '''
    print('你好,我是%s,来自%s'%(input_name,input_address))

name('路飞')  #没有给input_address赋值,默认为海贼王
name('路飞','龙珠')   #给input_address赋的值会 覆盖掉 默认值海贼王

5.多个参数

        一个函数可以处理比函数定义时更多的参数。加了星号(*)的变量名会存放所有未命名的变量参数(元组)。 加了(**)的变量名会存放所有命名的变量参数(字典)。

eg:

'''
多个参数;能处理比函数定义时更多的参数,
          加了星号(*)的变量名会存放所有未命名的变量参数(元组)。
          加了(**)会存放所有命名的变量参数(字典)。
'''
def name (input_name,input_address,*args,**args1):  #若在函数调用时没有给input_address赋值,则默认为海贼王
    print('你好,我是%s,来自%s'%(input_name,input_address))
    print(args)
    print(args1)

name('MgVccl','重庆',)
name('MgVccl','重庆','18','火锅','鸡公煲') #加了星号(*)的变量名会存放所有未命名的变量参数。
name('MgVccl','重庆','18','火锅','鸡公煲',a=1,b=2,c=3,d=4,e=5) #加了(**)会存放所有命名的变量参数(字典)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值