python零基础从入门到全栈02-计算机简介

大家好,我是小白小帅,在正式学习编程语言之前,我想还是有必要简单介绍一下计算机,毕竟我们的所有用编程语言编写的程序都是运行在计算机之上的,希望小伙伴们可以像看故事一样进行学习

简要介绍计算机

我不想从什么从计算机五大组成部分开始详说,而是想让小伙伴们有一个意识,计算机就是现代人的“奴隶”工具,一切人类觉得重复性的、索然无味的工作,都可以交给计算机,因为它最初的作用就是用于计算,解放人类双手

计算机发展到现在,所具备的功能越来越多,但是它的组成部分都可以类比为大脑的功能抽象,现在科学没法直接造一个人类大脑出来(那也太恐怖了),所以只能去模仿人类大脑的功能

1. 控制器:计算机的指挥系统,负责控制所有硬件的运行,如人类大脑可以指挥控制手足器官运动

2. 运算器:对数据进行加工处理,如人类大脑可以进行加减乘除运算

3. 存储器:存储各种信息数据,如人类的记忆功能,长期记忆的叫外存,短期记忆的叫内存

4.输入设备:收集外部的信息提供给计算机,如人的眼睛,耳朵等可以采集外部信息提供给大脑

5.输出设备:计算机处理完成的指令结果返回显示出来,如人说出的话,做出的动作,都是在经过大脑处理后输出的结果

简要介绍计算机字符编码的来源

先不说编程语言是什么,而是计算机能够识别的语言是什么,计算机很傻,他只能处理二进制数据(因为电信号正好对应高低电平,所以设计成二进制正好呼应上了),也就是0和1,他的大脑只能识别到这些01指令,那么问题来呢?比如计算机如何知道01100001和01000010分别代表什么指令含义呢,这个时候就出现了字符编码,可以理解为就是一种对应字典,我们人为规定的字典,告诉计算机你要认识01100001,这个代表小写字母a,01000010就代表大写字母B。

所以美国人一开始就研究出来ASCII字符编码(就是一种字典,字符映射关系),但是ASCII字符编码的局限在于只能将一些数字、英文字母、简单的符号翻译给计算机,就像美国人发明了一部英文字典,那中文怎么翻译呢,没法翻译那咱中国人岂不是没法使用计算机,所以随着各国对于计算机的需求,各国都发明了自己国家的字典,可是局限性又来了,各国之间都让计算机拿着自己家的字典进行交流,那也无法交流啊,所以为了解决这个问题,总要有人负重前行,于是就出现了万国码,顾名思义,做一本字典把世界上所有的语言都纳入进行,并做好映射关系,发展至今就是我们常看到的UTF-8编码

简要介绍计算机编程语言

我现在需要让计算机帮我实现1+1的需求?怎么办?

机器语言

按照计算机只能理解的二进制的前提,我们肯定得写一大串0101的二进制指令去操作计算机让他去计算1+1,这一大串0101的二进制其实就是机器语言,不同的大串0101代表着可以让计算机驱动硬件执行不同的事情,用机器语言编写的指令能够被计算机直接理解和执行,可以理解为直接和计算机说计算机语言,让他干啥他干啥

汇编语言

了解机器语言后,那么问题来了,我作为一个普通的人类,我哪记得住和理解那些大串大串的0101机器语言呢,所以为了克服机器语言难读、难编、难记和易出错的缺点,总有人负重前行,汇编语言出现了,其实汇编语言也就是对大串大串的机器语言做了映射,用一些助记符号去代表那些大串大串的0101机器语言,本质上就是做了个翻译官的角色,一个符号代表一大串0101机器语言,极大的提高了编程效率

高级语言

即便汇编语言先对于机器语言来说得到了极大的效率提升,那么问题来了,随着功能需求越来越复杂,汇编语言中一大串的符号又成了一种累赘,符号多了根本无法理解,况且开发人员还必须记住硬件驱动的指令,否则开发一个功能如何驱动硬件都不知道

于是,为了解决汇编语言中面临的问题,摆脱依赖硬件控制原理的前提,高级语言诞生了,高级语言对计算机硬件控制做了封装,开发人员只需要学习对应的调用方法即可,也称为语法规则,所以学习一门编程语言就是学习语言对应的语法规则。

随着高级语言概念的提出与发展,一大批语言应运而出,像大家听过的C语言、C++语言、Java语言、还有接下来要学习的Python语言,这些都是目前的主流编程语言,语法规则更符合人类学习、符合人类思维逻辑

编译器和解释器

现在我们需要学习的就是高级语言的语法规则了,我们按照编程语言的语法规则编写完成了操作计算机的指令也就是代码,现在该怎么把编写好的代码让计算机去执行呢,咱还是需要一个翻译官,也就是编译器和解释器,这是不同语言所需要的翻译官,都是一种软件工具,就是用来翻译解释代码的

