Python(四)-函数总结,,版权声明:本文作者为


版权声明:


本文作者为—陈鑫

本文的所有内容均来陈鑫总结,未经本人许可,禁止私自转发及使用。

QQ: 499741233

E-mail: 499741233@qq.com


第1章 Python函数

面向对象
面向过程
1.可读性差
2.重用性差
函数式编程

第2章 自定义函数

看一个函数的例子:db文件内容为chenxin|123

def login(username,password):    ‘‘‘    用于用户登陆    :param username: 用户输入用户名    :param password: 用户输入密码    :return: true,登陆成功 false,登陆失败    ‘‘‘    file_name = open("db",‘r‘)    for line in file_name:        line_list = line.split("|")        if line_list[0] == username and line_list[1] == password:            return True    return False

解释:

1.def:表示函数的关键字

2.函数名:函数的名称,日后根据函数名调用函数

3.函数体:函数中进行一系列的逻辑计算,如:发送邮件

4.返回值:当函数执行完毕后,可以给调用者返回数据。

5.参数:为函数体提供数据(Python函数传递参数是传递一个引用。而不是重新赋值.)

1.普通参数(严格按照顺序,将实际参数赋值给形式参数)

2.默认参数(必须放置在参数列表的最后)

3.指定参数(将实际参数复制给指定的形式参数)

4.动态参数:

*args 默认将位置参数,全部放置在元组中

**kwargs 默认将关键字参数(字典),全部放置在字典中

5.万能参数

第3章 局部变量

1.在程序中定义的变量成为局部变量。
2.局部变量作用域是定义该变量的子程序。
3.当全局变量与局部变量冲突时,在定义局部变量的子程序内,局部变量起作用,在其他地方全局变量起作用

3.1 实例:

#!/usr/bin/env pythonname = "chenxin" def change_name(name):    print("before change:", name)    name = "陈鑫"  #定义局部变量    print("after chage:", name) change_name(name) print("在外面看name改了么?",name)执行结果:before change: chenxinafter chage: 陈鑫在外面看name改了么? chenxin

第4章 全局变量

一、在程序一开始定义的变量称为全局变量。

1.全局变量定义变量,必须都是大写(潜规则)。比如:NAME="chenxin"

2.函数优先读当前环境变量,如果没有则会读全局变量,全局变量在所有的作用域都可读。

3.修改全局变量需要先global name,表示name是全局变量(重新赋值)。

4.特殊:列表,字典,元组嵌套列表,可修改,不可重新赋值。

第5章 内置函数

# all           #非0即真# any           ## bool          #0和,空字典空列表都是假# callable      #表示是否可执行,或是否可调用# dir           #快速查看对象提供了哪些功能# divmod        #文章分页使用# isinstance    #用于判断,对象是否是某个类的实例# globals       #列出全局变量# locals        #列出所有局部变量# hash          # #enumerate#float#format#frozenset # max           #最大# min           #最小# sum           #求和# int           #整数# hex           #十进制转换十六进制# bin           #十进制转二进制# oct           #十进制转十进制# filter        #内部循环,参数比较# map           #将函数返回值添加到结果中# compile       #将字符串,编译成Python代码# eval          #执行表达式,并且获取结果# exec          #执行Python代码,接收:代码或者字符串#id             #查看内存地址#input          #等待用户输入# isinstance    #查看某个对象是不是某个类的实例# issubclass    ## len           #查看长度# list          ## memoryview    #查看内存地址相关类# next          ## iter          #创建迭代器# object        #所有类的复类# open          ## ord           ## pow           ## print         ## property      ## range         ## repr          ## reversed      #反转# round         ## set           #集合# slice         ## sorted        ## staticmethod  ## str           #字符串# super         #面向对象# tuple         #元祖# type          #类型# vars          #当前模块有哪些变量# zip           #压缩# __import__    #导入模块  # delattr()    # getattr()    # setattr()

第6章 函数返回值

想要获取函数的执行结果,就可以用return语句把结果返回。

1.函数在执行过程中只要遇到return语句,就会停止执行并返回结果,也可以理解为return语句代表着函数的结果。

2.如果未在函数中指定return,那这个函数的返回值为None。

第7章 递归函数

在函数内部,可以调用其他函数。如果一个函数在内部调用自身,这个函数就是递归函数。

#!/usr/bin/env pythondef calc(n):    print(n)    if int(n/2) ==0:        return n    return calc (int(n/2)) calc(10)

7.1 递归特征:

1、必须有一个明确的结束条件。

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

3、递归效率不高,递归层次过多会导致栈益处(在计算机中,函数调用是通过栈(stack)这种数据结果实现的,每当进入一个函数调用,栈就会加一层栈帧,栈就会加一层栈帧,每当函数返回,栈就会减一层栈帧。由于栈的大小不是无限的,所以,递归调用的次数过多,会导致栈益处。

第8章 匿名函数

匿名函数就是不需要显示的指定函数

#!/usr/bin/env pythondef calc(n):    return n**nprint(calc(10)) #换成匿名函数calc = lambda n:n**nprint(calc(10))#从上看来好像并无卵用,如果是这么用确实没毛改进,不过匿名函数主要是和其他函数搭配使用,如下:res = map(lambda x:x**2,[1,5,7])for i in res:    print(i)#结果:12549

第9章 高阶函数

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

#!/usr/bin/env pythondef add (x,y,f):    return f(x) + f(y) res = add(3,-6,abs)print(res)

第10章 函数式编程

函数是Python内建支持的一种封装,我们通过把大段代码拆成函数,通过一层一层的函数调用,就可以把复杂任务分解成简单的任务,这种分解可以称之为面向过程的程序设计。函数就是面向过程的程序设计的基本单元。

而函数式编程,虽然也可以归结到面向过程的程序设计,但其思想更接近数学计算。
我们首先要搞明白计算机(Computer)和计算(Compute)的概念。
在计算机的层次上,CPU执行的是加减乘除的指令代码,以及各种条件判断和跳转指令,所以,汇编语言是最贴近计算机的语言。
而计算则指数学意义上的计算,越是抽象的计算,离计算机硬件越远。

函数式编程就是一种抽象程度很高的编程范式,纯粹的函数式编程语言编写的函数没有变量,因此,任意一个函数,只要输入是确定的,输出就是确定的,这种纯函数我们称之为没有副作用。而允许使用变量的程序设计语言,由于函数内部的变量状态不确定,同样的输入,可能得到不同的输出,因此,这种函数是有副作用的。
函数式编程的一个特点就是,允许把函数本身作为参数传入另一个函数,还允许返回一个函数!
Python对函数式编程提供部分支持。由于Python允许使用变量,因此,Python不是纯函数式编程语言。

(1 + 2) * 3 - 4

#传统的过程式编程,可能这样写:

    var a = 1 + 2;    var b = a * 3;    var c = b - 4;

#函数式编程要求使用函数,我们可以把运算过程定义为不同的函数,如下:

var result = subtract(multiply(add(1,2), 3), 4);

#这就是函数式编程(就会这么多)

Python(四)-函数总结

评论关闭