一、概述

  • 计算机技术的演进
  • 编程语言的多样初心
  • Python语言的特点
  • "超级语言"的诞生

二、计算机技术的演进

2.1 计算机技术的演进过程

- - -
2017- 人工智能时代 人类的问题
2008-2016 复杂信息系统时代 数据问题
1981-2008 网络和视窗时代 交互问题
1946-1981 计算机系统结构时代 计算机能力问题

三、编程语言的多样初心

3.1 编程语言有哪些?

Basic, C, C++, C#, CSS, Fortran, Go, HTML, Java, JavaScript, Lisp, Lua, Matlab, Object C, Pascal, Perl, PHP, PostScript, Python, Ruby, Scala, SQL, Swift, VBA, VB.NET, Verilog, VHDL, Visual Basic

编程语言,也是一个江湖!

3.2 不同编程语言的初心和适用对象

编程语言 学习内容 语言本质 解决问题 适用对象
C 指针、内存、数据类型 理解计算机系统结构 性能 计算机类专业
Java 对象、跨平台、运行时 理解主客体关系 跨平台 软件类专业
C++ 对象、多态、继承 理解主客体关系 大规模关系 计算机类专业
VB 对象、按钮、文本框 理解交互逻辑 桌面应用 不确定
Python 编程逻辑、第三方库 理解问题求解 各类问题 所有专业

各编程语言所处历史时期和使命不同,Python是计算时代演进的选择!

3.3 2018年以后的计算环境…

计算机性能不再是解决一般问题的瓶颈

移动互联网广泛普及

大数据、云计算、物联网、信息安全、人工智能等需求爆发

解决日益增长的计算需求,用什么语言?

四、Python语言的特点

  • Python语言是通用语言
  • Python语言是脚本语言
  • Python语言是开源语言
  • Python语言是跨平台语言
  • Python语言是多模型语言

Guido van Rossum

Python语言创立者

2002年,Python 2.x

2008年,Python 3.x

五、Python特点与优势

语法简洁 生态高产
C代码量的10% >13万第三方库
强制可读性 快速增长的计算生态
较少的底层语法元素 避免重复造轮子
多种编程方式 开放共享
支持中文字符 跨操作系统平台

六、如何看待Python语言?

人生苦短,我学Python

  • C/C++:Python归Python,C归C
  • Java:针对特定开发和岗位需求
  • HTML/CSS/JS:不可替代的前端技术,全栈能力
  • 其他语言:R/Go/Matlab等,特定领域

Python是最高产的程序设计语言及……

  • 掌握抽象并求解计算问题综合能力的语言
  • 了解产业界解决复杂计算问题方法的语言
  • 享受利用编程将创新变为实现乐趣的语言

工具决定思维:关注工具变革的力量!

七、"超级语言"的诞生

7.1 机器语言

  • 一种二进制语言,直接使用二进制代码表达指令
  • 计算机硬件(CPU)可以直接执行,与具体CPU型号有关
  • 完成 2+3 功能的机器语言

11010010 00111011--> 2+3

7.2 汇编语言

  • 一种将二进制代码直接对应助记符的编程语言
  • 汇编语言与CPU型号有关,程序不通用,需要汇编器转换
  • 完成 2+3 功能的汇编语言

add 2,3,result-->2+3

7.3 高级语言

  • 更接近自然语言,同时更容易描述计算问题
  • 高级语言代码与具体CPU型号无关,编译后运行
  • 完成 2+3 功能的高级语言

result = 2 + 3-->2+3

7.4 编程语言种类的发展

语言 介绍
超级语言 粘性整合已有程序,具备庞大计算生态
高级语言 接近自然语言,编译器,与CPU型号无关
汇编语言 有助记符,汇编器,与CPU型号有关
机器语言 代码直接执行,与CPU型号有关

7.5 超级语言

  • 具有庞大计算生态,可以很容易利用已有代码功能
  • 编程思维不再是刀耕火种,而是集成开发
  • 完成 2+3 功能的超级语言

Python: 唯一的"超级语言"!

Python前进的步伐不可阻挡

八、小结

  • 计算机系统结构时代到人工智能时代的演进路线
  • 五种编程语言的初心和历史使命
  • Python语言的通用性、简洁性和生态性
  • Python是以计算生态为标志的"超级语言"

