第十二篇:编程范式

编程是程序员用特定的语法+数据结构+算法组成的代码来告诉计算机如何执行任务的过程,一个程序是程序员为了得到一个任务结果而编写的一组指令的集合,正所谓条条大路通罗马,实现一个任务的方式有很多种不同的方式或风格,对这些不同的编程方式的特点进行归纳总结得出来的编程方式类别,即为编程范式。

面向过程编程

面向过程编程依赖procedures(过程),一个procedure包含一组要被进行计算的步骤,面向过程又被称为top-down languages, 就是程序从上到下一步步执行,一步步从上到下,从头到尾的解决问题 。基本设计思路就是程序一开始是要着手解决一个大的问题,然后把一个大问题分解成很多个小问题或子过程,这些子过程再执行的过程再继续分解直到小问题足够简单到可以在一个小步骤范围内解决。

面向过程:核心是过程,工厂生产一样的流水线处理方式,机械式地处理,根据业务逻辑从上到下写垒代码,关注的是解决问题的过程。
优点:复杂问题流程化,进而简单化
缺点:可扩展性差

people1 = {‘name‘:‘bjo‘,‘age‘:19,‘sex‘:‘男‘}
print(people1[‘sex‘])
print(‘{} 在跳跃‘.format(people1[‘name‘]))
print(‘{} 正在跑步‘.format(people1[‘name‘]))
people2 = {‘name‘:‘anjo‘,‘age‘:18,‘sex‘:‘女‘}
print(people2[‘sex‘])
print(‘{} 在跳跃‘.format(people2[‘name‘]))
print(‘{} 正在跑步‘.format(people2[‘name‘]))

函数式编程

在维基百科中给出了详细的定义,函数式编程(英语:functional programming)或称函数程序设计,又称泛函编程,是一种编程范型,它将电脑运算视为数学上的函数计算,并且避免使用程序状态以及易变对象。函数编程语言最重要的基础是λ演算(lambda calculus)。而且λ演算的函数可以接受函数当作输入(引数)和输出(传出值)。数学上的函数是从定义域集合A到值域集合B的映射关系。在编程上则是有返回值的子程序属于函数式编程。

def jump(name):
    return ‘{} 在跳跃‘.format(name)
def runing(name):
    return ‘{} 正在跑步‘.format(people1[‘name‘])
people1 = {‘name‘:‘bjo‘,‘age‘:19,‘sex‘:‘男‘}
print(people1[‘sex‘])
print(jump(people1[‘name‘]))
print(runing(people1[‘name‘]))
people2 = {‘name‘:‘anjo‘,‘age‘:18,‘sex‘:‘女‘}
print(people2[‘sex‘])
print(jump(people2[‘name‘]))
print(runing(people2[‘name‘]))

面向对象编程

面向对象程序设计(英语:Object-oriented programming,缩写:OOP)是种具有对象概念的程序编程范型,同时也是一种程序开发的方法。它可能包含数据、属性、代码与方法。对象则指的是类的实例。它将对象作为程序的基本单元,将程序和数据封装其中,以提高软件的重用性、灵活性和扩展性,对象里的程序可以访问及经常修改对象相关连的数据。在面向对象程序编程里,计算机程序会被设计成彼此相关的对象。

面向对象:核心就是对象,对象就是特征与属性的结合体,关注的是谁能解决问题,然后把问题交给谁,谁即对象,而不关注如何解决问题过程。优点:可扩展性强缺点:编程复杂度高应该用场景:用户需求经常变化的场景 游戏、互联网应用、企业内部应用等

 面向对象编程示例

def Human(name,age,sex):
    def init(name,age, sex):
        sch = {
            ‘name‘: name,
            ‘age‘: age,
            ‘sex‘: sex,
            ‘jump‘: jump,
            ‘running‘: running,
        }
        return sch
    def jump(people):
        print(‘%s 在跳跃‘ %people[‘name‘])
    def running(people):
        print(‘%s在跑步‘ %(people[‘name‘]))
    return  init(name,age,sex)

people1=Human(‘bjo‘,19,‘男‘)
print(people1)
print(people1[‘name‘])

people1[‘jump‘](people1)

people2=Human(‘anjo‘,18,‘女‘)

print(people2)
print(people2[‘name‘],people2[‘age‘],people2[‘sex‘])
people2[‘running‘](people2)

print(id(people1[‘jump‘]))
print(id(people2[‘jump‘]))

原文地址:https://www.cnblogs.com/us-wjz/p/10982546.html

时间: 2024-10-29 18:36:53

第十二篇:编程范式的相关文章

Windows界面编程第十二篇 位图显示特效 飞入效果与伸展效果

分享一下我老师大神的人工智能教程吧.零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!http://www.captainbed.net 转载请标明出处,原文地址:http://blog.csdn.net/morewindows/article/details/8696726 欢迎关注微博:http://weibo.com/MoreWindows Windows界面编程之位图显示特效系列目录: 1. <Windows界面编程第九篇位图显示特效交错效果> http:/

