Python入门_基础语法02丨函数

一、函数定义

1、作用:

  • 提高代码的复用率。
  • 提高代码维护的效率。

2、函数定义格式

def 函数名(参数列表):
    
    函数体

3、特殊函数      

'''
pass语句通常可以用来作为占位符,表示什么操作都不执行。
在项目起始阶段,如果还没想好函数具体实现时,可以先放置一个pass语句,让代码先成功运行起来。
待项目框架搭建完毕后,再进行相应的具体实现。
'''
def nop():
    pass

4、形参&实参

  • 函数定义时用的是形参。
  • 调用函数时用的是实参。

5、函数的返回值

  • 函数都有返回值,甚至可以有多个返回值,默认返回None。
  •  返回值和接收变量的对应关系,是按照顺序一一对应的。

二、函数分类

1、内置函数

  • Python语言中自带的函数。
  • 可以把函数名赋给一个变量,使用该变量名调用此函数。

2、第三方函数

  • 除内置函数外的其他类型函数。

3、自定义函数

  • 开发者根据实际需要自定义的函数。

三、函数参数

1、参数种类

  • 可变类型
    • 函数内部对传入参数的修改会影响到外部变量。
    • 列表、字典、集合等。
  • 不可变类型
    • 函数内部对传入参数的修改不会影响到外部变量。
    • 数字、字符串、元组等。

2、位置参数

  • 每个实参都关联到函数的相应形参。

3、默认参数

  • 编写函数时,可给每个形参指定默认值。
  • 调用函数时,如果给形参提供了实参,就使用指定的实参值;否则将使用形参的默认值。
  • 给形参指定默认值后,可在函数调用中省略相应的实参。
  • 设置默认参数时,必选参数在前,默认参数在后
  • 默认参数必须指向不可变对象,否则会出现错误
def test_add(a=[]):
    a.append('END')
    return a

print(test_add([1, 2, 3]))
print(test_add(['a', 'b', 'c']))
print(test_add())
print(test_add())
print(test_add())

结果:

'''
函数在定义的时候,默认参数H的值就被计算出来了,即[]。
因为默认参数H也是一个变量,它指向对象[]。
每次调用该函数,如果改变了H的内容,则下次调用时,默认参数的内容就变了,不再是函数定义时的[]了。
'''
[1, 2, 3, 'END']
['a', 'b', 'c', 'END']
['END']
['END', 'END']
['END', 'END', 'END']

4、不定长参数(可变参数)

  • 调用时,需要先组装出一个list或tuple
  • 在函数参数前面添加“*”号把该参数定义为不定长参数
def calc(*numbers):
    sum = 0
    for n in numbers:
        sum = sum + n
    return sum


print(calc(1, 2, 3, 4))
print(calc())
num = [1, 2, 3]
print(calc(*num))

5、关键字参数

  • 传递参数时使用“名称–值”对的方式,在实参中将名称和值关联起来。
  • 关键字参数有扩展函数的功能。
  • *表示不定长参数   **表示不定长的关键字参数。

6、命名关键字参数

  • 要限制关键字参数的名字,可以用命名关键字参数。
  • 如果没有可变参数,命名关键字参数必须加一个“”作为特殊分隔符
    • 缺少“”,Python语言解释器将无法识别位置参数和命名关键字参数。
def enroll(name, gender, *, age, city):
    print(name, gender, age, city)


enroll('Jack', 'M', age='18', city='Beijing')

#结果
Jack M 18 Beijing

------------------------

#报错
def enroll(name, gender, *grade, age, city):
    print(name, gender, age, city)


enroll('Jack', 'M', '18', 'Beijing')

7、参数组合

  • 定义的顺序必须是:必选参数、默认参数、可变参数、命名关键字参数和关键字参数。

四、函数式编程

1、高阶函数

  • 接受函数为参数,或者把函数作为结果返回的函数。

2、匿名函数

不再使用def语句这样标准形式定义的函数。

lambda [arg1[,arg2],....argn]]:expression

例子:

sum = lambda arg1, arg2: arg1 + arg2

print(sum(1, 2)) # 结果是:3

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值