01—写在前面

我做了十几年的程序猿,码过代码、带过项目、做过产品经理、做过软件架构师。因为我是做通信设备软件的,面向底层操作系统,所以我的工作主要以C语言为主。Python在我的工作中通常用来写一些小脚本。最近一个项目的需要,我需要深入学习python。现在python很火,很多没有编程经验的也开始学起python了,我觉得这是很有意思的一件事情,就产生了把我的学习过程用文章和视频的方式记录下来的想法,希望这些东西能帮忙大家尤其是这些初学者。

由于我需要考虑这些从来没有接触过编程的初学者,所以我写的有些内容会比较基础,进度也可能会比较慢,有编程经验的同学可以跳着看。

你可以叫我Tiger,准备好了吗?我们一起开启python的学习之旅吧!

 本节视频可以点击观看: 查看本节视频

02—Python简介

如果你从来没有接触过编程,那么需要先大体了解一下编程语言的历史背景。

一、高级编程语言的诞生

计算机编程历经了从机器码到汇编再到高级编程语言的演进过程,下图描述了三者之间的逻辑关系:

我们都知道,计算机只认识机器码,也就是一串对于人类来说毫无意义的0和1。这玩意儿对于机器来说是很友好的,但是对于人类来说就太残忍了。在没有编程语言之前,科学家们是通过打孔的方式来计算的,像这样:

我很佩服这些科学家,因为他们拿着一根长长的打满孔的纸带,可以理解上面的意思。

后来,人类发明了汇编语言。这是一种编程语言了,但是它还不完全是现在我们接触到的编程语言,它介于人类和机器之间。要想玩转汇编语言,你首先得非常清楚计算机的计算原理,你得了解几十个不同的寄存器是怎么工作的,比如下面这段汇编代码,我相信很多写了多年代码的程序员都不一定能看懂。

汇编语言虽然不再是天书了,但对人类来说依然非常不友好。于是我们发明了“高级”编程语言,这里的高级是相对于汇编这种低级语言而言的。VB、C、C++、JAVA、PHP、Python…我们现在接触到的编程语言都是高级编程语言。

高级编程语言,定义了一大堆语法规则,这些语法规则是面向人类认知的,在人类看来是有逻辑意义的,易于理解。程序员基于这套语法规则编写的代码,再通过特殊的工具翻译成汇编指令,这种工具就是“编译器”或者“解释器”。

作为我们这一代程序员是幸福的,因为我们有了高级编程语言,我们不再需要把大量的精力放在研究机器是如何运行的,我们可以更多的关注我们代码需要实现的业务逻辑和功能上面。

好的,我们总结一下。

  • 发明编程语言的原因,是因为机器码理解起来太困难。
  • 我们现在接触到的编程语言基本上都是高级编程语言。
  • 编程语言的本质,是人为定义的一套语法规则,我们学习编程首先要学习掌握这套语言规则。

二、Python的优势

回到python。

没错,python就是数十种高级编程语言中的一个而已。那为什么现在这么多人开始学习python呢?我的看法是:

  • python足够简单。尤其是对于没有编程经验的人来说,它入门足够简单。作为写了十几年C代码的老程序员,感触至深。你能想象让一个没有计算机基础的人去搞明白为什么内存会泄露吗?去搞明白什么是指针吗?
  • Python足够强大。我一直认为python的强大在于其丰富的组件库,只要你能想到的功能,基本上都能找到现成的免费的开源库。作为一个老C程序员,当第一次看到python组件库,感动得泪流满面啊。想当年我们的系统,真的是从第一行C代码开始写的啊,没有任何可以拿来就用的库。
  • Python跟上了潮流,或者说潮流选择了python。大数据、AI等等这些当红炸子鸡,都和python紧密联系在一起了,不火都不行。

好吧,废话不多说,我们开始python编程吧。