SaltStack 学习笔记 - 第十二篇: SaltStack Web 界面

SaltStack 有自身的用python开发的web界面halite,好处是基于python,可以跟salt的api无缝配合,确定就比较明显,需要个性化对web界面进行定制的会比较麻烦,如果喜欢体验该界面的可以参考下面的文章  http://rfyiamcool.blog.51cto.com/1030776/1275443/ 我是运用另一个python+php来进行web开发,具体需要的工具有在我的另一篇文章里面介绍过,这里再重新进行整个开发介绍 首先介绍php 跟python通信的工具 pp

Python开发【第二十二篇】:Web框架之Django【进阶】

Python开发[第二十二篇]:Web框架之Django[进阶] 猛击这里:http://www.cnblogs.com/wupeiqi/articles/5246483.html 博客园 首页 新随笔 联系 订阅 管理 随笔-124  文章-127  评论-205 Python之路[第十七篇]:Django[进阶篇 ] Model 到目前为止,当我们的程序涉及到数据库相关操作时,我们一般都会这么搞: 创建数据库,设计表结构和字段 使用 MySQLdb 来连接数据库,并编写数据访问层代码 业务逻

第二十二篇:再写Windows驱动,再玩Windbg---NET

2011年到现在,就没再怎么搞过Windows驱动了. 最近, 由于项目需要, 试着改一改一个显卡驱动(KMDOD), 从实践上证明, 我在理论上对一个驱动的架构的正确与否.(USB Display = KMDOD + AVStream). 其中, KMDOD是完成显示的部分功能, 完成其中的VidPN(Video present network), 将驱动中原来的POST物理设备转变为USB物理设备. 而AVStream之所以这样提出, 完成是由于USB Video class的启发, 要不然

SQL Server 索引的图形界面操作 &lt;第十二篇&gt;

一.索引的图形界面操作 SQL Server非常强大的就是图形界面操作.关于索引方面也一样那么强大,很多操作比如说重建索引啊,查看各种统计信息啊,都能够通过图形界面快速查看和操作,下面来看看SQL Server索引方面的GUI操作. 二.索引统计信息的图形界面操作 SQL Server 索引的图形界面操作 <第十二篇>

第二十二篇 信念

第二十二篇  信念 "信念"能带给一个人无穷的力量,这些力量可以支撑自己走过漫长的人生.一个人如果没有信念,就很难找到自己的人生方向,所以"信念"也可以理解为希望. 信念可以给到我们希望,也可以给到我们力量,所以一个人的信念会影响到自己的整个人生.当然信念也有好坏之分,好的信念能让自己积极向上.不畏艰难:坏的信念会让我们不思进取.随波逐流.这两种不同的信念会给到我们两种完全不同的人生,就看亲人们如何作出正确的选择. 一个人活在世上,可以选择走正确的人生道路,依靠好的

Linux Shell常用技巧(十二) Shell编程

Linux Shell常用技巧(十二) Shell编程 二十三. Bash Shell编程:  1.  读取用户变量:    read命令是用于从终端或者文件中读取输入的内建命令,read命令读取整行输入,每行末尾的换行符不被读入.在read命令后面,如果没有指定变量名,读取的数据将被自动赋值给特定的变量REPLY.下面的列表给出了read命令的常用方式: 命令格式 描述 read answer 从标准输入读取输入并赋值给变量answer. read first last 从标准输入读取输入到第

c++ primer plus(第6版)中文版 第十二章编程练习答案

第十二章编程练习答案 12.1根据以下类声明,完成类,并编小程序使用它 //12.1根据以下类声明,完成类,并编小程序使用它 #include <iostream> #include <cstring> using namespace std; class Cow{ char name[20]; char * hobby; double weight; public: Cow(); Cow(const char * nm, const char * ho, double wt);

解剖SQLSERVER 第十二篇 OrcaMDF 行压缩支持(译)

解剖SQLSERVER 第十二篇   OrcaMDF 行压缩支持(译) http://improve.dk/orcamdf-row-compression-support/ 在这两个月的断断续续的开发工作中,我终于将OrcaMDF 压缩功能分支合并到主分支这意味着OrcaMDF 现在正式支持数据行压缩功能 支持的数据类型实现行压缩需要我修改几乎所有已实现的数据类型以将他们作为压缩存储.integer类型被压缩了,decimal类型变成可变长度,而可变长度类型基本上都被截断了进而用0来填补.所有先

python学习[第十二篇] 数据类型之 集合

python学习[第十二篇] 数据类型之 集合 集合概念 python中集合是一组无序排列的哈希值.集合分为两种可变集合(set)和不可变集合(frozenset) 对可变集合可以修改和删除元素,对于不可变集合不允许.可变集合是不可以哈希的,因此既不能用作字典的键,也不能做其他集合的元素. 集合的增删改查 集合的创建于赋值 集合与列表([]) 和字典({})不同,集合没有特别的语法格式.列表和字典可以通过他们自己的工厂方法创建,这也是集合的唯一的创建方式.set()和frozenset() #创