Python3.5——函数与函数式编程
来源:互联网 发布:网络渗透技术 下载 编辑:程序博客网 时间:2024/06/04 19:03
1、关于函数
函数是指将一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函数,只需调用其函数名即可。
(1)函数编程方法有3种,它是一种编程的规范,分别有面向过程、面向对象和函数式编程。
(2)3种编程方法各自特点:
面向过程:过程===》关键字:def
面向对象:类===》关键字:class
函数式编程:函数===》关键字:def
2、编程语言中函数定义:函数是逻辑结构化和过程化的一种编程方式。
(1)Python中定义函数方法:
def test(x): #def定义函数的关键字;test:函数名;()里面可以定义形参 "The function definition" #""里面是文档描述,这个不是必须有,但强烈建议为函数添加描述信息 x+=1 #泛指代码块部分或程序处理逻辑 return x #return定义返回值注:函数式编程:就是先定义一个数学函数,按照数学模型用编程语言去实现它
(2)Python中定义过程的方法:
#函数定义:def test1(): "testing 1" print("the testing 1") return 0#过程定义:def test2(): "testing 2" print("the testing 2")#函数调用x=test1()y=test2()#函数与过程的返回值print("from the test1 is %s" %x) #函数式编程调用的函数中,x接收的返回值为0print("from the test2 is %s" %y) #面向过程调用的函数中,y接收的返回值为None#运行结果:#the testing 1#the testing 2#from the test1 is 0#from the test2 is None
3、函数式编程与面向过程的区别:
(1)面向过程:函数是Python内建支持的一种封装,我们通过把大段代码拆成函数,通过一层一层的函数调用,就可以把复杂任务分解成简单的任务,这种分解可以称之为面向过程的程序设计。函数就是面向过程的程序设计的基本单元。
面向过程编程:是由一个个小的def定义的小的过程拼接在一起得到的。
过程是没有返回值的函数,在Python中隐式的给过程定义返回值为None
(2)函数式编程:函数式编程中的函数这个术语不是指计算机中的函数(实际上是Subroutine),而是指数学中的函数,即自变量的映射。也就是说一个函数的值仅决定于函数参数的值,不依赖其他状态。比如sqrt(x)函数计算x的平方根,只要x不变,不论什么时候调用,调用几次,值都是不变的。
"函数式编程"是一种"编程范式"(programming paradigm),也就是如何编写程序的方法论。主要思想是把运算过程尽量写成一系列嵌套的函数调用。
注: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);或者add(1,2).multiply(3).subtract(4)总结:这基本就是自然语言的表达了,因此,函数式编程的代码更容易理解。要想学好函数式编程,学Erlang,Haskell语言。
4、使用函数的优点:
(1)代码重复利用
(2)可扩展性
(3)保持一致性
#!/usr/bin/env python# -*- coding:utf-8 -*-# Author:ZhengzhengLiuimport timedef blog(): "实现写日志的功能" time_format = "%Y-%m-%d-%X" current_time = time.strftime(time_format) #以定义的格式打印时间 with open("test.txt",'a+',encoding="utf-8") as f: f.write("%s end action\n" %current_time)def test1(): print("testing 1") blog()def test2(): print("testing 2") blog()def test3(): print("testing 3") blog()#函数调用test1()test2()test3()
运行结果:
- Python3.5——函数与函数式编程
- Python3.5——函数式编程之参数详解
- Python3函数式编程
- Python3函数式编程
- Python3 函数式编程
- Python3学习笔记(5)——函数和函数式编程
- Python3.5基础——函数的定义与使用
- Python3.X之函数式编程笔记
- 廖雪峰《python3 基础教程》读书笔记——第六章函数式编程
- Python3.5 内置函数
- Python3语法——Python3函数参数的各种形式
- scala与函数式编程——从范畴论看函数式编程
- scala与函数式编程——什么是函数式编程
- python3精简笔记(二)——函数
- python3.6——print函数
- 函数式编程——函数笔记
- python3 函数
- Python3 函数
- 【比特币】比特币的产生原理、运作方式、特点、区块链等
- 数据结构-二叉树的遍历
- Python3 网易有道词典结合PyInstaller,tkinter制作一个简单的中英文翻译exe文件
- 正则表达式
- HDU2102 A计划 —— BFS
- Python3.5——函数与函数式编程
- pycharm 开启代码提示
- 领域驱动设计,读书笔记:3 模型语言
- 【猥琐流】制作一个隐藏在黑页下的大马并且添加后门
- usr/bin/ld: cannot open output file test: Is a directory
- 15个自学视屏网站,
- HornetQ学习系列(2)
- Golang设计模式-创建型-抽象工厂
- junit