python函数(python提升)

python函数的定义:

Python函数是一段具有特定功能的代码块,它可以被重复调用。函数在Python中是一个非常重要的概念,它可以帮助我们组织代码,提高代码的可读性和可维护性,同时还可以避免代码重复。

定义Python函数的基本语法如下:

def function_name(parameters):  
    # function body  
    return value

其中,function_name 是函数的名称,parameters 是函数的参数列表,function body 是函数体,return value 是函数的返回值。

内置函数

Python内置函数是指Python语言中已经定义好的函数,可以直接在程序中调用而不需要自己编写实现代码。以下是一些常用的Python内置函数:

  1. 数学函数:例如abs()、round()、sum()等,用于进行数学运算和操作。
  2. 字符串函数:例如len()、split()、join()等,用于处理字符串数据。
  3. 列表函数:例如append()、insert()、remove()等,用于操作列表数据。
  4. 字典函数:例如get()、keys()、values()等,用于操作字典数据。
  5. 文件操作函数:例如open()、read()、write()等,用于文件读写操作。
  6. 类型转换函数:例如int()、float()、str()等,用于将数据类型进行转换。
  7. 控制流函数:例如if()、while()、for()等,用于控制程序的流程。
  8. 其他函数:例如print()、input()等,用于输出和输入操作。
  9. 这些内置函数可以大大简化程序的开发过程,提高开发效率。

自定义函数及其调用

在Python中,你可以定义自己的函数,这些函数可以执行特定的任务。以下是一个简单的例子,它定义了一个函数,该函数接受两个参数并返回它们的和:

def definition(n1, n2):
    h = n1+n2
    return h
print(definition(12.5,13.5))   #结果为 26.0

在这个例子中, definition是函数的名称,n1和 n2 是函数的参数,return h是函数的返回值。当你调用这个函数时,你需要提供两个参数(在这个例子中是12.5和13.5),然后函数会返回这两个参数的和。

你可以根据需要定义更复杂的函数,这些函数可以接受任意数量的参数,可以执行任何Python代码,甚至可以返回多个值。

需要注意

1.def 函数名()是自定义函数的固定模式括号里面是参数,def相当于定义,如果定义完函数后不去进行调用,那么这个函数和注释效果一样,不起作用

2.函数名的定义要能简单的说明当前函数能完成的功能,和变量一样,要见名知意

3.小括号里面可以是空的,也就是什么都不写,但必须要有(就像核武器,可以不用,但必须要有)

4.调用函数的时候可以直接调用函数名,也可以通过变量赋值来进行调用

return关键字

在Python中,return 是一个关键字,用于从函数中返回一个值。当函数执行到 return 语句时,函数会立即停止执行,并将控制权返回给调用该函数的代码。

return 语句可以返回任何类型的值,包括基本数据类型(如整数、浮点数、字符串等)和复合数据类型(如列表、字典、元组等)。

下面是一个简单的例子,演示了如何使用 return 语句从函数中返回一个值:

def add_numbers(a, b):
    sum = a + b
    return sum

result = add_numbers(3, 4)
print(result)  # 输出: 7

在这个例子中,add_numbers 函数接受两个参数 a 和 b,将它们相加,并将结果存储在变量 sum 中。然后,使用 return 语句返回 sum 的值。最后,我们将返回值存储在变量 result 中,并使用 print 函数输出结果。

需要注意的是,如果函数中没有 return 语句或者 return 语句没有指定返回值,那么函数会默认返回 None。

下一篇文章会对return关键字进行详细的讲解,两个结合在一起才是全部

函数的参数

参数的分类
1.必备参数,调用时必须传入,否则报错
def definition(n1, n2):
    h = n1+n2
    return h
print(definition(12.5,13.5))   #结果为 26.0

这个参数的传入可以一一对应,也可以指定方式的传入,例如(n2=13.5,n1=12.5)

2.默认参数
def definition(n1, n2=10):
    h = n1+n2
    return h
print(definition(12.5))

这里面n2=10就是默认参数,如果有必要的话也可以在调用函数时传入第二个参数,会对默认参数进行覆盖

3.不定长参数
#不指定参数名称以*args元组的形式接收,指定名称参数以**kwargs字典的形式接收
def z(n1,n2,*args,**kwargs):
    print(n1,n2)
    print(args)
    print(kwargs)
    return z
z(1,2,'我很帅',dict=15)

参数传入顺序

必备参数>默认参数>不定长参数

