热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

day02操作系统、编程语言分类及python安装

目录操作系统编程语言分类安装python解释器操作系统操作系统有什么用操作系统能接受外部指令转化成0和1,并把一些对硬件的复杂操作简化成一个个简单的接口,作为中间人连接硬件和软件计

目录

  1. 操作系统

  2. 编程语言分类

  3. 安装python解释器


操作系统

操作系统有什么用

操作系统能接受外部指令转化成0和1,并把一些对硬件的复杂操作简化成一个个简单的接口,作为中间人连接硬件和软件


计算机三大组成部分



  • 应用程序:是具体干活,完成一个个任务的,和人、操作系统交互

  • 操作系统:接受外部指令,控制硬件,为用户和用户程序提供一个个简单的接口,和应用程序、人、硬件交互

  • 硬件:用来操作数据的(存储数据、输入数据、输出数据)


应用程序的启动流程



  1. 双击应用程序

  2. 发送指令给操作系统

  3. 操作系统把这条指令转化成0和1发给CPU

  4. CPU把指令发给内存

  5. 内存从硬盘中调取应用程序的数据

  6. 应用程序读入内存中启动

注意:步骤4、步骤5和步骤6不涉及操作系统的概念


操作系统的启动流程

操作系统实际上是一个计算机程序,如果要启动程序就必须得经过操作系统。而在按下开机键的时候,操作系统还在硬盘中。此时,需要有个东西来充当临时操作系统。



  1. 按下开机键

  2. ROM充当临时的操作系统控制CPU

  3. 在CMOS中寻找操作系统的路径

  4. 找到后启动操作系统,接管ROM的工作


编程语言分类

机器语言

由于计算机以二进制的形式存储数据,如果我们要与计算机沟通,那我们必须得会二进制编程。最早的时候,0和1就是编程语言,也就是所说的机器语言



  • 优点:执行代码效率高(直接与计算机硬件交互)

  • 缺点:开发效率低(一大堆的0和1)


汇编语言

通过写英文字符的形式代替一串二进制,但是它还是直接和硬件交互的



  • 优点(相对于机器语言):开发效率高

  • 缺点(相对于机器语言):执行代码效率低


高级语言

由于汇编语言和机器语言都依赖于硬件体系,且助记符量大难记,于是人们又发明了更加易用的所谓高级语言,如C、C++、Java、Python等等



  • 优点(相对于汇编语言):开发效率高

  • 缺点(相对于汇编语言):执行效率低(不再和硬件直接交互)

但归根结底还是要给计算机执行的,而计算机只认识二进制指令,这就涉及到将高级语言翻译成二进制的过程。根据翻译方式的不同,高级语言又分成编译型和解释型两大类。


编译型

其实可以理解成谷歌/百度翻译,将要翻译的代码丢进去,一次性翻译出一个结果,这个翻译结果可以保留在下一次使用。如C、Java



  • 优点(相对于解释型):执行效率高(直接翻译成机器语言)

  • 缺点(相对于解释型):开发效率低(要等到代码全部写完后才能调试)


解释型

可以理解成同声传译,以写一行代码翻译一行,翻译的内容不保存。如python



  • 优点(相对于编译型):开发效率高(写一行翻译一行,可以很早的发现bug)

  • 缺点(相对于编译型):执行效率低(写一次就得再翻译一次)

总结:毫无疑问,高级语言的编译型语言和解释型语言两者是相互矛盾的,这根据不同的需求考虑使用哪种类型的高级语言


安装python解释器

下载

以下载64位windows系统下的python为例,在官网https://www.python.org/downloads/windows/下载(根据电脑选择相应的安装包下载)

双击所下载后的.exe文件进行安装,选择Customize installation自定义安装,在下一步点Next

在Customize install location下选择安装路径(推荐安装在C盘或D盘根目录下),点击Install开始安装

安装完成后(Setup was successful),点击Close即可

安装完成后,在安装的python文件中有个python.exe可执行文件,打开该执行文件便可调出python交互式环境,书写python代码


设置环境变量

但每次在文件中找到python.exe再打开交互式界面是非常不方便的,而且在命令提示符窗口不能直接使用python命令

计算机在执行命令的时候是在环境变量找对应的命令的位置的,如果不正确设置环境变量就不能正确使用相应的命令,因此需要设置环境变量。

在系统属性==>高级==>环境变量==>变量path==>新建(添加python.exe所在的路径)==>确认

设置好环境变量后就可以在命令提示符窗口直接调用python命令了



推荐阅读
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • 原文地址:https:www.cnblogs.combaoyipSpringBoot_YML.html1.在springboot中,有两种配置文件,一种 ... [详细]
  • 使用Ubuntu中的Python获取浏览器历史记录原文: ... [详细]
  • YOLOv7基于自己的数据集从零构建模型完整训练、推理计算超详细教程
    本文介绍了关于人工智能、神经网络和深度学习的知识点,并提供了YOLOv7基于自己的数据集从零构建模型完整训练、推理计算的详细教程。文章还提到了郑州最低生活保障的话题。对于从事目标检测任务的人来说,YOLO是一个熟悉的模型。文章还提到了yolov4和yolov6的相关内容,以及选择模型的优化思路。 ... [详细]
  • 安装mysqlclient失败解决办法
    本文介绍了在MAC系统中,使用django使用mysql数据库报错的解决办法。通过源码安装mysqlclient或将mysql_config添加到系统环境变量中,可以解决安装mysqlclient失败的问题。同时,还介绍了查看mysql安装路径和使配置文件生效的方法。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • 本文介绍了在Win10上安装WinPythonHadoop的详细步骤,包括安装Python环境、安装JDK8、安装pyspark、安装Hadoop和Spark、设置环境变量、下载winutils.exe等。同时提醒注意Hadoop版本与pyspark版本的一致性,并建议重启电脑以确保安装成功。 ... [详细]
  • baresip android编译、运行教程1语音通话
    本文介绍了如何在安卓平台上编译和运行baresip android,包括下载相关的sdk和ndk,修改ndk路径和输出目录,以及创建一个c++的安卓工程并将目录考到cpp下。详细步骤可参考给出的链接和文档。 ... [详细]
  • Android Studio Bumblebee | 2021.1.1(大黄蜂版本使用介绍)
    本文介绍了Android Studio Bumblebee | 2021.1.1(大黄蜂版本)的使用方法和相关知识,包括Gradle的介绍、设备管理器的配置、无线调试、新版本问题等内容。同时还提供了更新版本的下载地址和启动页面截图。 ... [详细]
  • 如何用UE4制作2D游戏文档——计算篇
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • Java String与StringBuffer的区别及其应用场景
    本文主要介绍了Java中String和StringBuffer的区别,String是不可变的,而StringBuffer是可变的。StringBuffer在进行字符串处理时不生成新的对象,内存使用上要优于String类。因此,在需要频繁对字符串进行修改的情况下,使用StringBuffer更加适合。同时,文章还介绍了String和StringBuffer的应用场景。 ... [详细]
author-avatar
xiaobaibai
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有