010 深入理解Python语言的更多相关文章

  1. 深入理解python语言

    2008年,安卓操作系统诞生:PC时代向移动时代转换 互联网,视窗 2017/5/27柯洁最终0:3AlphaGo 计算机技术的演进过程 不同编程语言的设计初心和适用对象 C语言核心解决的是性能问题, ...

  2. 第三章 深入理解python语言

    计算机技术的演进过程 1946-1981年 计算机系统结构时代(35年) 解决计算机能力的问题 1981-2008年 网络和视窗时代(27年) 解决交互问题 2008-2016年 复杂信息系统时代(8 ...

  3. 理解Python语言里的异常(Exception)

    Exception is as a sort of structured "super go to".异常是一种结构化的"超级goto". 作为一个数十年如一日 ...

  4. 理解 Python 语言中的 defaultdict

    众所周知,在Python中如果访问字典中不存在的键,会引发KeyError异常(JavaScript中如果对象中不存在某个属性,则返回undefined).但是有时候,字典中的每个键都存在默认值是非常 ...

  5. Python语言学习之Python入门到进阶

    人们常说Python语言简单,编写简单程序时好像也确实如此.但实际上Python绝不简单,它也是一种很复杂的语言,其功能特征非常丰富,能支持多种编程风格,在几乎所有方面都能深度定制.要想用好Pytho ...

  6. 【学习笔记】PYTHON语言程序设计(北理工 嵩天)

    1 Python基本语法元素 1.1 程序设计基本方法 计算机发展历史上最重要的预测法则     摩尔定律:单位面积集成电路上可容纳晶体管数量约2年翻倍 cpu/gpu.内存.硬盘.电子产品价格等都遵 ...

  7. 使用Python语言理解递归

    递归 一个函数在执行过程中一次或多次调用其本身便是递归,就像是俄罗斯套娃一样,一个娃娃里包含另一个娃娃. 递归其实是程序设计语言学习过程中很快就会接触到的东西,但有关递归的理解可能还会有一些遗漏,下面 ...

  8. 如何系统地自学一门Python 语言(转)

    转自:http://www.phpxs.com/post/4521 零基础情况下,学一门语言充实下自己,Python,简洁.优美.容易使用,是一个很好的选择.那么如何系统地自学Python呢? 有的人 ...

  9. 《Selenium2自动化测试实战--基于Python语言》 --即将面市

    发展历程: <selenium_webdriver(python)第一版>   将本博客中的这个系列整理为pdf文档,免费. <selenium_webdriver(python)第 ...

随机推荐

  1. MyEclipse下安装FreeMark插件

    现在大多人人喜欢用FreeMark模板.但是这个模板在myeclipse或者是eclipse下却是不能只能提示,一大堆只是没有颜色区分的显示在哪里.万能天国总是有办法. 点我去官网下载(比较慢) 我的 ...

  2. 洛谷 P2657 [SCOI2009]windy数

    题意简述 求l~r之间不含前导零且相邻两个数字之差至少为2的正整数的个数 题解思路 数位DP 代码 #include <cstdio> #include <cstring> # ...

  3. G-P-M 模型

    G-P-M 模型概述 每一个OS线程都有一个固定大小的内存块(一般会是2MB)来做栈,这个栈会用来存储当前正在被调用或挂起(指在调用其它函数时)的函数的内部变量.这个固定大小的栈同时很大又很小.因为2 ...

  4. .Net MVC 框架基础知识

    一.什么是MVC? MVC 是一种使用 MVC(Model View Controller 模型-视图-控制器)设计创建 Web 应用程序的模式. MVC全名是Model View Controlle ...

  5. laya2d 与 cad 之间的坐标转换

    坐标系基本概念 直角坐标系可分为左手坐标系与右手坐标系,cad 中用到的是右手坐标系, Laya2D 中用到的是左手坐标系, Laya3D 中使用右手坐标系. 那么如何判断二维直角坐标系是左手还是右手 ...

  6. 神经网络优化算法:Dropout、梯度消失/爆炸、Adam优化算法,一篇就够了!

    1. 训练误差和泛化误差 机器学习模型在训练数据集和测试数据集上的表现.如果你改变过实验中的模型结构或者超参数,你也许发现了:当模型在训练数据集上更准确时,它在测试数据集上却不⼀定更准确.这是为什么呢 ...

  7. Springboot整合html 报java.lang.IllegalArgumentException: Root element name cannot be null

    解决: <!DOCTYPE><html> 改为 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitiona ...

  8. abp(net core)+easyui+efcore实现仓储管理系统——使用 WEBAPI实现CURD (十五)

    core)+easyui+efcore实现仓储管理系统目录 abp(net core)+easyui+efcore实现仓储管理系统——ABP总体介绍(一) abp(net core)+easyui+e ...

  9. Java连载21-switch练习

    一.switch练习 public class d21_{ public static void main(String[] args) { java.util.Scanner s = new jav ...

  10. 缓存系列-Redis入门教程

    Redis是什么? Redis (REmote DIctionary Server)是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列,是一个高性能的key-valu ...