python函数

一、函数定义与调用

"""
定义一个函数
"""

def add():
    print("this is a test function!")

add()#调用函数add

二、函数的返回值(返回值不会直接输出,只有在需要的时候可以进行输出和相关运算)

"""
定义一个函数add
返回两个数的相加结果
"""
def add():
    n=2
    m=5
    return n+m

count=add()#调用函数add
print(count)#打印返回值7

三、函数的参数

"""
定义一个函数add
返回两个数的相加结果
此函数的形参为m,n
"""
def add(m,n):
    return n+m

count=add(2,3)#调用函数add,2、3是函数的实参
print(count)#打印返回值5

1、位置参数

传参的时候按照位置顺序进行参数传递和接受,严格禁止参数换位。

"""
定义一个人员信息函数
"""
def message(name,age,gender):
    print("I'm %s,%d years old,a %s"%(name,age,gender))

name="rain"
age=10
gender="boy"

count=message(name,age,gender)#调用函数

"""
执行结果:
I'm rain,10 years old,a boy
"""

2、默认参数

    位置参数默认都要进行全部给出的,不能多也不能少,否则报错。有时为了方便我们给出一个默认参数,可以选择不输入,输入就会覆盖掉默认值。注:默认参数一定要放在其他参数后面。

"""
定义一个函数人员信息
"""
def message(name,age,gender="male"):
    msg=list([name,age,gender])
    print("I'm %s,%d years old,a %s"%(name,age,gender))

name="rain"
age=10

count=message(name,age)#调用函数

"""
执行结果:

    I'm rain,10 years old,a male
"""

3、关键字参数

关键字参数可以是无序的,只是需要记住形式参数的名称即可。但是必须放在位置参数后面

"""
定义一个函数人员信息
*args是无限量的位置参数
"""
def message(name,age,gender,color):
    print("I'm %s,%d years old,a %s,my favourite color is %s"%(name,age,gender,color))

count=message("rain",18,color="yellow",gender="male")#调用函数

"""
执行结果:

   I'm rain,18 years old,a male,my favourite color is yellow
"""

4、不定长参数

*单个星号的形参是不定长位置参数,

"""
定义一个函数人员信息
*args是无限量的位置参数
"""
def message(name,age,*args):
    print("I'm %s,%d years old,a %s,my favourite color is %s"%(name,age,*args))
    print(args)

count=message("rain",18,"male","yellow")#调用函数

"""
执行结果:

   I'm rain,18 years old,a male,my favourite color is yellow
   ('male', 'yellow')
"""

**双星号是不定长关键字参数

"""
定义一个函数人员信息
"""
def message(name,age,**kwargs):
    print(kwargs)

count=message("rain",18,gender="male",love="yellow")#调用函数

"""
执行结果:

   {'gender': 'male', 'love': 'yellow'}
"""

四、函数的嵌套

    函数内部既可以声明函数,也可以调用函数

#函数的嵌套
def foo():
    def inn():
        print("我是inn")

    inn()

foo()#我是inn

五、函数的作用域

    变量调用顺序:local->inclosing->global->built in(局部作用域->嵌套作用域->全局作用域->内建作用域)

    局部作用域:就是函数的内部

    嵌套作用域:函数嵌套的内部函数的外层函数区

    全局作用域:声明在函数外部的变量

    内建作用域:系统内部定义的函数(文件都可以调用)

六、匿名函数

lambda表达式,又称匿名函数。用完资源即释放,简单一行命令

name=lambda[list]:表达式

data1=(lambda a,b:a+b)(2,3)
print(data1)#5

#等价于
def add(x,y):
    return x+y

七、高阶函数

一个高阶函数至少有以下特点之一:

    1、将一个或多个函数作为形参

    2、返回一个函数作为其结果

#一切皆数据,函数即变量
def foo():
    print("i am func foo")

def bar(foo):
    print("i am func bar")
    foo()


bar(foo)

"""
执行结果:
    i am func bar
    i am func foo
"""

def bar1():
    print("i am func bar1")

    def foo1():
        print("i am func foo1")
    return foo1

func=bar1()
func()
"""
执行结果:
    i am func bar1
    i am func foo1
"""

八、常见内置函数

常见内置函数
内置函数说明内置函数说明
bool强制转换成bool值bin二进制
oct八进制hex十六进制
sum求和max最大值
min最小值abs绝对值
powdivmod
roundchr强制转换字符
ord强制转换成字节list列表
dict字典set集合
len长度any
allzip
sorted

九、常见高阶函数

1、高阶函数-filter

# filter函数:对sequence中的item依次执行function(item),将执行结果为True的item组成一个List/String/Tuple(取决于sequence的类型)。
l = [1, 2, 3, 4]
print(list(filter(lambda x: x % 2 == 0, l)))

"""
执行结果:

    [2, 4]
"""

2、高阶函数-map

# map函数:对sequence中的item依次执行function(item),将function(item)执行结果(返回值)组成一个List返回

l = [1, 2, 3, 4]
print(list(map(lambda x: x * x, l)))

"""
执行结果:

   [1, 4, 9, 16]
"""

3、高阶函数-reduce
 

#取前两个数据进行操作,然后得到值和第三个进行操作,依次迭代,最后返回一个最终值
from functools import reduce

l = [1, 2, 3, 4]

print(reduce(lambda x, y: x * y, l))#24

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值