设为首页 收藏本站
查看: 1052|回复: 0

[经验分享] 短脚爸爸学Python入门 1.1-10998444

[复制链接]

尚未签到

发表于 2018-8-14 10:44:46 | 显示全部楼层 |阅读模式
  
   前几天看Python视频教程,老师学编程一定要做笔记发博客,这样可以提高你的兴趣和成就感。想了想也对!就打算发布51CTO上
  在课上老师讲了一大堆Python术语。什么面向对象、面向过程、’类、包、库、模块等等听了一脸懵逼!! DSC0000.gif
  我觉得对初学者来说最先理解的应该是这些概念!这是百度上整理编辑的一些我觉得最“友好”的解释.
  
  1.面向对象语言的来历
DSC0001.jpg

  面向对象2位创始人!
  面向对象范式可以追溯到Simula语言。·克利斯登·奈加特是这门语言的两位作者之一。他被挪威国防部征召入伍,然后服务于挪威防务科学研究所。作为一名训练有素的数学家,克利斯登·奈加特一直在用电脑解决国防中的计算问题,例如核反应堆建设、舰队补给、后勤供应等。在解决这些问的过程中,奈加特需要用电脑来模拟出真实世界的状况。比如说,如果发生一次核泄漏,会造成怎样的影响。奈加特发现,按照之前过程式的、指令式的编程方式,他很难用程序来表示真实世界中的个体。就拿一艘船来说,我们知道它会有一些数据,如高度、宽度、马力、吃水量等。它还会有一些动作,如移动、加速、加油、停泊等。这艘船就是一个个体。有些个体可以划为一类,如战列舰和航母都是军舰。有些个体之间有着包含关系,如一条船有船锚。当人们讲故事时,会自然而然地描述来自真实世界的个体。但对于只懂0/1序列的计算机来说,它只会机械地执行一条条指令。奈加特希望,当他想多用计算机床模拟时,能像讲故事一样简单。他凭着自己在军和民用方面的经验,知道这样的一种编程语言有着巨大的潜力、最终,他遇到了计算机专家奥利一约翰达尔。达尔帮助奈加特把他的想法变成一门新颖的语言——simula。这门语言的名字,正是奈加特朝思暮想的。模拟。我们可以把面向对象看作是故事和指令之间的桥梁。程序员用一种故事式的编程语言描述问题,随后编译器会把这些程序翻译成机器指令
  但在计算机发展的早期,这些额外的翻译工作会消耗太多的计算机资源、因此面向对象的编程范式并不流行。一些纯粹的面向对象语言,也经常因为效率低下而受到诟病。随着计算机性能的提高,效率问题不再是瓶颈。人们转而关注程序在面向对象领域最先取得辉煌成功的是C++语言。比雅尼·斯特劳斯特鲁普在C语言的基础上增加面向对象的语法结构,创造出C++语言。C++杂揉了C语言特征,所以显得异常复杂。后来的java语言向着更纯粹的面向对象范式靠拢,很快获得了商业上的成功。C++和Java一度成为最流行的编程语言。后来微软推出的C#语言,以及苹果一直在支持的Objective-C语言,也都是典型的面向对象语言.
  ----摘之《从Python开始编程》
  面向对象和面向过程!
  问:经常听到有人说,计算机语言可以归为面向过程语言和面向对象语言,那么到底什么是面向对象,什么是面向过程呢?
  答:面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了;面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。
  可以拿生活中的实例来理解面向过程与面向对象,例如五子棋,面向过程的设计思路就是首先分析问题的步骤:1、开始游戏,2、黑子先走,3、绘制画面,4、判断输赢,5、轮到白子,6、绘制画面,7、判断输赢,8、返回步骤2,9、输出最后结果。把上面每个步骤用不同的方法来实现。
  如果是面向对象的设计思想来解决问题。面向对象的设计则是从另外的思路来解决问题。整个五子棋可以分为1、黑白双方,这两方的行为是一模一样的,2、棋盘系统,负责绘制画面,3、规则系统,负责判定诸如犯规、输赢等。第一类对象(玩家对象)负责接受用户输入,并告知第二类对象(棋盘对象)棋子布局的变化,棋盘对象接收到了棋子的变化就要负责在屏幕上面显示出这种变化,同时利用第三类对象(规则系统)来对棋局进行判定。
  可以明显地看出,面向对象是以功能来划分问题,而不是步骤。同样是绘制棋局,这样的行为在面向过程的设计中分散在了多个步骤中,很可能出现不同的绘制版本,因为通常设计人员会考虑到实际情况进行各种各样的简化。而面向对象的设计中,绘图只可能在棋盘对象中出现,从而保证了绘图的统一。
  —摘自《C#编程词典》

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-551544-1-1.html 上篇帖子: python学习之函数学习进阶(二) 下篇帖子: python isinstance、isalnum函数用法
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表