python中的函数(形参,返回值,生成式,高阶函数,匿名函数)

本文详细讲解了Python中的函数,涵盖函数定义与调用、嵌套函数、四种形参类型、返回值、变量作用域、生成式、高阶函数以及内置的map、reduce、filter和sorted函数。此外,还介绍了如何使用lambda表达式,并提供了多个练习题来加深对函数的理解。
摘要由CSDN通过智能技术生成

1.函数

1.1 函数的定义和调用

定义函数的关键字:def

def       函数名称(参数)

在这里插入图片描述
在这里插入图片描述
注意:函数只有通过函数名调用的时候才会运行函数中的内容,否则运行为空

示例:定义求和函数

def add():##定义求和函数
    num1 = 20
    num2 = 30
    result = num1 + num2
    print('%d + %d = %d' %(num1,num2,result))

add()##调用求和函数

在这里插入图片描述


1.2 嵌套函数的定义和调用

def hello():
    print('hello')
    def python():
        print('python')
    python()##嵌套函数的定义和调用需要写在调用函数内部

hello()

在这里插入图片描述


2.函数+变量

def       函数名称(形参)

注意:形参的内容取决于实参的内容

def year(a):##定义函数(a为形参)
    print('hello',a)
    
year('2019')##调用函数(2019为实参)
year('2020')##形参的内容取决于实参的内容

在这里插入图片描述


3.四种形参

参数分为形参实参
形参分为:位置参数 、默认参数 、可变参数 、关键字参数

3.1 位置参数

要求:实参和位置参数的参数个数保持一致,且顺序保持一致

def Info(name,age):
    print(name,age)
    
Info('sam',11)###位置参数和实参顺序需要一致
Info(11,'sam')
Info(age=11,name='sam')##标记key值位置可以不一样

在这里插入图片描述


3.2 默认参数

形参和实参个数可以不一样

def mypow(x,y=2):##y=2为默认参数
    print(x**y)
    
mypow(4)
mypow(2,3)

在这里插入图片描述


3.3 可变参数

def mysum(*a):##* 表示可以接受多个参数
    sum = 0
    for item in a:
        sum += item
    print(sum)
    
mysum(1,2,3,4,5)

在这里插入图片描述

3.4 关键字参数

注意:kwargs为关键字参数,是一个字典,可以传任意多个键值对

def getInfo(name,age,**kwargs):##**kwargs关键字参数,是一个字典
    print(name,age)
    print(kwargs)
    
getInfo('linda',18,gender='female',hobbies=['coding','running'])

在这里插入图片描述


4.函数的返回值

注意:返回值的关键字为:return,如果有返回返回值,没有返回none

def mypow(x,y=2):
    return x ** y, x + y

a,b = mypow(3)
print(a,b)

在这里插入图片描述


5.函数的变量作用域

局部变量: 在函数内部定义的变量,只在函数内部起作用,函数执行结束,变量会自动删除
全局变量: 会始终生效

a = 1##全局变量
print('outside:',id(a)) ####id(a)变量在内存中存储的位置

def fun():
    a = 5##局部变量
    print('inside:',id(a))
fun()

print(a)
print(id(a))

在这里插入图片描述

a = 1
print('outside:',id(a))

def fun():
    global a##声明为全局变量
    a = 5
    print('inside:',id(a))
fun()

print(a)
print(id(a))

在这里插入图片描述


6.函数的生成式

6.1 列表生成式

[expression      for i in seq    if...]

示例:
在这里插入图片描述
转换成生成式:

s = '3 25 99'
k,a,b = [int(item) for item in s.split()]
print(k,a,b)

在这里插入图片描述


练习:求平方和</

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值