从硬件架构到编程逻辑,Python入门打卡。

               

干货福利,第一时间送达


  简短说明


接昨日文章 “数据管道”公众号内容初步调整计划,内含福利!,现阶段开始LearingPython计划,预计打卡时间为15天,时间充足的情况下争取次条推送整理的福利资源。由于公众号开通时间较晚,没有留言功能,有任何问题欢迎大家在后台私信我,或者加微信沟通交流。


  本节目录


1、    计算机硬件架构

2、    编辑器、编译器、解释器

3、    程序逻辑、程序错误、程序调试

4、    本节关键术语


  计算机硬件架构


在开始学习用Python去开发软件、数据分析等之前,我们需要学习一点关于计算机硬件架构的知识。更底层的角度去学习编程,从内到外,可以让自己对Python程序如何运行有更深的理解。


微计算机硬件架构


图片


解释


  • 中央处理器(CPU):这一部分相当于计算机的大脑,不断的更新“下一步要做什么”这样的指令。如果你的电脑工作频率是3.0千兆赫,这意味着CPU会问"下一步呢?“每秒30亿次。主频越高意味着电脑工作越快,当然就越贵了。


  • 主存(内存条):存储CPU紧急需要的信息,工作速度也非常快,但是,当计算机关闭时,存储在主存中的信息就会消失。


  • 辅助存储器(硬盘等):存储一些相对不是那么紧急的信息,比如一部电影。工作速度相对较慢,但计算机关闭时,存在硬盘的内容不会消失。


  • 输入输出设备:很好理解,对应电脑屏幕,键盘,鼠标,麦克风,扬声器等。


  • 网络:现在,大多数计算机也通过网络连接来检索信息。从某种意义上说,网络是一种较慢的、有时不可靠的辅助存储器。


编程的“你”在计算机哪个部分呢


你需要回答CPU的“下一步是什么?”的问题。因此,你必须提前写下你的“指令”。我们把这些存储的“指令”称为一个程序,把这些指令写下来,使这些指令成为正确的编程。


  编辑器、解释器、编译器


Python是一种高级语言,高级语言更多的是面向人的理解。而中央处理器(CPU)中的实际硬件不理解这些高级语言,它只能识别低级语言(机器语言,汇编语言),机器语言是一堆001101010101(二进制文件),表面看起来机器语言只是一堆0和1,但是它的语法甚至比Python更复杂。(本科学过微机原理的应该知道)。


所以很少有程序员写过机器语言。相反,通过各种“翻译器”,以允许程序员使用Python或C++等高级语言进行编写,这些“翻译器”将程序转换为机器语言,以便由CPU实际执行。


这些编程语言“翻译器”可分为两大类:

    • 编译器(Compiler)

    • 解释器(Interpreter)


区别


  • 编译器是把源程序的每一条语句都编译成机器语言,并保存成二进制文件,这样运行时计算机可以直接以机器语言来运行此程序,速度很快。


  • 而解释器则是只在执行程序时,才一条一条的解释成机器语言给计算机来执行,所以运行速度是不如编译后的程序运行的快的.。


图解Python程序运行


图片

在Python代码开始处理之前,Python还会执行一些步骤。确切的说:

  • 第一步是编译成所谓的“字节码”(.pyc文件

  • 第二步是转发到所谓的“虚拟机(PVM)”中


更多内容请阅读:《Learning Python 4th》第二章“Python如何运行程序”。这本书在公众号文章分享过中英文福利链接:面试必备之Python深、浅拷贝。



编辑器:


我们不能再每次运行一些程序之前,都要在Python解释器提示符(>>>)下输入我们的程序,所以必须把它们保存为文件(.py)。所以要创建我们的Python源文件,需要一个可以输入并保存他们的编辑软件,也就是编辑器。


主流编辑器

      • Pycharm

      • Vscode

      • Anaconda


推荐:


  • 做数据科学领域直接安装Anaconda即可(内部已经安装好numpy pandas matplotlib scipy seaborn等很多数据科学的工具包),内置Jupyter Notebook非常好用。完美的结合一边用Markdown做笔记,一边编程锻炼。


  • 利用Pycharm虚拟环境避免包冲突,(不同项目之间安装的环境互不干扰)。


  • Vscode师兄们在用,没用过,感觉应该也不错。


  • 本人主要就是用Pycharm + Anaconda


  程序逻辑、程序错误、程序调试


程序逻辑(不同编程语言通用):


  1. 输入:可能是来之不同的文件(CSV,XLSX,TXT等)。


  2. 顺序执行:按照在脚本中程序应该有的逻辑顺序依次执行语句。


  3. 条件执行:检查某些条件,然后执行或跳过一系列语句。


  4. 重复执行:重复执行一组语句,通常带有一些变化。


  5. 代码复用:对于一些经常使用的脚步可以保存起来,下次直接调用该模块。


  6. 输出:对应着输入,在屏幕上显示程序的结果,或者将结果存储在文件中。


程序错误


可按类型分成三种程序错误:

  • Syntax Errors(语法错误):

    这种错误是最容易犯也是最容易修复的错误,语法错误意味着程序违反了Python的“语法”规则。比如你把变量声明成一个Python已有的保留字等等。

  • Logic errors (逻辑错误):

    逻辑错误是指程序有良好的语法,但是语句的顺序有错误,或者语句之间的关系有错误。

    例子,“从你的水瓶里喝点东西,把它放在背包里,走到图书馆,然后把瓶盖放回去。”

  • Semantic errors (语义错误):

    语义错误是程序在语法上是完美的,顺序是正确的,但它没有做你想让它做的事情。比如你想输出2,结果输出1。

程序调试


Debug是在代码中查找错误原因的过程。当调试一个程序的时候,特别是当你在处理一个难处理的bug的时候,有四件事可以尝试:


  • 重读:检查代码,将其读给自己听,并检查它是否表达了想要表达的意思


  • 运行:通过更改和运行不同的版本进行试验。通常,如果程序的正确位置显示了正确的内容,那么问题就会变得很明显。


  • 反思:看看是什么错误类型,是语法错误还是逻辑错误还是结果不对,从报错信息中找内容


  • 撤退:实在找不到哪里出错就不断撤回写好的代码,然后在不断运行,找到那个结果输出正确的逻辑行。


  本节核心术语


  • 计算机硬件架构

  • 高级语言、低级语言

  • 解释器、编译器、编辑器

  • 机器码、二进制文件

  • 错误调试


参考:

  •   www.py4e.com

  • 《Learning Python 4th》



猜你喜欢

转载自blog.51cto.com/15127516/2683000