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. 【python实现卷积神经网络】优化器的实现(SGD、Nesterov、Adagrad、Adadelta、RMSprop、Adam)

    代码来源:https://github.com/eriklindernoren/ML-From-Scratch 卷积神经网络中卷积层Conv2D(带stride.padding)的具体实现:https ...

  2. tf.nn.depthwise_conv2d 卷积

    tf.nn.depthwise_conv2d( input, filter, strides, padding, rate=None, name=None, data_format=None ) 参数 ...

  3. AJ学IOS(49)多线程网络之线程的创建NSThreand

    AJ分享,必须精品 一:NSThread的基本使用 1:创建和启动线程 一个NSThread对象就代表一条线程 创建.启动线程 NSThread *thread = [[NSThread alloc] ...

  4. 安装JDK后,未设置Path,也能执行java.exe的原因

    安装JDK时,自动将java.exe复制到C:\Windows\System32下

  5. qad progress数据库启动出错解决

    1. 启动时报:SYSTEM ERROR: Wrong dbkey in block. Found 0, should be 6342528 in area 36.  (439) ** Save fi ...

  6. SVG案例:动态去创建元素createElementNS

    案例一: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <titl ...

  7. tensorflow2.x 报错 Could not load dynamic library 'cudart64_101.dll'

    当我们使用 tensorflow 最新版本的时候 ,会出现这样的错误 -- ::] Could not load dynamic library 'cudart64_101.dll'; dlerror ...

  8. K - Downgrade Gym - 101775K

    题目大意:一天不玩相当于A-B中将A转换为经验值,B舍弃掉,然后A=1,在通过升级所需要的经验值来判断可以升几级 题目连接:https://codeforces.com/gym/101775/prob ...

  9. 数据结构(C语言版)---二叉树

    1.二叉树:任意一个结点的子结点个数最多两个,且子结点的位置不可更改,二叉树的子树有左右之分. 1)分类:(1)一般二叉树(2)满二叉树:在不增加树的层数的前提下,无法再多添加一个结点的二叉树就是满二 ...

  10. python 获取的json字符串取值

    获取到的json字符串,然后对其取值 {u'result': {u'10.10.10.100': {u'status': u'OK', u'msg': u"{'listen': {'': s ...