比如Python就只需要解释器,理解为同声传译翻译官,边写代码边翻译,解释器逐行读取源代码,然后将其转换成中间表示或直接执行操作,代码编译完成,他也就翻译完成了,只需要让计算机运行代码就行

特点

  1. 逐行执行:解释器一次执行源代码中的一行或几行,不需要将整个程序编译成机器代码。
  2. 跨平台性:相同的源代码可以在任何安装了相应解释器的系统上运行,无需修改。
  3. 即时反馈:开发者可以更快地看到代码更改的效果,便于调试和交互式编程。
  4. 性能:由于解释器在程序运行时进行代码解释,可能会导致运行速度慢于编译型语言。

示例:Python、Ruby、JavaScript等语言使用解释器。

比如C语言就只需要编译器,理解为翻译机,就是你将编写完成的代码交给他,他将代码转换(编译)成机器语言代码(也称为目标代码),也就是翻译成0101机器语言文件,然后再运行0101机器语言程序实现功能

特点

  1. 一次性转换:编译器在程序运行之前将整个源代码转换成机器代码。
  2. 效率:编译后的程序通常运行速度较快,因为它们直接被硬件执行,无需再次编译。
  3. 平台依赖性:编译生成的机器码通常只能在特定类型的计算机或操作系统上运行。
  4. 错误检测:编译器在编译过程中会检查语法错误,并在继续之前要求修正这些错误。

示例:C、C++、Go等语言使用编译器。

综上所述,编译器和解释器各有优势,所以一些现代编程环境和语言(如Java、C#)采用了折中的方法,即先将源代码编译成中间代码(如Java字节码),然后通过虚拟机(JVM或.NET CLR)来解释或进一步编译(即即时编译,JIT)这些中间代码以运行程序。这种方式结合了编译器和解释器的优点,既提高了跨平台能力,又保证了较高的执行效率。(了解一下即可)

简要介绍操作系统

一开始,我们的目的就很明确,就是让计算机可以代替人类做一些事情,解放人类双手,所以计算机就必须具备做事的能力,这个能力一定是人类发明赋予的,赋予某种能力的玩意儿就叫硬件,比如录音设备,可以采集外界声音的硬件。键盘设备,可以采集用户的指令输入。音响设备,可以播放音频等等,这些硬件都可以去指定完成某一项功能,这也正是人类需要的

小伙伴们可能会想到,高级编程语言不是已经可以完成对硬件的调用和操控了嘛,想调用摄像头就编一个调用摄像头的代码,想播放音频就编一个播放音频的代码呗,理论上没错,那么问题来了,难道我们100个人需要调用摄像头,就编100份重复的代码吗,那也太low了,于是有人(公司)站了出来说,我来编写一款软件,编写的代码集成对所有硬件的调用不就行了,你们只需要用我的软件就可以调用硬件了,这款软件就叫做操作系统

专业一点来说就是,操作系统(Operating System,简称OS)是管理计算机硬件与软件资源的系统软件,它是用户与计算机硬件之间的接口。操作系统的基本功能包括管理和配置内存、决定系统资源供需的优先次序、控制输入和输出设备、操作网络以及管理文件系统。操作系统还提供一个让用户和系统交互的操作界面

常见的操作系统(原因是站出来的公司有很多)

  • Windows:由微软公司开发,广泛应用于个人电脑、服务器、嵌入式系统等。
  • macOS:苹果公司为Macintosh计算机开发的操作系统,以其优雅的用户界面和稳定性著称。
  • Linux:一个基于UNIX的自由和开放源代码的操作系统,广泛应用于服务器、桌面计算机、嵌入式系统等。
  • Unix:一个强大的多用户、多任务操作系统,是许多现代操作系统的基石,如Linux和BSD系统。
  • Android:基于Linux内核,由Google推出的操作系统,主要用于移动设备如智能手机和平板电脑。
  • iOS:苹果公司为iPhone、iPad和iPod Touch开发的移动操作系统。

问题又来了,既然操作系统都完成了对硬件的操作调用,那还有学编程语言搞啥呢,非也非也,即便你操作系统再牛,那也实现不了甲方的需求,比如windows系统自带的一些编辑文档的软件工具,你不还是喜欢用wps嘛,所以既然操作系统做了对硬件层面的封装,那么咱就不用编写这些代码,只需要根据应用场景,关注你想实现业务功能就行,所以我们编写的程序都是基于操作系统的应用程序,比如QQ,wps,音乐软件等等

总结

通过以上的文章描述,相信小伙伴们大致知道了计算机和编程语言的相关知识,再了解这些知识后对于后续学习Python或其他编程语言都有一个清晰的认识,就是这玩意儿到底是用来干啥的,更有助于接下来的学习

希望篇文章能够帮助到小伙伴们!

  • 25
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值