形参与实参的区别,默认参数,多参数函数调用时参数的填入及可变参数args

239 阅读1分钟

一.形参与实参的区别:

何为形参?何为实参?

形参:建立函数时括号里面输入的参数。

实参:调用函数时括号里面输入的参数。


list = [1, 2, 3, 4, 5]      # 列表也能作为参数进行调用函数

# 将小于3的数删除
def Dele(name):             #这里的name就是形参
    n = 0
    while n < len(name):
        if name[n] < 3:
            name.pop(n)
        else:
            n += 1
    print(name)


Dele(list)        # 这里的list就是实参
[3, 4, 5]   # 这是运行结果

形参的实质就是实参的占位符,实参的类型不限,可以是个变量名,也可以是个字符串。

三.默认参数:

在定义函数的时候,有一个或者多个参数已经赋好值。

def 函数名(参数1, 参数2, 参数3=值, 参数4=值, 参数5=值):
    pass
调用特点:
    参数1和参数2调用必须给值,默认值可以给值也可以不给值.

    另外默认参数一定要在普通参数后面

二.多参数函数调用时参数的填入:

带有多个参数的函数

def 函数名(参数1, 参数2):
   函数体

调用填写时如果是直接写字符串或者其它数据类型,都会实参都会按形参的顺序与其对应。

def name(n, m):
         print(n + m)

name('hello', 'hei')     
hellohei     #   打印结果

如果不想按顺序填实参的话,可以在填的时候直接指明形参

列如:

    def name(n, m, g):
        print(n)
        print(m)
        print(g)
        
    # 调用函数    
    name('app', g = 'book', m = 456)
    
    
 app  # 打印结果
 456
 book

四.可变参数args:

*args     随便在参数面前放个*,就可使得这个形参存放多个实参数据,当一个实参里面有多个数据想分开时,则形参前面加个*,实参前面也加一个*

1.装包:

例子:


 def get_sum(*args):
     print(args)
# # 调用
 get_sum(1, 2, 3)   (123)----> 打印结果
 
 
 

2.拆包:

例子:

list1 = [1, 2, 3, 4, 5, 6]
def jia(*a):
    r = 0
    for i in a:
        r += i
    print(r)


jia(*list1)