python前言

计算机的组成

计算机是可以进行数值计算和逻辑运算, 并且具有存储功能的电子机器.

计算机由硬系统件和软件系统组成.在这里插入图片描述

1.1.1 硬件系统

主要分为主机和外设两部分, 是指那些构成计算机系统的物理实体, 它们主要由各种各样的电子器件和机电装置组成.

  • 运算器: 负责数据的算术运算和逻辑运算,即数据的加工处理.

  • 控制器: 是整个计算机的中枢神经,分析程序规定的控制信息,并根据程序要求进行控制,协调计算机各部分组件工作及内存与外设的访问等.

  • 运算器和控制器统称中央处理器(即CPU).

  • 存储器: 实现记忆功能的部件,用来存储程序、数据和各种信号、命令等信息,并在需要时提供这些信息.

  • 输入设备: 实现将程序、原始数据、文字、字符、控制命令或现场采集的数据等信息输入到计算机.

  • 输出设备: 实现将计算机处理后生成的中间结果或最后结果(各种数据符号及文字或各种控制信号等信息)输出出来.

1.1.2 软件系统

主要分为系统软件和应用软件,是指计算机证运行所需的各种各样的计算机程序。

系统软件的任务是既要保证计算机硬件的正常工作,又要使计算机硬件的性能得到充分发挥,并且为计算机用户提供一个比较直观、方便和友好的使用界面.

1.1.2.1 操作系统

没有安装操作系统的计算机, 通常被称为裸机

如果想在裸机上运行自己所编写的程序, 就必须用机器语言书写程序.

在这里插入图片描述

操作系统提供以下功能:

  • 给用户间接操作硬件的方式:图形界面方式终端命令方式
  • 给开发者提供的间接操作硬件的方式:系统调用

主要作用是管理好硬件设备, 并为用户和开发者提供一个简单的接口, 以便于使用.

1.1.2.2 驱动程序

驱动程序: 指的是设备驱动程序, 是一种可以使计算机和设备通信的特殊程序. 操作系统通过这个程序操作和控制硬件设备工作, 如果某设备的驱动程序没有正确安装, 该设备则无法工作. 所以一般操作系统安装完毕之后,首要就是要安装硬件设备的驱动程序, 不过大多数情况下, 我们并不需要安装驱动程序, 例如硬件、显示器、光驱就不需要安装驱动程序, 而显卡、声卡、摄像头、打印机等就需要安装驱动程序。

比如:让声卡播放音乐, 它首先会发送响应的指令到声卡驱动程序, 声卡驱动程序接受到后, 马上将其翻译成声卡才能听懂的电子信号命令, 从而让声卡播放音乐.

驱动程序提供了硬件到操作系统的一个接口以及协调二者之间的关系. 扮演者硬件和操作系统之间的一个桥梁的作用.

1.1.3计算机运行程序的过程

我们从计算机如何播放音乐, 来了解计算机执行程序的过程

在这里插入图片描述

1、双击应用程序, 应用程序中的指令和数据就会加载到内存中.

2、CPU从内存中获取指令并执行, 在内存中存储运行之后的数据.

3、CPU控制硬件进行相应的操作.

1.1.4 小结

1、计算机是能够进行数值运算、逻辑运算, 并且具有存储功能的电子设备.

2、计算机由硬件系统和软件系统构成.

3、计算机中所有程序的运行都是在内存中进行的, 暂时存放CPU中的运算数据.

4、操作系统的作用就是来管理硬件, 为普通用户和开发者提供一种间接控制硬件的方式.

5、操作系统为普通用户提供了终端、图形化操作硬件的方式.

6、操作系统为开发者提供了系统调用操作硬件的方式.

7、驱动程序扮演操作系统和硬件之间的桥梁.

思考:

我们可以直接控制硬件吗? 缺点是什么?

为什么程序运行时, 要将程序数据存储在内存中? 内存的作用是什么?

计算机中程序的执行流程是什么样的?

编程语言

我们如何根据自己的需求控制硬件? 编程语言

编程语言(计算机语言)是人们为了控制计算机, 而设计的一种符号和文字的组合, 从而实现向计算机发出指令。(形式是符号和文字的组合.目的是为了控制计算机硬件.)

