python函数的使用

"""
创建函数  函数名([形参1,形参2,形参n])
    代码块
    函数名必须要符合标识符的规范
    (可以包含字母,数字,下划线,但是不能以数字开头)
函数中保存的代码不会立刻执行,需要调用函数代码才会执行

函数中的参数
在定义函数时,可以在函数名后面的()中定义数量不等的形参
多个形参用逗号隔开
形参(形式参数)定义形参就相当于在函数内部声明了变量,但是并不赋值
实参:将会赋值给对应的形参,偶几个形参就传几个形参

关键字参数
关键字参数,可以不按照形参定义的顺序去传递,而是直接根据参数名去传递参数
"""
# def fn(a,b):
#     print(a+b)
# fn(10,20)
#
# def sc(a,b,c):
#     print(a*b*c)
# sc(10,2,30)

"""
不定长参数
定义一个函数,可以求任意数字的和
    #定义一个变量,来保存结果
"""
"""
返回值,返回值就是函数执行以后返回的结果
可以通过return来指定函数的返回值
可以直接使用函数的返回值,也可以通过变量来接收函数的返回值
return 后面跟什么值,函数就会返回什么值
return后面可以跟任意的对象,返回值甚至可以是一个函数

如果仅仅写一个return 或者不写return ,则相当于return None
在函数中,return后的代码都不会执行,return一旦执行函数自动结束

break:用来退出当次循环
continue:用来跳过当次循环
reture 用来结束函数
"""
# def sum(*nums):
#     result = 0
#     for n in nums:
#         result+=n
#     print(result)
# sum(100,22,44,5,6,7,55,41)
# def fn():
#     return 10
# #fn和fn()的区别
# print(fn)    #fn是函数对象,打印fn实际是在打印函数对象<function fn at 0x000001DA5956D8B8>
# print(fn())  #fn()是在调用函数,打印fn()实际上在打印fn()函数返回值10

"""
help()是python中的内置函数
通过help()函数可以查询python中的函数的用法
语法:help(函数对象)
"""

"""
递归式函数:在函数中自己调用自己
无穷递归:如果这个函数被调用,程序就会内存溢出,类似于死循环
递归函数的两个要点
1:基线条件:
        问题可以被分解为最小问题,当满足基线条件时,递归就不执行了
2:递归条件:
        将问题继续分解的条件
"""
#递归案例
# def hui_wen(s):
#     if len(s) <2:
#         return True
#     elif s[0]!=s[-1]:
#         return False
#
#     return hui_wen(s[1:-1])
# print(hui_wen('ABCDEFGFEDCBA'))

"""
函数式编程

在python中,函数是一等对象
一等对象一般具有以下几个特点
1、对象是在运行时创建的
2、能赋值给变量或作为数据结构中的元素
3、能作为参数传递
4、能作为返回值返回

高阶函数
高阶函数至少要符合以下两个特点中的一个
1、接收一个或者多个函数作为参数
2、将函数作为返回值返回
"""
# l=[1,2,3,4,5,6,7,8,9]
# def fn(lst):
#     new_list=[]
#     for n in lst:
#         if n%2==0:
#             new_list.append(n)
#     return new_list
# print(fn(l))

"""
map()函数可以对可迭代对象中的所有元素做指定的操作,然后将其添加到一个新的对象中返回
"""
# l=[1,2,3,4,5,6,7,8,9]
# r=map(lambda i:i**2 ,l)
# print(list(r))

"""
sort()
该方法用来对列表中的元素进行排序
sort()方法默认是直接比较列表中的元素大小
在sort()可以接受一个关键字参数,key
key需要一个函数作为一个参数,当设置了函数作为参数
每次调用都会以列表中的一个参数作为参数来调用函数,并且使用函数的返回值来比较元素的大小
"""
# l=['bbbbb','aaaaaaa','h','lllllllll','iiiiiii']
# l.sort()
# print(l)

"""
sorted()
这个函数和sort()的用法基本一致,但是sorted可以对任意的序列进行排序
并且使用sort()排序不会影响原来的对象,而是返回一个新对象
"""
# l=[1,5,4,6,7,0,3,4]
# print("排序前",l)
# print(sorted(l, key=int))
# print("排序后",l)

"""
闭包
形成闭包的条件
1、函数嵌套
2、将内部的函数作为返回值返回
3、内部函数必须要使用到外部函数的变量
"""
# def make_avg():
#     #创建一个列表,用来保存数值
#     nums=[]
#     #创建一个函数,用来计算平均值
#     def avg(n):
#         #将n添加到列表中
#         nums.append(n)
#         #求平均值
#         return sum(nums)/len(nums)
#     return avg
# avg=make_avg()
#
# print(avg(10))
# print(avg(20))
"""
装饰器的使用
"""

def add(a,b):
    """
    求任意两个数的和
    """
    r=a+b
    return r

add(10,20)
def mul(a,b):
    """
    求任意两个数的积
    """
    r=a*b
    return r
mul(10,45)
def begin_end(old):
    """
    用来对其他函数进行扩展,使其他函数可在执行打印开始之前执行,执行后打印执行语句
    参数:old
    """
    #创建一个新函数
    def new_function(*args,**kwargs):
        print("开始执行。。。。。")
        result=old(*args,**kwargs)
        print("执行结束。。。。。")
        #返回函数的执行结果
        return result
    #返回新函数
    return new_function
f=begin_end(add)
f2=begin_end(mul)
@begin_end
def say_hello():
    print("大家好")
say_hello()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

林中有神君

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值