自然语言 vs 计算机语言

面对俩资料老干妈,从文入武,想想可能只有从语言的共性入手了

目标:尝试去描述Python语言学习的过程,约束并制定后续讲解的节奏,以及加强每个阶段学习的目的性。

语言学可分为自然语言和人工语言两大类。

  • 自然语言:人类在自身发展过程中形成的语言,是人与人传递信息的媒介
  • 人工语言:人们为了某种目的而自行设计的语言
  • 计算机语言:一种人工语言,是人与计算机传递信息的媒介

回忆所学英语、西语的过程,往往由简入繁、由浅入深、有生到熟,最终形成一定的语言能力:

  1. 字母:首先学习26个字母,学习元音、辅音
  2. 单词:由字母组成单词,学习语法之词法(单复、阴阳、动词、名词、形容词、感叹词等)
  3. 词组:由单词组成词组,两个或更多词的组合,往往具有特定含义,又称为短句
  4. 语句:由单词与词组组成语句,学习语法之句法(短句、结构规律、语气、短句等),包括标点符号
  5. 段落:由语句组成段落,是相对完整的思想,可能用于转折、强调、间歇等
  6. 文章:由段落组成文章,包括各种文体的著作、作品,如诗歌、戏剧、小说、科学论文,记叙文、议论文、说明文、应用文等等。

相比较计算机语言(以下为个人理解分析,仅供学习记忆):

  1. 字母:暂未能想出好的映射……
  2. 单词:计算机语言可类比为系统保留关键字,如Python中的if、for、in等,以及运算符+、-等
  3. 词组:计算机语言可类比为简单语法短语,如Python中的if A in B、A + B等
  4. 语句:计算机语言可类比为一个完整的语义行为,如if A in B then …、C = A + B等
  5. 段落:计算机语言可类比为一个独立的函数、接口、对象等等,如def get()、class A等(在使用时,亦可看做是人造单词或词组)
  6. 文章:计算机语言可类比为一个独立模块、软件系统等等

这可能并不是一个完全的类比,其中会涉及到一些计算机语言中的复用(类比于惯性思维等),主体会遵从一个由简入繁的过程。

当然也得让大家认识到,我们平时的沟通交流,往往从词组开始会略有差异,语句、段落、文章差异越来愈大,个性越来越强,好坏的标准也愈加无法完全界定、派别也越来越多(比如作者语文就烂的一塌糊涂)。使用计算机语言进行程序设计亦是如此,除了一些大家公认的标准,语言使用将具备更大的多样性、争议性。本文仅仅用于大家可以写出一篇可读的可达意的文章,不同人之间的差距并不由基础知识所决定,而在于后续的学习和理解,恰如文章一样。

若想写好代码,任重而道远!

编程语言背后的大人物

对于以逻辑方式记忆的人,即使七姑的八婶儿的小儿子的表兄的闺女,有时候也会觉得亲近

目标:简易抽象的描述支撑编程语言运转的背后人物,有一层亲戚关系或许更易理解(毫无底气的说)。就近两年的感悟,适当拆分角色并归纳其职能,可更有效的认清并履行角色的职责。

编译型语言 vs 解释型语言

来个慢镜头,当读到这句话**“人与计算机传递信息的媒介”**时,可能的理解是如下:

  • 人:有头有脸有一鼻子俩耳朵,有躯干有四肢,正如自己的活物
  • 与:连接两个即将发生关系的两个对象
  • 计算机:计算器?大方盒子显示器?笔记本电脑?
  • 传递:一个动作,从这个到那个,如递支笔
  • 信息:想知道的东西
  • 的:若前为名词,那是属于的意思;若前为形容词,前为后的特质
  • 媒介:如天空乱飞的电磁波,蜜蜂授粉

将文字信息,转变为对于这个世界抽象的认识,这些信息亦可以通过英语、西班牙语、动作、表情等等表达。计算机语言极粗的可以分为高级语言、机器语言,高级语言(文字信息)是面向人类的语言,机器读不懂;机器语言(抽象认识)是面向机器的语言,人类读不懂。所以便有了编译或解释(翻译的概念可能更贴切),正如人脑经过学习锻炼后可固化很多文字概念,可对文字信息进行解释。

现有主流语言分为两类:

  1. 编译型语言:直接生成计算机可执行的目标语言
  2. 解释型语言:提供专门的解释器,解释成可执行的目标语言

有个作者举了个非常贴切的例子,恰如炒菜与火锅,编译型语言通过编译器(炒)生成目标语言(熟菜);解释型语言通过解释器(火锅)实时生成目标语言(熟菜)。炒菜炒(编译)好后上菜便可以吃,但没得挑,火锅需要等煮熟了才能吃,但想吃啥都可以放,即编译型语言编译期间耗时,但运行快;解释型语言无编译环节,运行需要先解释,慢,但灵活性高。

Python是解释型语言,所以其在性能上不占优势,但其灵活性非常高

Python是面向人类写给计算机的语言,请像写文章一样保持Python代码的优雅

静若处子动若脱兔

就作者的呆萌,其一开始写代码时,对代码写成什么样和代码运行成什么样,总是迷迷糊糊

举个栗子,**“削苹果”**如果是需要我们写的一段Python代码

  1. 是需要定义的一种动作,俗称方法
  2. 苹果是需要定义的一类东西,俗称类型
  3. 削苹果是将某种动作实施到某类东西上,而达成一定的目标,俗称算法

但是削苹果这个算法是咱们规划出来的,到目前为止咱们还没有真正的削苹果。

  • 拿出一把菜刀,拿出一个红富士苹果,咱们削苹果
  • 拿出一个刨子,拿出一个水晶苹果,咱们削苹果

上述两次真正的削苹果,是咱们定义好的方法,但不管是一个红富士还是一个水晶都不再一个类型,是真正的苹果,这就是对象(程序猿对象多,不是盖的)。

什么是写代码?抽象的描述一类事物,构建成类型;抽象的描述一类行为,构建成方法;类型和方法的结合成业务,构建成算法;当程序运转起来后,符合类型的对象,在算法执行中生效。

通常,咱们可以把用于描述的类型和方法称为静态;将基于算法的对象计算称为动态。

Python的主流应用

玩一门语言,最好的便是活在语言的氛围里,有一定的眼界

目标:避免英雄无用武之地的尴尬,平时或恰当的时候能用上,培养长久的兴趣,内功外功兼修

  1. 工具开发:如作者使用Python读取Excel中数据、重整日志文件、访问数据库、操控Windows系统等
  2. web开发:Python在web方面有自己的框架,如Django、flask
  3. AI:Python具有比较强劲的算法库,如支持K近邻算法等

互联网公司常有的面试题:使用Python写简单的网页爬虫。

Python初识

开发工具PyCharm

JetBrains公司出品,必属精品。集成开发环境,可用于支持Django框架下的web开发

开发工具VSCode

借鉴了Sublime等优秀编辑器,结合Visual Studio等IDE,开发而出。文本编辑器,玩的是插件