Python语言就是一种编程语言, 由符号和文字组成的, 使用Python语言的目的就是为了控制计算机硬件进行工作.

1.2.1 解释器

编程语言是文字和符号的组合, CPU只能认识机器指令, 机器指令的表现方式就是0和1的组合. 这显然很矛盾? 此时, 需要一个中间角色负责将文字和符号转换为机器指令, 这个负责转换的角色叫做解释器. 解释器本质上就是一个运行在操作系统上的应用程序

在这里插入图片描述

Python语言如果想要被CPU读懂, 也需要一个中间的翻译程序.

1.2.2 Python 语言解释器

Python语言是解释型程序, 也就是说Python语言是读一行解释执行一行的方式进行工作的. 解释器是一个程序, 那么

可以使用其他的程序来编写这个解释器.

8使用C语言编写的CPython解释器(官方版本).

Java语言编写的Jython解释器.

C#语言编写的IronPython解释器.

Python语言编写的PyPy解释器.

1.2.3 小结

Python语言是符合和文字的组合, 目的是用来向计算机发送指令, 控制计算机工作.

Python解释器是运行在操作系统之上的一个特殊功能的应用程序.

解释器负责将编程语言的符合和文字转换为计算机能够识别的计算机语言.

Python解释器程序可以由不同的语言的编写, 官方解释器使用C语言编写, 称之为CPython解释器.

思考

我们在Windows上编写的Python程序是否可以在Linux、Mac或者其他种类的操作系统上运行呢? 如果希望在其他操作系统上运行, 我们需要做哪些工作呢?

在这里插入图片描述

Python 语言介绍

Python 的作者, Guido von Rossum (吉多·范·罗苏姆, 中国Python程序员都叫他龟叔), 荷兰人. 1982年, 龟叔从阿姆斯特丹大学获得了数学和计算机硕士学位. 然而, 尽管他算得上是一位数学家, 但他更加享受计算机带来的乐趣. 用他的话说, 虽然拥有数学和计算机双料资质, 他总趋向于做计算机相关的工作, 并热衷于做任何和编程相关的事情.

发展历史

80 年代个人电脑浪潮, 电脑配置很低, 所以大家都使用类似于C语言这样的程序语言, 但使用C语言使得程序员必须像计算机一样思考, 写出符合机器口味的程序. 不利于我们使用人思考问题的方式解决问题, 对于一些复杂问题, 会使得编码比较复杂.

吉多希望编码简单, 功能又强大. 于是在 1991 年, 诞生了第一个 C 语言实现的 Python 解释器. 计算机硬件越来越强大, Python 又容易使用, 所以许多人开始转向 Python. 这些来自不同领域的开发者, 将不同领域的优点带给了 Python.

从 Python 2.0开始, Python 转为完全开源的开发方式, Python 也获得了更加高速的发展.

优点

易学. Python 有极其简单的语法, 学习极其容易上手. 开源.

可移植性. Python 已经被移植在许多平台上. 这些平台包括 Linux、Windows、Mac OS、FreeBSD、Windows 、CE 甚至还有 Symbian、Android 平台。

丰富的库. Python 标准库确实很庞大. 除了标准库以外,还有许多其他高质量的库.

领域

Web应用开发、网络爬虫、桌面软件、 操作系统管理……

开发环境搭建

学习目标:能够说出在不同系统上搭建 Python 开发环境的流程

Python 程序开发一般包含两部分, 编写 Python 程序和运行 Python 程序, 所以一个 Python 开发环境主要包含两部分:

  • 编辑Python代码的编辑器
  • 运行Python代码的解释器
Python解释器 + 普通文本编辑器

普通文本编辑器我们可以使用 Windows 系统自带的 txt 文本编辑器、notepad++、sublime、editplus、ue 等等. 任何能够进行文本编辑的软件都可以作为 Python 程序开发的代码编辑器.

Python解释器 + 交互式终端

在安装 Python 解释器时安装了交互式终端. 我们可以通过在命令行窗口中, 输入 Python 或者 Python2 或者Python3 进入不同 Python 版本的交互式终端.

