首页 > 其他分享 >01-计算机基础

01-计算机基础

时间:2023-05-07 22:23:34浏览次数:48  
标签:... 解释器 01 计算机 编程语言 Python 基础 python

0. 目标

  1. 了解硬件 & 操作系统 & 软件(应用系统)之间的关系。
  2. 了解常见的操作系统都有哪些。
  3. 了解编译器和解释器的区别和作用。
  4. 了解编程语言进行分类
  5. 了解Python解释器的种类
  6. 了解CPython解释器的版本

1. 计算机基础

1.1 基础概念

  • 计算机的组成

计算机是由多个硬件组合而成。

常见的硬件有CPU、硬盘、内存、网卡、显示器、机箱、电源、键盘鼠标、音响...

机械地将硬件组合在一起,它们之间是没法进行协作、工作的。

与硬件打交道的语言是0和1的二进制语言。

  • 操作系统

用于协调计算机的各个硬件,让硬件之间进行协作工作,以完成某个目标。

本质上是对一些系统调用进行封装。

常见的操作系统分类:

  • windows 优点:生态完善,相关的软件多;缺点是运行较慢
    • xp
    • win7
    • win10
    • ...
  • Linux 优点:由于开源免费,大多用于作服务器系统,资源占用少,运行最快;但无生态。
    • centos
    • ubuntu
    • Redhat
    • ...
  • Mac 由苹果公司开发,既有生态,运行也较快
  • 软件(应用程序)

软件的本质是使用编程语言开发出来的一大堆代码的集合,依赖于操作系统。

image-20211021102905190

1.2 编程语言

全球的编程语言2500+种,常见的由C+\C++\java\python...

学习编程语言,本质上是学其语法。

不同的编程语言语法不同,但编程思路大致相通。

  • python中的输出语法
print("hello, world")
  • Golang中的输出语法
fmt.println("hello, world")

1.3 编译器和解释器

编译器/解释器,就是一个翻译官,将程序员所写的代码翻译成计算机能识别的命令。

(计算机只能识别二进制语言)

翻译的方式有两种:一个是编译,另外一个是解释

两种方式之间的区别在于翻译时间点的不同。

当编译器以解释方式运行的时候,也称之为解释器。

  • 编译器:全文翻译,运行时先将全部代码编译成一个临时文件,再将文件交由操作系统读取。运行速度快,但跨平台性低。

  • 解释器:逐行解释(读取一行,就翻译一行,继而执行一行)运行速度慢,但跨平台性高。

image-20211021103131452

1.4 编程语言的分类

  • 翻译的维度

 - 解释型语言:python、PHP、JavaScript、ruby...
 - 编译型语言:C、C++、Go、Java...

  • 高低的维度
  • 低级语言:写出来的代码能直接被计算机识别

    • 机器语言:101 011 00001 00010 00001100001,也称为机器码,直接交给计算机运行
    • 汇编语言:MOV DNC ... 对应机器语言制作的指令,也可以直接交给计算机运行
  • 高级语言:写出来的代码无法直接被计算机识别,但可以通过某种方式将其转换成计算机可以识别的语言

    • C、C++、Java、python、Ruby...这类编程语言在编写的时候,几乎是人类可以读懂的
    • 代码完成后交由对应的编译器或解释器翻译成机器码,然后再交给计算机去执行

注意:现在基本上都使用高级编程语言。高级语言的出现降低了编程的门槛。由这发展的过程可以预见,未来编程语言必将越来越高级,越来越简单易学,以致全民编程...

2. Python 简介

2.1 Python的由来

人生苦短,我用python——Life is short, you need python.

