【Python】函数

一、什么是函数

函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。

函数能提高应用的模块性,和代码的重复利用率。你已经知道Python提供了许多内建函数,比如print()。但你也可以自己创建函数,这被叫做用户自定义函数。

def 函数名():
    函数内编写代码
    ...
    ...
函数名()

例如:

# 定义名字叫info的函数
def info():
    print("第一行")
    print("第二行")
    print("第n行...")
info()
一个简单的例子:
def hello(name):
    print(f"hello {name}")


hello(input("请输入您的名字:"))
【Python】函数_第1张图片
定义了一个函数hello(),给里面传入了一个参数name;

在调用hello()时,给里面写入“input("请输入您的名字:")”,相当于把“input("请输入您的名字:") ”传给了参数name;所以执行完毕会有上面的结果;

return

return 语句将Python函数的结果,返回到调用的地方,并把程序的控制权一起返回,即在函数中,执行到return语句时,会退出程序 (try...finally语句除外); Python 函数中,没有return语句时,默认 return一个 None 对象;多个return语句时,运行到第一个return语句即返回,不再执行其它代码;

return是将函数的结果输出给函数的调用者,是给程序用的;

print是将文字信息输出到控制台,是给人看的;

return是一个返回值,只有被打印的时候才能拿到它的值;

def hello(name):
    # print(f"hello {name}")
    return f'hello,{name}'


hello(input("请输入您的名字:"))
【Python】函数_第2张图片
如上述结果,拿不到return的返回值
【Python】函数_第3张图片
不打印的话,相当于这个return的值你拿到了,但是看不到,只有打印了函数的调用才能看到;

【所以return值你想看到必须打印(函数的调用)】


再举个例子
def add(x, y):
    return x + y


def minus(x, y):
    return x - y


print(minus(add(1, 3), 2))
print(minus(2, 1))
【Python】函数_第4张图片

返回值可以是任意类型,如果函数中没写return,则默认返回None

def func():
return [1,True,(11,22,33)]
result = func()
print(result)

def func():
value = 1 + 1
ret = func()
print(ret) # None

当在函数中 未写返回值 或 return 或 return None ,执行函数获取的返回值都 是None。

def func():
value = 1 + 1
return # 或 return None
ret = func()
print(ret) # None

return后面的值如果有逗号,则默认会将返回值转换成元组再返回。

def func():
return 1,2,3
value = func()
print(value) # (1,2,3)

函数一旦遇到return就会立即退出函数(终止函数中的所有代码)

def func():
print(1)
return "结束吧"
print(2)
ret = func()
print(ret)


参数

形式参数:

在定义函数时,如果在括号中添加 变量 ,我们称它为函数的形式参数:

# ###### 定义有三个参数的函数(a1/a2/a3一般称为形式参数-形参) #####
def func(a1,a2,a3):
    print(a1+a2+a3)
# 执行函数并传入参数(执行函数传值时一般称为实际参数-实参)
    func(11,22,33)
# 执行函数并传入参数
    func(9,2,103)

位置传参

def add(n1,n2):
    print(n1+n2)

add(1,22)

关键字传参

def add(n1,n2):
    print(n1+n2)

add(n1=1,n2=22)

默认参数

def three_add(x, y, z=10):
    return x + y + z


print(three_add(2, 4))
【Python】函数_第5张图片
z为默认参数,当没有对z进行位置传参时,它的默认参数为10
def three_add(x, y, z=10):
    return x + y + z


print(three_add(2, 4,5))
【Python】函数_第6张图片
当对z进行位置传参时,它的默认参数会被覆盖;

动态参数

*

def func(*abc):
    print(abc)


# 只能按照位置传参
func(1, 2, 3, 4)
func(22)
func(22,33)
func(22,33,99)
func()
【Python】函数_第7张图片
将传入的参数变成一个元组;

**

def func(**kwargs):
    print(kwargs)


# 只能按关键字传参
func(n1="小胖")
func(n1="小胖", age=18)
func(n1="小胖", age=18, email="xx@live.com")
将传入的参数变成一个字典;

你可能感兴趣的:(Python,python,开发语言)