淮南草的博客

淮南草的博客

Python3函数

面向对象--》类--》class

面向过程--》过程--》def

函数式编程--》函数--》def

使用这些方法具有可提高代码的复用性和可扩展性,面向对象过程编程可以理解为 没有返回值的函数式编程


函数式编程中:函数返回值数 = 0   返回None

                                           =1    返回object(即序列就是序列,字符串就是字符串)

                                           >1    返回元组


参数组:例如 fun(*args) 接收N个位置参数 如(1,2,3,4,5)

                    fun(**args)接收N个关键字参数 如 字典

实例如下:

def fun1(*args):
    print(args)
      
def fun2(**kwargs):
    print(kwargs)
    
fun1(*[1,2,3])      
fun2(name='123')
输出为:
(1, 2, 3)
{'name': '123'}

局部变量与全局变量:

    局部变量一般存在于函数内部,

    全局变量一般 定义在第一级,

    在函数内部修改全局变量需要添加global申明,但是尽量不要在函数内部修改全局变量,也不要在函数内定义全局变量


函数内部可修改 定义的全局list变量等较复杂变量  ,但不能修改字符串和整数变量

如:

list1 = [1,2]
num = 10
str1 = "hclln"


def fun():
    list1[0] = 999
    num = 5
    str1 = "1234"
fun()
print(list1)
print(num)
print(str1)
输出为:
[999, 2]
10
hclln


递归函数:

    特性:1)必须要有一个明确的退出条件

              2)每次进入更深一层递归时,问题规模比上次递归应有所减少

              3)递归效率不高,递归层次过多会导致栈溢出(一般只允许递归999次)


如:

def fun(n):
    
    print(fun(n+1))

fun(0)
错误如下:
Traceback (most recent call last):
  File "F:\eclipse-workspace\algorithm\src\MMP.py", line 9, in <module>
    fun(0)
  File "F:\eclipse-workspace\algorithm\src\MMP.py", line 7, in fun
    print(fun(n+1))
  File "F:\eclipse-workspace\algorithm\src\MMP.py", line 7, in fun
    print(fun(n+1))
  File "F:\eclipse-workspace\algorithm\src\MMP.py", line 7, in fun
    print(fun(n+1))
  [Previous line repeated 995 more times]
RecursionError: maximum recursion depth exceeded


高阶函数:

    变量可以指向函数,函数的参数能接收变量,那么一个函数就可以接收另一个函数作为参数,这种函数就称之为高阶函数

如:

def add(x,y,f):
    return f(x)+f(y)

res = add(3,-6,abs)
print(res)
输出为:
9

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhuisaozhang1292/article/details/79954571
个人分类: python 语法基础
上一篇Python3文件操作
下一篇Python3 作业三_修改haproxy配置
想对作者说点什么? 我来说一句

python-3.6.3rc1-amd64.exe

2018年06月03日 8.66MB 下载

Dive into Python3.pdf

2018年06月09日 2.52MB 下载

机器学习算法

2018年05月22日 99KB 下载

dive into python3 (中文版)

2017年12月11日 4.19MB 下载

python3中文文档

2011年08月12日 2.37MB 下载

python3网络爬虫实战

2018年06月20日 30.45MB 下载

Dive into Pytho3

2013年05月24日 2.62MB 下载

没有更多推荐了,返回首页

关闭
关闭