image-20211021110137052

  1. 1989年的圣诞节期间,吉多•范罗苏姆(Guido van Rossum)为了在阿姆斯特丹打发时间,决心开发一个新的解释程序,作为 ABC语言的一种继承(感觉下什么叫牛人)
  2. ABC是由吉多参加设计的一种教学语言,就吉多本人看来,ABC这种语言非常优美和强大,是专门为非专业程序员设计的。但是ABC语言并没有成功,究其原因,吉多认为是非开放造成的。吉多决心在 Python中避免这一错误,并获取了非常好的效果
  3. 之所以选中Python (蟒蛇)作为程序的名字,是因为他是BBC电视剧--蒙提•派森的飞行马戏团(Monty Python's Flying Circus)的爱好者
  4. 1991年,第一个Python解释器诞生,它是用C语言实现的,并能够调用C语言的库文件

全球众多编程语言,为何Python可以脱颖而出成为业界炙手可热的编程语言?目前位居TIOBE排行榜第三名并且一直呈上升趋势。

Python如此火爆的原因如下:

  • 语法简洁 & 适合小白学习,相比较于其他编程语言Python的学习成本非常低,甚至可以让其他行业的人快速掌握编程技能,通过编程提供工作效率,例如:Excel自动化办公、文件和文件夹的处理等。
  • 类库强大,Python自诞生之初就任其自然生长,经过多年的发展,造就其在很多领域都是积累了很多方便的类库,自然也成为了运维自动化、数据分析、机器学习首选编程语言。
  • 开发效率极高,结合Python语法精炼和类库齐全的特点,所以在使用Python进行开发时可以用更少的代码完成更多的功能,大大提升开发效率。例如:Python10行代码实现的功能,用其他语言可能需要100+行才能完成。

2.2 Python的设计目标

1999年,吉多•范罗苏姆向DARPA提交了一条名为"Computer Programming for Everybody"的资金申请,并在后来说明了他对Python的目标:

  • 一门简单直观的语言并与主要竞争者一样强大
  • 开源,以便任何人都可以为它做贡献
  • 代码像纯英语那样容易理解
  • 适用于短期开发的日常任务

这些想法中的基本都已经成为现实,Python已经成为一门流行的编程语言

2.3 Python的设计哲学

  1. 优雅
  2. 明确
  3. 简单
  • Python开发者的哲学是:用一种方法,最好是只有一种方法来做一件事
  • 如果面临多种选择,Python开发者一般会拒绝花俏的语法,而选择明确没有或者很少有歧义的语法

在Python社区,吉多被称为"仁慈的独裁者"

2.4 Python解释器种类

Python在全球都非常受欢迎,出于提高效率的考虑,很多大公司就都开发了Python解释器

  • CPython 【主流】底层是由C语言开发出来的Python解释器;
  • Jython,是由Java语言开发出来的Python解释器,方便让python和Java的代码做集成;
  • IronPython,是基于C+语言开发出来的Python解释器,方便让python和C+的代码做集成;
  • RubyPython,...
  • PyPy,是对CPython的优化,它的执行效率提高了,引入了编译器的功能,本质上将Python代码进行编译,再去执行编译后的代码

2.5 Python解释器的版本

CPython的解释器主要由两大版本:

  • 2.x,目前最新的版本是python2.7.18.(2020后不再维护)

Being the last of the 2.x series, 2.7 received bugfix support until 2020. Support officially stopped January 1 2020, and 2.7.18 code freeze occurred on January 1 2020, but the final release occurred after that date.

  • 3.x,官方主推的版本

标签:...,解释器,01,计算机,编程语言,Python,基础,python
From: https://www.cnblogs.com/zibuyu2015831/p/17380295.html

相关文章

  • ZJOI2018树--等价类相关计算
    ZJOI2018树节点1作为树的根。对于\(i\in[2,n]\),独立地从\([1,i)\)中等概率随机选取一个节点作为\(i\)的父亲。通过上面的方法独立的随机生成\(k\)棵\(n\)个节点的有根树\(T_1\)至\(T_k\),他们两两同构的概率是多少。denote\(s(t)\)thewaysassignnu......
  • 2.ansible常用的模块01
    1.模块?模块实际上就是脚本,是ansible调用的对象,主要是用来通过调用它去远程执行某些命令功能。2.常用的模块2.1shell模块ansible默认的模块是command,其中shell模块与command模块区别:1.command模块的命令不启动shell,直接通过ssh执行命令......
  • 【pandas基础】--核心数据结构
    pandas中用来承载数据的两个最重要的结构分别是:Series:相当于增强版的一维数组DataFrame:相当于增强版的二维数组pandas最大的优势在于处理表格类数据,如果数据维度超过二维,一般我们会使用另一个python的库numpy。本篇主要介绍这两种核心数据结构的创建方式。1.Seriespand......
  • js基础---对象的序列化(JSON)与map
    序列化概念json工具类就是那个转换字符串的方法调用json静态方法,不需要new。注意事项将对象转换为json后再转换为对象,相当于做了一次深复制。当对象的字符串key属性满足不了需求时,可用map的对象属性作为keymap属性和方法map与数组之间的转换......
  • 【算法基础】DFS深度优先算法 —— AcWing 843. n-皇后问题 AcWing 842. 排列数字
    n-皇后问题是一个经典的dfs深度优先遍历的题目,在题解这一题之前,将由浅入深,先讲解一个n-皇后问题的母题。-------AcWing842.排列数字 [AcWing842].排列数字题目概述给定一个整数 n,将数字 1∼n排成一排,将会有很多种排列方法。现在,请你按照字典序将所有的排列方法输出。输入格......
  • C语言基础算法
    1、计算Fibonacci数列Fibonacci数列又称斐波那契数列,又称黄金分割数列,指的是这样一个数列:1、1、2、3、5、8、13、21。C语言实现的代码如下:/* Displaying Fibonacci sequence up to nth term where n is entered by user. */#include <stdio.h>int main(){i......
  • OpenGL学习笔记-1:菜鸟入门基础
    一、什么是OpenGL?OpenGL是我们用来操作图形图片等所使用的API,但是其本身并不是API,而是KhronosGroup开发维护的一个规范。Opengl定义了每个函数的入参和出参,具体实现的细节大多数是由显卡厂商完成。二、OpenGL的两种模式OpenGL有两种模式:(1)immediatemode 立即渲......
  • C#基础10 有关字符串,枚举内容
    字符串      重点掌握字符串特点 错误提示    -----Length:显示长度    ------Equals():比较两个属性是否内容相等  ----- Contains()|Replace():判断给定的字符是否出现过,如果有就用replace替代字符------Trim()|TrimStart()|TrimEends():去空......
  • NOI / 1.8编程基础之多维数组
    13:图像模糊处理 1.描述给定n行m列的图像各像素点的灰度值,要求用如下方法对其进行模糊化处理:1.四周最外侧的像素点灰度值不变;2.中间各像素点新灰度值为该像素点及其上下左右相邻四个像素点原灰度值的平均(舍入到最接近的整数)。2.输入第一行包含两个整数n和m,表示图像包含......
  • 计算机技术人性黑暗面和光明面
    黑暗面1.利用技术作e。我工作身边有很多这样的人,比如维护人员在的时间服务器好好的,他一走立马就出事。2.照搬和抄袭。比如明明是别人的东西说成是自己的。像华微和疼迅是业内代表。3.不共享。比如你问他技术,不但不说还把你羞辱一番。态度十分傲慢,对人冷漠。 光明面1.开源免......