1.函数的目的
在python中使用函数可以减少重复代码,提复用率,目的为了封装一定的功能,比如print封装了打印输出的功能。
2.函数的定义
是我们在编写程序的时候,临时创建一个新的函数,一个可以重复使用函数的过程,一个简单的函数定义包括, 函数名,形参和实参,返回以及调用。
3.函数的声明
声明一个函数时,需要用到def关键字,格式为 def 函数名():
def my_fun():
4.函数的调用
声明完一个函数之后,可以通过 函数名()来调用自己声明的函数:
def my_fun():
my_fun()
5.函数的形参
函数的形式参数,即形参,是出现在声明一个函数时,出现在函数名后面括号中的一个变量,需要使用实参赋值,如下,就将一个函数赋予了一个形参
def my_fun(name):
6.函数的实参
函数的实际参数,即实参,是出现在函数调用时出现在()中的值,实参是为了给形参赋值
def my_fun(name):
print(f"{name}")
my_fun("吴彦祖")
#打印结果为:吴彦祖
7.函数的返回值
函数的返回值值函数运行完之后返回给调用着的数据,函数的返回是通过return返回,如果没有写就是None。下面是向调用者返回一个加法运算
def get_total(a, b):
return a + b
result = get_total(10,20)
print(result)
8.函数的参数类型
位置参数
将实参与形参一 一对应赋值
def my_fun(num1, num2):
pass
my_fun(10,20)
默认参数
在形参中直接赋值
def my_fun(num1, num2 = 20):
pass
my_fun(10)
关键字参数
形参中直接赋值后,需要在实参中通过关键字再次赋值,将原来的值覆盖
def my_fun(num1, num2 = 20):
pass
my_fun(10, num2 = 50)
可变元组参数
以元组形式输出,一般放在位置参数后面,*开头,可接受任意个实参
def my_fun(num1, *arges):
print(num1, arges)
my_fun(10, 10,20,30,40)
字典参数
以**开头,可以接收除形参中出现的,任意个以关键字形式赋值的参数,以字典形式打印
def my_fun(num1, *arges, **kwargs):
print(num1, arges, kwargs)
my_fun(10, 10,20,30,40, num2 = "你好", num3 = "hello")
关于函数参数的类型,在上一期内容中有详细解释
9.变量的作用域和(global与nonlocal)
全局变量
是在函数外部定义的变量,全局变量在整个程序的范围内都可以使用,如下就是一个全局变量num
num = 100
def my_fun()
pass
def_myfun()
局部变量
是被定义在函数内部的变量,只供定义该变量函数的内部使用,函数程序运行结束,该便变量的作用也随着结束
def my_fun()
num = 100
pass
def_myfun()
global关键字
global是用来将函数内部的变量,修改为全局变量,这样可以在函数内部修改全局变量的值,以达到程序所需
a = 10
def my_fun():
#b是函数的内部变量 执行完函数 b回收 不能再使用b
b = 20
print(b)
#函数内部想要使用修改全局变量需要使用关键字global
global a #表明在函数内部使用的a 就是全局变量a
print(a)#这个a的值为全局变量的值
a = 20
print(a)
my_fun()
print(a)
nonlocal关键字
可以将非全局变量 非局部变量的值更改,用于更改外部嵌套函数中的变量
def my_fun():
a = 10
print(a)
def my_fun2():
nonlocal a
a = 20
pass
10.递归函数
递归函数是指在使用函数过程中,调用函数自身的过程,使用递归函数是一定要有递归出口
下面是使用递归函数计算一个数的阶乘
def get_sum(v):
# 递归出口
if v == 1:
return 1
else: #5+4+3+2+1
return v + get_sum(v-1)
print(get_sum(5))
11.匿名函数
匿名函数是一种较简的函数,是一次性使用函数。定义时使用lambda关键字创建,可以没有retun
my_fun = lambda: print("今天周五")
print(type(my_fun))
my_fun()
12.闭包
闭包三要素:
外部函数嵌套内部函数
外部函数将内部函数返回
内部函数可以访问外部函数的局部变量
dates = []
print()
def fun2():
dates.append(1)
print(dates)
return fun2
r = fun1()
r()
标签:10,函数,python,print,详解,fun,my,def
From: https://blog.csdn.net/zcg203/article/details/140557426