python函数


前言


提示:以下是本篇文章正文内容,下面案例可供参考

一、函数的定义

1.定义

一段可以解决特定功能的代码,可以重复使用,函数可以提高程序代码的复用和维护

2.函数概念

函数定义:def 函数名(形式参数):

        代码块

函数名:用于指定特定的代码块

函数体:函数开启缩进的语句

形参变量:定义再函数名括号里面的变量

实参变量:调用函数时传递的变量

return:函数返回值,默认是None,可以返回多个值,return不仅可以跳出函数里面的for和while循环,直接可以跳出函数

二、函数的参数类型

1.位置参数

在函数调用时,位置参数按照函数定义时的顺序赋值,在函数调用时,传递的实参和形参位置需要一一对应

def func(a, b):
    return a + b
result = func(1, 2)  # a=1, b=2

2.关键字参数

关键字参数在定义时需要明确指定形参的名称,不太依赖参数的位置

result = func(b=2, a=1)  # 明确指定a和b的值

3.默认参数

函数定义时,给形式参数赋予的一个默认值,函数调用时,如果没有传递对应的实参,则直接使用默认值,传递了实参就使用对应的实参。默认值必须在非默认值后面

def func(a, b=2):
    return a + b
result1 = func(1)      # b使用默认值2
result2 = func(1, 3)   # b使用实参3

4.可变参数

4.1*args

用于接受多余的位置参数,可以接受实参传进来的多个位置参数,返回值是元组类型的数据

def func(a, *args):
    print(a, args)
func(1, 2, 3)  # 输出: 1 (2, 3)

4.2**kwargs

用于接受函数调用时多余的关键字参数,最后会打包成一个字典类型的数据返回

def func(a, **kwargs):
    print(a, kwargs)
func(1, b=2, c=3)  # 输出: 1 {'b': 2, 'c': 3}

三.递归函数

递归函数是自己调用自己,需要有一个值能够跳出循环

#  求 1+2 +3 + 4 + ....+ n  的和
def get_sum(n):
     if n == 1:
         return 1
    else:
         return n + get_sum(n - 1)

递归函数本身比价鸡肋,所以很少用到

四.匿名函数

1.函数定义

匿名函数是一种没有名字,使用return返回,通常使用一次性使用的场景,不能包含多行代码,本质上是一个函数对象,可以赋值给对象或者作为参数传递。

2.函数表达式

lambda 参数1, 参数2, ... : 表达式

3.简单加法函数

add = lambda x,y:x+y
print(add(2, 3))
#等同于
def add(x,y)
    return x+y

4.map

把函数并行的作用到一个或者多个可以迭代的对象的每个元素上,返回一个惰性迭代器

简单来说,map的作用就是一对一返回数据

#map 映射,一对一返回数据
 l0 = [1,3,5,7]
 for e in map(lambda x:x+1,l0):
     print(e)
#输出2,4,6,8

5.filter过滤器

过滤器可以过滤不符合要求的结果

 l0 =[i for i in range(10)]
# # filter 过滤,返回真放入结果
 for e in filter(lambda x:x % 2 == 0,l0):
    print(e)
#输出 2,4,6,8

五.全局变量和局部变量

1.局部变量

定义在函数里面的变量,变量只能在函数里面有效

global_var = 10  # 全局变量

def func():
    local_var = 20  # 局部变量
    
    print(local_var)  # 可以访问局部变量

func()
print(global_var)  # 可以访问全局变量
print(local_var)  # 报错,无法访问局部变量

2.全局变量

全局变量作用域可以覆盖整个程序,函数任何地方和方法中都可以使用

global_var = 10  # 全局变量

def func():
    local_var = 20  # 局部变量
    print(global_var)  # 可以访问全局变量
    print(local_var)  # 可以访问局部变量

func()
print(global_var)  # 可以访问全局变量
print(local_var)  # 报错,无法访问局部变量

3.global关键字

global可以在函数内部修改全局变量

x = 10  # 全局变量

def modify_global():
    global x
    x = 20  # 修改全局变量

modify_global()
print(x)  # 输出 20

尽量减少全局变量的使用,优先使用局部变量和函数参数传递数据。必要时使用类或模块来组织和管理共享数据。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值