大家都知道Python对于数据分析而言,意义重大。但对于运用Python来做数据分析的我们来说,学习一门编程语言,却有不小的难度:首先大部分伙伴不是计算机相关专业的科班出身,其次我们基本上也都没有程序员经验,所以正确的理解编程语言,对于我们学习Python就显得尤为重要,今天jacky就跟大家聊聊:编程语言的实质到底是什么?

(一)编程语言的实质

编程语言的实质是什么?

  • 实质就是二个字:语言

1.为什么说编程是语言类的技能

关于编程为什么是语言类的技能,有这样一个故事:
新东方的创始人之一王强,毕业留校在北大教英语,但他并不想要一种老教授的生活,还要为理想拼搏一下,于是去了美国;
当时计算机在美国刚刚兴起,王强看到了机会并决定转行计算机领域;但是当时他连微积分都没学过、计算机都没见过,却成功的说服了所报考学校的考官并成功入读了计算机专业的硕士,最后还进入了美国著名的贝尔实验室。
他是怎样说服考官,让一个零基础的小白去深造计算机专业呢?
当时王强跟考官说:编程语言的编程我不会,但是语言我会啊,我跟语言打了半辈子交道了,汉语这么难我都能研究的透,编程语言我也一定能研究得通,对于中文都这么好的我们,快速的学习一门编程语言是没有问题的。这番话打动了考官,并使得他成功的入学。
这是一个真实的故事,激励很多人,当然也让我明白了编程的道理。

2.写程序就是写作文

回忆小学,我们学写作文的三个阶段:

  • 第一阶段 :学习汉字怎么写,数字怎么写,符号怎么写;

  • 第二阶段:学习语法,学习造句,例如用“如果怎样… …就会怎样… …”造句;

  • 第三阶段:学习完整成文;

编程语言,也是由人发明的规则,既然能称作做语言,它同样也遵循着语言的规律;

  • 第一阶段 :学习各种数据类型的规则,字符的规则是什么,列表的规则是什么,字典的规则是什么等等;

  • 第二阶段:我们学习if 语句,学习循环语句等等的造句;

  • 第三阶段:完整的运用代码做出我们的项目;

(二)编程语言的演变逻辑

1.定义

现在我们可以给编程语言一个定义,并分享它的演变逻辑

  • 编程语言的定义:

    • 给定一套规则,并让计算机运行

2.演变逻辑

(1)机器语言

  • 机器语言是计算机唯一能接受和执行的语言。机器语言由二进制码组成,每一串二进制码叫做一条指令。一条指令规定了计算机执行的一个动作。机器语言是直接用二进制代码指令表达的计算机语言,指令是用0和1组成的一串代码,它们有一定的位数,并分成若干段,各段的编码表示不同的含义,例如某台计算机字长为16位,即有16个二进制数组成一条指令或其它信息。16个0和1可组成各种排列组合,通过线路变成电信号,让计算机执行各种不同的操作。

(2)汇编语言

  • 后来写0101的这些人写烦了,他们就想办法能不能给这些0101分个组,相当于我们的活字印刷术,用一些字符做对应着不同的分组,就形成了汇编语言;

  • 用能反映指令功能的助记符表达的计算机语言叫汇编语言。它是符号化了的机器语言。用汇编语言编写的程序叫汇编语言源程序,计算机无法执行。必须用汇编程序把它翻译成机器语言目标程序,计算机才能执行。这个翻译过程称为汇编过程。

(3)C 语言

  • 随着计算机的发展,上述简单的编程越来越满足不了我们日益增长的需求,这个阶段就出现了C语言,对于程序员来说,有了C语言,就有了跨时代的飞跃,会了C语言就大大的节约了劳动力,我们就可以非常轻松的写出一个应用程序了;

  • 但是程序员的能力参差不齐,我们想要一些“更自动化,更方便,更简单”的编程语言,这就出了我们后面要说的高级语言,那么在此之前,jacky会跟大家说清楚C语言为什么不方便;

C语言为什么不方便?

  • C语言需要我们自己去管理它的内存;

    • 比如说一台计算机,我们想在某一块内存里开辟一块空间,让这个空间里放一点东西,那么我们需要做几件事:1.先找到这个地址,然后说,我要用你这块空间;2.用完之后,我们还要释放空间,说我不用了,你可以被别人用了 ;所有这样带来的弊端就是:程序员的能力有高有底,有很多情况是,黑客还没有攻破你程序的时候,你的程序自己就崩溃了,自己就把自己的内存全耗干了;比如说我只去拿不释放,那么你的代码直接就崩溃了;
  • C语言给我们提供现成的功能比较少;