跟哥一起学Python(1) - python简介的更多相关文章

  1. Python基础一. 简介、变量、对象及引用

    一.Python简介 Python是一门计算机编程语言,它是由荷兰人Guido van Rossum在1989年圣诞节期间为了打发无聊的圣诞节而编写的,作为ABC语言的继承 特性: 面向对象.解释型. ...

  2. Python基础--Python简介和入门

    ☞写在前面 在说Python之前,我想先说一下自己为什么要学Python,我本人之前也了解过Python,但没有深入学习.之前接触的语言都是Java,也写过一些Java自动化用例,对Java语言只能说 ...

  3. python入门灵魂5问--python学习路线,python教程,python学哪些,python怎么学,python学到什么程度

    一.python入门简介 对于刚接触python编程或者想学习python自动化的人来说,基本都会有以下python入门灵魂5问--python学习路线,python教程,python学哪些,pyth ...

  4. Python生态环境简介[转]

    Python生态环境简介 作者: Mir Nazim 原文: Python Ecosystem - An Introduction 译者: dccrazyboy  原译: Python生态环境简介 当 ...

  5. Python初识与简介【开篇】

    目录 1.扯淡 2.Python历史 3.Python简介 4.Python应用 5.为什么是python而不是其他语言? 6.Python的种类 7.Python的特点 8.Python设计哲学 9 ...

  6. (转)python生态环境简介

    Python生态环境简介 作者: Mir Nazim 原文: Python Ecosystem - An Introduction 译者: dccrazyboy  原译: Python生态环境简介 当 ...

  7. Python教程_简介2

    人生苦短,我用Python--Life is short,you need Python. https://www.bilibili.com/video/av14184325/?p=101 Pytho ...

  8. Python安装及简介

    Python简介 Python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言 ...

  9. Python 3 mysql 简介安装

    Python 3 mysql 简介安装 一.数据库是什么 1.  什么是数据库(DataBase,简称DB) 数据库(database,DB)是指长期存储在计算机内的,有组织,可共享的数据的集合.数据 ...

  10. 零基础学python,python视频教程

    零基础学python,python视频教程 这是我收集到的互联网上的视频资源,所有内容均来自互联网.仅供学习使用. 目前我在也在学习过程中,会把学习过程中遇到问题以及解决问题的方式,总结到我的公众号[ ...

随机推荐

  1. json.dumps() 和 json.loads()

    转载: https://blog.csdn.net/qinglingls/article/details/96476368

  2. Struts2-学习笔记系列(7)-PreResultListener

    在action处理完成之后,系统转入实际的物理试图之间被回调. Action,拦截器都可以添加该监听器.拦截器添加了该监听器后,该监听器会对该拦截器所有拦截的action其作用 public Stri ...

  3. AJ学IOS 之微博项目实战(13)发送微博调用相机里面的图片以及调用相机

    AJ分享,必须精品 一:效果 二:代码 相机部分就简单多了,几行代码调用而已,但是如果你要是想实现更多丰富的功能,需要自己写.利用AssetsLibrary.framework,利用这个框架可以获得手 ...

  4. AJ整理问题之:内存堆栈

    内存 数据在内存中的存放 在计算机中,运行的应用程序的数据都是保存在内存中的. 不同类型的数据,保存的内存区域不同,其中包括: 1:栈区(stack)由编译器自动分配并释放,一半存放函数的参数值,局部 ...

  5. yum 下载全量依赖 rpm 包及离线安装(终极解决方案)

    目录 简介 验证环境 查看依赖包 方案一(推荐):repotrack 方案二:yumdownloader 方案三:yum 的 downloadonly 插件 离线安装 rpm 参考资料 简介 通常生产 ...

  6. Salesforce考试 | 如何维护我的Salesforce认证

    问题1 Salesforce证书是需要每年维护吗? Salesforce每年会发布3次Realese,分别是Spring.Summer和Winter,可以理解为一年3次的系统新版本更新,每次Relea ...

  7. Roles on a Machine Learning Project (机器学习项目中的角色)

    原文 :https://medium.com/machine-learning-in-practice/roles-on-a-machine-learning-project-216903a6dc12 ...

  8. python嵌套列表知多少

    今天在创建嵌套列表时遇到一个问题,决定看看到底是谁在背后捣鬼 >>> board1 = [[0]*3 for _ in range(3)] [[0, 0, 0], [0, 0, 0] ...

  9. Eight HDU - 1043 (双向BFS)

    记得上人工智能课的时候老师讲过一个A*算法,计算估价函数(f[n]=h[n]+g[n])什么的,感觉不是很好理解,百度上好多都是用逆向BFS写的,我理解的逆向BFS应该是从终点状态出发,然后把每一种状 ...

  10. Spark SQL源码解析(二)Antlr4解析Sql并生成树

    Spark SQL原理解析前言: Spark SQL源码剖析(一)SQL解析框架Catalyst流程概述 这一次要开始真正介绍Spark解析SQL的流程,首先是从Sql Parse阶段开始,简单点说, ...