Python:八、函数基础,函数参数,匿名函数和值传递

本文详细介绍了Python中的函数基础,包括函数定义、调用及return返回值。深入探讨了函数参数的分类和类型,如位置参数、默认参数、关键字参数和不定长参数。重点讲解了匿名函数(lambda)及其应用,并讨论了Python中的值传递和引用传递概念。
摘要由CSDN通过智能技术生成

一、函数基础

  • 在一个完整的项目中,某些功能会被反复使用,那么将这部分功能对应的代码提取出来,当需要使用功能的时候直接使用。

  • 本质:对一些特殊功能的封装。

  • 优点:
    ​ 1. 简化代码结构,提高应用的效率
    ​ 2. 提高代码复用性
    ​ 3. 提高代码的可读性和可维护性

  • 建议:但凡涉及到功能,都尽量使用函数实现。

1.1 定义、调用函数
1.1.1 定义函数
  • 语法:

    def 函数名(参数1,参数2,参数3…):
    ​ 函数体
    ​ 返回值

  • 说明:
    1、函数由两部分组成:声明部分和实现部分;
    2、def是关键字,是define的缩写,表示定义的意思;
    3、函数名:类似于变量名,遵循标识符的命名规则,尽量做到顾名思义
    4、():表示的参数列表的开始和结束
    5、参数1,参数2,参数3… :参数列表【形式参数,简称为形参】,其实本质上就是一个变量名,参数列表可以为空
    6、函数体:封装的功能的代码
    7、返回值:一般用于结束函数,可有可无,如果有返回值,则表示将相关的信息携带出去,携带给调用者,如果没有返回值,则相当于返回None

    def fn():
        print('fn')
    
1.1.2 函数的调用
  • 格式:函数名(参数列表)

  • 注意:
    1、当定义好一个函数之后,这个函数不会自动执行函数体,必须要调用才会执行;
    2、当调用函数的时候,参数列表需要和定义函数时候的参数列表保持一致;
    3、一个函数可以被多次调用;
    4、当在同一个py文件中定义多个同名的函数,最终调用函数,调用的最后出现的函数(覆盖:函数名类似于变量名,相当于变量的重新赋值);
    5、在一个自定义的函数内部也可以调用函数;
    6、自定义函数必须先定义,然后才调用, 否则报NameError。

    def sums(a, b):
        s = a + b
        print(s)
    sums(2, 3)
    
1.2 return返回值
  • 作用:表示一个函数执行完毕之后得到的结果。

  • 使用:return,表示结束函数,将函数得到的结果返回给调用者。

  • 注意:
    1、用于终止函数。在同一个代码块中,如果在return后面出现语句,则永远不会被执行;
    2、如果一个函数有返回值,要么采用变量将返回值接出来,要么将整个函数的调用直接参与运算;如果一个函数没有返回值,则这个函数的调用不能直接参与运算。

    def add(num1,num2):
    	sum1 = num1 + num2
    	return sum1
    r = add(10,20)
    print(r)
    1、有返回值,直接参与运算:
    total = add(1,2) + 5
    print(total) 		---> 8
    2、无返回值,不能直接参与运算:
    total1 = func(1,2) + 5  
    print(total1)		---> 报错
    

    3、如果一个函数没有返回值,则整体计算的结果为None,默认返回None;
    4、如果一个函数体中有分支,设置了返回值,最好每一个分支都有一个返回值。不同分支返回的数据类型可以是不相同的。

    def is_leap(year):
        if year%4==0 and year%100!=0 or year%400==0:
        	return True
        else:
            return False
    r = is_leap(2020)
    print(r)
    

    5、一个return可以同时返回多个数据,被当做元组处理。

    def change(a, b):
        return a, b
    r = change(2, 3)
    print(r)    			---> (2, 3)
    

    6、交换两个变量值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值