python基础
1.编程语言的定义
语言是一事物与另一事物沟通的介质。
编程语言是人与计算机沟通的介质。
2.编程的定义
即程序按照某种语言的语法规范将人想让计算机做的事情表达出来。(表达的结果就是程序,程序是一系列文件)
3.编程的目的
即解放人力,计算机代替人类工作。
4.计算机硬件基础
五大组成部分:1.控制器(指挥系统)
2.运算器(算术运算+逻辑判断)
注:CPU中央处理器=控制器+运算器(相当于人的大脑)/特点:具有向下兼容性
3.存储器(存取数据)a.内存(优:存取速度快//缺:断电数据丢失)
b.硬盘(外存)
c.磁带
4.输入(Input)设备:键盘·鼠标·摄像头之类
5.输出(Output)设备:显示器·打印机之类
注:运行程序的三大核心硬件由CPU,内存和硬盘组成
应用程序的运行:代码由硬盘加载至内存,CPU从内存中读取并执行。
存储器相关知识点
通常所说的内存包含:主存(随机访问存储RAM)
ROM只读内存(含BIOS)
CMOS储存器(含操作系统的代码路径且含内置电池)
硬盘:机械硬盘和固态硬盘
机械硬盘由机械臂(读取数据),磁道(存储数据)和扇区(固定数据范围,最小单位:512kb)
机械硬盘寻找数据时间=平均寻道时间(5ms工业限制)+平均延迟时间
5.操作系统
计算机分为三大类:最底层:硬件(存储数据/发送指令)
中间层: 操作系统(接受应用程序或用户发出的指令)
最上层:应用程序(具体实现某个功能)
操作系统的本质:软件,其目的控制硬件
位于计算机硬件与软件之间,协调·管理·控制硬件资源和软件资源
功能:1.将复杂硬件操作封装成简单的功能提供给用户或应用程序
2.将多个应用程序任务对硬件的竞争变得有序
操作系统和应用程序的启动区别:
a.操作系统的启动:开机后启动ROM存储器,该存储器中含BIOS程序运行操作系统代码,运行成功后操作系统接管硬件的工作
b.应用程序的启动:应用程序代码由硬盘加载至内存中,cpu从内存中读取并运行。但值得明确的是,装了操作系统后才能运行应用程序,应用程序对硬件控制的每一个操作,都依赖于操作系统的帮助
以QQ启动流程为例:
1.双击qq桌面图标(qq.exe对应路径的快捷方式)
2.双击图标其实是给操作系统发送指令,告诉操作系统qq程序对应的硬盘地址,并让操作系统启动这个路径
3.操作系统收到指令后操控cpu发送指令给内存
4.内存接受指令后发送给硬盘,硬盘读取qq代码给内存,即完成启动
6.编程语言介绍
1.机器语言:直接用二进制编程,直接对硬件进行控制
优点:执行效率高;缺点:开发效率低
2.汇编语言:英文标签取代二进制命令去编程,直接对硬件进行控制
优点:开发效率高;缺点:执行效率低(较于机器语言)
3.高级语言:直接用人类语言编写程序,不直接与硬件交互
a.编译型:类似于谷歌翻译,一次翻译完所有代码,且翻译后可保存供下次直接使用
b.解释型:类似于同声传译,写一句解释一句,下次翻译需要重新解释(python)
执行效率对比:机器语言>汇编语言>编译型语言>解释型语言
开发效率对比:解释型语言>编译型语言>汇编语言>机器语言
瓶颈效应;受与网速传播的限制,执行效率再高的编程语言也显示不出它的有点
7.python解释器安装
安装python解释器时,我们需要配置环境变量,其目的是告诉操作系统python.exe的存储路径
具体操作如下:电脑属性—高级系统设置—环境变量—path(需要将python.exe和scripts的路径同时添加至path中)
8.python解释器执行方式
1.交互式:代码于内存中,按回车键,解释器工作,输出结果
优点:执行效率高,及时纠错放错;缺点:无法保存
2.命令行式:编写代码文件存于硬盘中,python解释器需将文件从硬盘读取至内存中
优点:永久保存;缺点:无法及时报错,调试麻烦
9.变量的定义
量:衡量或记录现实事物的某种状态
变:这种状态是可以发生变化的
10.变量的目的
为了让计算机能够像人一样将现实事物的特征或状态记录下来,以后可以取出来使用
11.定义变量的语法
以age=18为例,age:变量名(是访问值的唯一方式)
=:赋值号(将值的内存地址绑定给变量名)
18:表示状态或特征
变量的使用规则:先定义,再通过变量去引用
变量名的命名规则:前提(反映出值记录的状态即具有某种意义)
1.变量名只能是字母,数字和下划线的组合(区分大小写)
2.变量名首字符不能是数字
3.不能为python的关键字(如:and,if,else等)
变量名的命名风格:a.纯小写+下划线 如age_of_nick=18(python推荐)
b.驼峰体 如AgeOfNick=18
变量值的特征:1.id(反映值在内存中的位置)
2.类型(不同类型的值表示记录不同的状态)
3.value(存放与内存中的数据)
注:id相同,value必然相同;value相同,id未必相同
12.常量
约定俗成的认为,变量名全大写就是常量,如NAME=nick(本质是可变的)
pycharm使用注释功能:单行注释(#+内容)
多行注释(”“”内容“”“)
标注信息(CTRL+/)
13.python的垃圾回收机制
变量只有当python解释器运行并解释文件代码时才具有意义,所以每当定义一个变量时,总会在内存中开辟一个变量值的占用,之后内存给该占用空间一个变量名。当变量值的无对应变量名即引用计数为0时,python会自动释放这个变量值的内存占用,这就是python的垃圾回收机制。
引用计数:同一变量值对应的变量名的个数。
需要注意的是:Python实现int的时候有个小整数池。为了避免因创建相同的值而重复申请内存空间所带来的效率问题, Python解释器会在启动时创建出小整数池,范围是[-5,256],该范围内的小整数对象是全局解释器范围内被重复使用,永远不会被回收。
在pycharm中运行python程序时,pycharm出于对性能的考虑,会扩大小整数池的范围,其他的字符串等不可变类型也都包含在内一便采用相同的方式处理了,我们只需要记住这是一种优化机制,至于范围到底多大,无需细究。
举例说明:x = 10 # 10引用计数加1为1
y = x # 10引用计数加1为2
x = 11 # 10引用计数减1为1;11引用计数加1为1
del y # 10引用计数减1为0,触发python垃圾回收机制,python清理10的内存占用