交互式终端.png

Python解释器 + 集成开发环境(IDE)

集成开发环境(IDE, Integrated Development Environment)是用于提供程序开发环境的应用程序, 一般包括代码编辑器、编译器、调试器和图形用户界面等工具. 集成了代码编写功能、分析功能、编译功能、调试功能等一体化的开发软件服务套. 所有具备这一特性的软件或者软件套(组)都可以叫集成开发环境.

我们使用 PyCharm 这款集成开发环境(IDE). 该软件提供了 Windows、Linux、Mac三个版本, 可依据实际开发平台选择.

下载地址:https://www.jetbrains.com/zh-cn/pycharm/download/#section=windows

pycharm简单使用教程:https://blog.csdn.net/qq_40130759/article/details/79421242

思考:在 Linux 操作系统上编写 Python 程序, 我们需要做哪些准备工作? 安装哪些软件?

热门文章

暂无图片
编程学习 ·

Java输出数组的内容

Java输出数组的内容_一万个小时-CSDN博客_java打印数组内容1. 输出内容最常见的方式// List<String>类型的列表List<String> list new ArrayList<String>();list.add("First");list.add("Second");list.add("Third");list.ad…
暂无图片
编程学习 ·

母螳螂的“魅惑之术”

在它们对大蝗虫发起进攻的时候&#xff0c;我认认真真地观察了一次&#xff0c;因为它们突然像触电一样浑身痉挛起来&#xff0c;警觉地面对限前这个大家伙&#xff0c;然后放下自己优雅的身段和祈祷的双手&#xff0c;摆出了一个可怕的姿势。我被眼前的一幕吓到了&#xff0c;…
暂无图片
编程学习 ·

疯狂填词 mad_libs 第9章9.9.2

#win7 python3.7.0 import os,reos.chdir(d:\documents\program_language) file1open(.\疯狂填词_d9z9d2_r.txt) file2open(.\疯狂填词_d9z9d2_w.txt,w) words[ADJECTIVE,NOUN,VERB,NOUN] str1file1.read()#方法1 for word in words :word_replaceinput(fEnter a {word} :)str1…
暂无图片
编程学习 ·

HBASE 高可用

为了保证HBASE是高可用的,所依赖的HDFS和zookeeper也要是高可用的. 通过参数hbase.rootdir指定了连接到Hadoop的地址,mycluster表示为Hadoop的集群. HBASE本身的高可用很简单,只要在一个健康的集群其他节点通过命令 hbase-daemon.sh start master启动一个Hmaster进程,这个Hmast…
暂无图片
编程学习 ·

js事件操作语法

一、事件的绑定语法 语法形式1 事件监听 标签对象.addEventListener(click,function(){}); 语法形式2 on语法绑定 标签对象.onclick function(){} on语法是通过 等于赋值绑定的事件处理函数 , 等于赋值本质上执行的是覆盖赋值,后赋值的数据会覆盖之前存储的数据,也就是on…
暂无图片
编程学习 ·

Photoshop插件--晕影动态--选区--脚本开发--PS插件

文章目录1.插件界面2.关键代码2.1 选区2.2 动态晕影3.作者寄语PS是一款栅格图像编辑软件&#xff0c;具有许多强大的功能&#xff0c;本文演示如何通过脚本实现晕影动态和选区相关功能&#xff0c;展示从互联网收集而来的一个小插件&#xff0c;供大家学习交流&#xff0c;请勿…
暂无图片
编程学习 ·

vs LNK1104 无法打开文件“xxx.obj”

写在前面&#xff1a; 向大家推荐两本新书&#xff0c;《深度学习计算机视觉实战》和《学习OpenCV4&#xff1a;基于Python的算法实战》。 《深度学习计算机视觉实战》讲了计算机视觉理论基础&#xff0c;讲了案例项目&#xff0c;讲了模型部署&#xff0c;这些项目学会之后可以…
暂无图片
编程学习 ·

工业元宇宙的定义与实施路线图