(4)高级语言( Java、C#、php、Python)

我们拿Python举例来说

  • Python是在C语言的基础上开发,我们写一句Python代码,Python会转化为一个字节码,然后C会执行这个字节码并生成机器码,最后通过机器码在转化成0101二进制,这样计算机就能识别到了;

  • 有了高级语言,我们不在需要再去管理内存了;每一门语言都有自己的”虚拟机(解释器)”,现在的程序员,我们只需写代码就可以了,对于分配内存和释放内存都由虚拟机来做了;

  • 当然,C语言仍旧有它的优势在:C的执行效率高,高级语言(如:Python)的开发效率高;

两个字说清楚编程语言实质-Python基础前传(3)相关推荐

  1. 快速掌握Python的捷径-Python基础前传(1)

    文: jacky(朱元禄) 开文序 最近看新闻,发现高考都考Python了,随着人工智能的火热,学数据科学的人越来越多了!但对于数据行业本身来说,现象级的火热,这并不是什么好事.  方丈高楼平地起,无 ...

  2. 字典-Python基础前传(9)

    (一)Python中为什么要有字典 jacky说科学存在的逻辑只有两个: 1.解释问题 2.解决问题 我们明白了科学的逻辑,我们理解任何的知识和技能,都是很简单的 之前jacky跟大家说list因为太 ...

  3. 秒懂数据类型的真谛—Python基础前传(4)

    一切编程语言都是人设计的,既然是人设计的,那么设计各种功能的时候就一定会有它的道理,那么设计数据类型的用意是什么呢? (一) 基本数据类型 基本数据类型: 数字 int 字符串 str 布尔值 boo ...

  4. 两个半小时,一份Python基础试卷,满分100,却有80%的人都不及格

    两个半小时,一份Python基础试卷,满分100,却有80%的人都不及格 Python基础类型考试题 考试时间:90分钟 满分100(80分以上为及格) 如果不给你答案的话,你能及格? 1.件数变量命 ...

  5. Python学习前传 —— Python网络爬虫

    原来一直是Linux C 开发,现在开始学习另一门面向过程的语言 -- Python. 学习一门语言,重要的在于思想,现在就以Linux C 开发者的角度来学习Python.我们先不讲Python基础 ...

  6. python编程语言教程-Python基础教程 - 全文

    本章将介绍Python的最基本语法,以及一些和深度学习还有计算机视觉最相关的基本使用. Python简介 Python是一门解释型的高级编程语言,特点是简单明确.Python作者是荷兰人Guido v ...

  7. python提供了两种基本的数值类型_6.Python基础语法---02基础数据类型

    基础数据类型 计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值.但是,计算机能处理的远不止数值,还可以处理文本.图形.音频.视频.网页等各种各样的数据,不同的数据,需 ...

  8. Python基础编程——算术运算

    由于工作需要,小编最近开始学习Python这门编程语言.Python基础编程,将借助Python解释器以及Python脚本完成.小编在进行Python编程时,使用的是Python 3.9.0版本,不同 ...

  9. 一、编程语言与Python介绍

    一.编程语言与Python介绍 1.1什么是编程?为什么要编程? 编程 是个动词,编程==写代码,写代码为了什么呢? 为了让计算机干你想要干的事情,比如,马化腾想跟别人聊天,于是写了个聊天软件,这个软 ...

  10. Python基础——计算机组成原理、操作系统概述、编程语言的由来、编程语言分类、python介绍、 安装Cpython解释器、 第一个python程序

    文章目录 一 引子: 1.1 什么是语言?什么是编程语言?为何要有编程语言? 1.2 什么是编程?为什么要编程? 二 计算机组成原理 2.1.什么是计算机? 2.2.为什么要用计算机? 2.3.计算机 ...

最新文章

  1. 生信分析必须了解的4种文件格式
  2. JS编程建议——8:谨慎使用运算符(3)
  3. 这样配置,让你的 IDEA 好用到飞起来!
  4. ORM MVC、模板引擎介绍(建议收藏)
  5. linux之父密码,Linux之父十大名言···
  6. ROS:ubuntu-Ros使用OrbSLAM
  7. python 流式计算框架_流式计算的三种框架:Storm、Spark和Flink
  8. oracle用分号拼接函数,ORACLE以逗号分隔连接列的值   函数名:wmsys.wm_concat
  9. linux 自启动脚本顺序,(linux开机启动脚本的顺序.doc
  10. MySQL 用gourp by分组后取某一字段最大值
  11. mysql资源限制_超出了MariaDB / MySQL资源限制
  12. python 文件处理软件_Python如何处理文件的?
  13. word转html java代码_用java实现word转html
  14. 身边已经消失或走在消失路上的可爱小动物
  15. 【每天学点管理】——RACI责任制(快速解决责任分配问题)
  16. ES6/ES7/ES8新特性汇总
  17. 【转】英文论文审稿意见汇总
  18. 接口请求返回的状态码总览
  19. ISO14443-3
  20. 线下增加设备接口开发(SDK)

热门文章

  1. STM32开源代码——OLED汉字显示程序
  2. 浙大计算机海归教授,科学网—人才引进的“拿来主义”——我看浙江大学海外招聘 - 周波的博文...
  3. 阿里云常见热门问题解答汇总
  4. 带左右箭头的图片滚动html,js实现图片上显示左右箭头类似翻页效果的代码
  5. 2022QS世界大学学科排名出炉,计算机学科有哪些信息值得关注?
  6. python tcl quartus_使用TCL脚本语言操作Quartus(一)
  7. SDM439/SDM429/SDM450 Sensors Overview (80-PF208-11)
  8. mathematica中快捷键
  9. 敌兵布阵-HDU1166(线段树,树状数组)
  10. 51单片机C语言us级延时函数