def 函数名():

         代码块

一、函数定义

def 函数名(param1,param2……):

"""

函数功能的描述信息

:param1:描述

:param2:描述

:return:返回值

"""

code 1

code 2

code 3

...


return 返回值 
函数定义阶段:只检测语法,不执行函数体代码
函数调用阶段:执行函数代码

1.无参函数

def hello():
    print('hello')
hello()
hello

2.有参函数

def maax(i,j):
    if i >= j:
        print(i)
    else:
        print(j)
maax(15,20)
20

3.空函数

def super_max_ultra():
    pass

返回值

return 任意数据类型的数据 可以使用逗号隔开返回多个值(多个:返回值会被包成元组)

def maxx(i,j):
    if i>=j:
        return i,'大'
    else:
        return j,'大'
print(maxx(15,20))
(20, '大')

二、函数的调用

调用函数,会执行函数体代码,直到碰到return或者执行完函数体内所有代码结束。

def max_self(x,y):
    if x>y:
        return x
    else:
        return y
    
# 1.
max_self(1,2)
# 2.
res = max_self(1,2)*12
# 3.
max_self(max_self(20000,30000),40000)

三、函数的参数

形参 #定义阶段的x,y

实参 #函数调用阶段传入的参数

会按前后顺序,即位置参数

def maax(i,j):#i,j即形参
    if i >= j:
        print(i)
    else:
        print(j)
maax(15,20)#15,20即实参
20

默认形参 #在定义阶段提前赋值给形参

位置形参必须放在默认形参的左边。

默认参数的值通常应该是不可变类型。

def maax(i=100,j=50):#i,j即形参
    if i >= j:
        print(i)
    else:
        print(j)
maax()
maax(15,20)
100
20

关键字实参 #在调用函数时,按照key=value的形式为指定的参数传值,称为关键字实参。

可以混用位置实参和关键字实参,但是位置实参必须在关键字实参的左边。

可以混用位置实参和关键字实参,但不能对一个形参重复赋值。

def maax(i=100,j=50):#i,j即形参
    print(f'i={i},j={j}')
    if i >= j:
        print(i)
    else:
        print(j)
maax()
maax(j=15,i=20)
i=100,j=50
100
i=20,j=15
20

可变长形参

*

形参中的*会将溢出的位置实参全部接收,然后存储元组的形式,然后把元组赋值给*后的参数。需要注意的是:*后的参数名约定俗成为args。

只接收位置参数,不接收关键字实参

def sum_self(*args):
    res = 0
    for num in args:
        res += num
    return res


res = sum_self(1, 2, 3, 4)
print(res)
10

**

形参中的会将溢出的关键字实参全部接收,然后存储字典的形式,然后把字典赋值给后的参数。需要注意的是:**后的参数名约定俗成为kwargs。

只接受关键字实参

def func(**kwargw):
    print(kwargw)

func(a=5,b=6)
{'a': 5, 'b': 6}

可变长实参

*

实参中的*,*会将*后元组/列表打散成位置实参。

def func(a,b,c,d,e,f,g):
    print(a,b,c,d,e,f,g)
func(*(1,2,3,4,5,6,7))
1 2 3 4 5 6 7

**

实参中的**,**会将**后的字典打散成关键字实参。

def inf(**kwargs):
    print(kwargs)
inf(**{'name':'Lunar','sex':'female','age':27})
{'name': 'Lunar', 'sex': 'female', 'age': 27}
#我只要关键字实参
def mm(*a,**b):
    print(b)
mm(1,2,3,a=2,b=3)
{'a': 2, 'b': 3}
posted on 2025-07-12 17:23  新月绘影  阅读(9)  评论(0)    收藏  举报