工业元宇宙的定义与实施路线图 李正海 1 工业元宇宙 给大家做一个关于工业元宇宙的定义。对于工业&#xff0c;从设计的角度来讲&#xff0c;现在的设计人员已经做到了普遍的三维设计&#xff0c;但是进入元宇宙时代&#xff0c;就不仅仅只是三维设计了&#xff0c;我们的目…
暂无图片
编程学习 ·

【leectode 2022.1.15】完成一半题目

有 N 位扣友参加了微软与力扣举办了「以扣会友」线下活动。主办方提供了 2*N 道题目&#xff0c;整型数组 questions 中每个数字对应了每道题目所涉及的知识点类型。 若每位扣友选择不同的一题&#xff0c;请返回被选的 N 道题目至少包含多少种知识点类型。 示例 1&#xff1a…
暂无图片
编程学习 ·

js 面试题总结

一、js原型与原型链 1. prototype 每个函数都有一个prototype属性&#xff0c;被称为显示原型 2._ _proto_ _ 每个实例对象都会有_ _proto_ _属性,其被称为隐式原型 每一个实例对象的隐式原型_ _proto_ _属性指向自身构造函数的显式原型prototype 3. constructor 每个prot…
暂无图片
编程学习 ·

java练习代码

打印自定义行数的空心菱形练习代码如下 import java.util.Scanner; public class daYinLengXing{public static void main(String[] args) {System.out.println("请输入行数");Scanner myScanner new Scanner(System.in);int g myScanner.nextInt();int num g%2;//…
暂无图片
编程学习 ·

RocketMQ-什么是死信队列?怎么解决

目录 什么是死信队列 死信队列的特征 死信消息的处理 什么是死信队列 当一条消息初次消费失败&#xff0c;消息队列会自动进行消费重试&#xff1b;达到最大重试次数后&#xff0c;若消费依然失败&#xff0c;则表明消费者在正常情况下无法正确地消费该消息&#xff0c;此时…
暂无图片
编程学习 ·

项目 cg day04

第4章 lua、Canal实现广告缓存 学习目标 Lua介绍 Lua语法 输出、变量定义、数据类型、流程控制(if..)、循环操作、函数、表(数组)、模块OpenResty介绍(理解配置) 封装了Nginx&#xff0c;并且提供了Lua扩展&#xff0c;大大提升了Nginx对并发处理的能&#xff0c;10K-1000K Lu…
暂无图片
编程学习 ·

输出三角形

#include <stdio.h> int main() { int i,j; for(i0;i<5;i) { for(j0;j<i;j) { printf("*"); } printf("\n"); } }
暂无图片
编程学习 ·

stm32的BOOTLOADER学习1

序言 最近计划学习stm32的BOOTLOADER学习,把学习过程记录下来 因为现在网上STM32C8T6还是比较贵的,根据我的需求flash空间小一些也可以,所以我决定使用stm32c6t6.这个芯片的空间是32kb的。 #熟悉芯片内部的空间地址 1、flash ROM&#xff1a; 大小32KB&#xff0c;范围&#xf…
暂无图片
编程学习 ·

通过awk和shell来限制IP多次访问之学不会你打死我

学不会你打死我 今天我们用shell脚本&#xff0c;awk工具来分析日志来判断是否存在扫描器来进行破解网站密码——限制访问次数过多的IP地址&#xff0c;通过Iptables来进行限制。代码在末尾 首先我们要先查看日志的格式&#xff0c;分析出我们需要筛选的内容&#xff0c;日志…
暂无图片
编程学习 ·

Python - 如何像程序员一样思考

在为计算机编写程序之前&#xff0c;您必须学会如何像程序员一样思考。学习像程序员一样思考对任何学生都很有价值。以下步骤可帮助任何人学习编码并了解计算机科学的价值——即使他们不打算成为计算机科学家。 顾名思义&#xff0c;Python经常被想要学习编程的人用作第一语言…
暂无图片
编程学习 ·

蓝桥杯python-数字三角形

问题描述 虽然我前后用了三种做法&#xff0c;但是我发现只有“优化思路_1”可以通过蓝桥杯官网中的测评&#xff0c;但是如果用c/c的话&#xff0c;每个都通得过&#xff0c;足以可见python的效率之低&#xff08;但耐不住人家好用啊&#xff08;哭笑&#xff09;&#xff09…