函数的作用域

在Python中,函数的作用域是指函数内部定义的变量和函数的作用范围。在函数内部定义的变量具有局部作用域,只能在函数内部访问。而在函数外部定义的变量具有全局作用域,可以在整个程序中访问。

全局作用域
a = 10
def mount():
    a = a+1
    print(a)

这个是错误的代码,我们可以把全局作用域理解为生活中的公共设施,我们只有使用权,没有修改权,如果想要修改就得和政府/企业声明,因此这个代码是少了个声明

当在函数内部需要访问全局变量时,需要使用global关键字来声明。例如:

a = 10
def mount():
    global a
    a = a+1
    print(a)
mount()
将内部变量返回给全局使用可以通过return返回使用:
def func():
    b = 100
    print(b)

func()
print(b)

这个也是错误代码演示,局部作用域可以理解为老王的个人财产,其他人无法使用

正确代码:

def func():
    b = 100
    return b
b = func()
print(b)

老王的东西想要其他人使用就需要通过return返回出去再通过变量接收

局部作用域

nonlocal关键字是局部变量声明,只有声明之后内部函数才可以修改外部函数中定义的局部变量

def f():
    a = 100  #假如你女朋友有100,你想要借50
    def f1():
        nonlocal a  #但是你不知道你女朋友有没有钱,所以你就需要先问一下了,相当于声明
        a -= 50
        print(a)
    return f1()  #返回f1()函数,相当于调用了一下
f()

除了全局作用域和局部作用域之外,Python还支持闭包和嵌套函数,这些情况下变量的作用域会有所不同。在闭包中,内部函数可以访问外部函数的变量,即使外部函数已经执行完毕。而在嵌套函数中,内部函数可以访问外部函数的变量和全局作用域的变量。

总结来说,Python函数的作用域包括局部作用域、全局作用域、闭包和嵌套函数等。需要根据具体情况选择合适的作用域来定义和使用变量。

函数作用域-闭包

闭包是一种特殊的函数,它可以在函数外部访问函数内部的变量和参数,即使函数已经执行完毕。闭包的主要用途是保存状态、封装逻辑和实现高阶函数等。

闭包的条件:

1.存在于嵌套关系的函数中

2.嵌套的内部函数引用了外部函数的变量(至少一个)

3.嵌套的外部函数会将内部函数名作为返回值放回

def f():
    a = 100
    def f1():
        nonlocal a
        a -= 50
        print(a)
    return f1
x = f() #先调用最外面的函数,然后运行到内部f1()函数返回f1,x=f()=f1
x()   #再调用函数f1() ,x()=f1()

上面对局部作用域的解释就是一个闭包函数

递归函数

递归函数是一种特殊的函数,它调用自身来解决问题。递归函数通常有一个基本情况和一个或多个递归情况,基本情况用于处理简单的情况,递归情况用于将问题分解为更小的子问题,并调用自身来处理这些子问题。

下面是一个简单的例子,演示了如何使用递归函数计算阶乘:

def recursion(n):
    if n == 0 or 1:
        return 1
    else:
        return (n*recursion(n-1))
x = recursion(10)
print(x)

在这个例子中,recursion 函数是递归函数。它有一个基本情况(n == 0 or 1),当 n 为0或1时,返回1。它还有一个递归情况(else 分支),将问题分解为更小的子问题,即计算 n * recursion(n-1)。这个递归情况会一直调用自身,直到达到基本情况为止。

需要注意的是,递归函数必须有一个基本情况和一个或多个递归情况,而且必须小心处理递归的终止条件,否则会导致无限递归,导致程序崩溃。

匿名函数

Python中的匿名函数是指没有函数名称的函数表达式。它们通常用于需要一个简单函数操作的情况,而不必定义完整的函数。匿名函数可以使用 lambda 关键字定义。

以下是一个简单的示例,演示如何使用匿名函数计算两个数的和:

sum = lambda x, y: x + y  
print(sum(3, 4))  # 输出: 7

在这个例子中,我们使用 lambda 关键字定义了一个匿名函数,它接受两个参数 x 和 y,并返回它们的和。然后我们将这个匿名函数赋值给变量 sum,并调用它来计算 3 和 4 的和。

需要注意的是,匿名函数在需要一个简单函数操作时非常有用,但它们不适合复杂的逻辑或需要重复使用的功能。在这种情况下,应该使用常规的函数定义。

下篇文章会对python中的常用关键字进行详解

  • 38
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值