操作系统,语言分类,变量
操作系统
1. 什么是操作系统
操作系统是一个协调\管理\控制计算机硬件资源与软件资源的一个控制程序
2. 为何要有操作系统
1. 把复杂硬件操作封装成简单的功能/接口用来给用户或者应用程序使用(如:文件的操作)
2. 把应用程序多硬件的竞争变得有序(协调并发)
3. 如何用操作系统
一套完整的计算机系统分为三层:
应用程序层
操作系统层
计算机硬件层
编程语言分类
1. 机器语言(直接操作硬件):直接使用二进制指令去编写程序
优点:计算机无障碍理解,运行效率非常高
缺点:开发效率低
2. 汇编语言(直接操作硬件):使用英文标签代替二进制指令去编写程序
优点:比起机器语言开发效率高
缺点:开发效率比机器语言高,但仍然比较低
3. 高级语言:直接使用人能力理解的表达方式去编写程序
问题是计算机无法直接理解,程序是需要经过翻译才能被计算机理解执行的,
按照翻译方式的不同,分为两种:
1. 编译型(C语言):谷歌翻译,全部结束后进行翻译
优点:执行效率高于解释型
缺点:开发效率低于解释型
2. 解释型(Python):同声传译,边进行边翻译
优点:开发效率高于编译型
缺点:执行效率低于编译型
执行效率:机器语言>汇编语言>编译型>解释型
开发效率:解释型>编译型>汇编语言>机器语言
编写Python程序
执行python程序有两种方式:
1. 交互式环境:输入代码立即执行
优点:调试程序方便,在未来的编程中可以用来检验一行代码的功能
缺点:无法永久保存程序
2 代码写入文件,文件的名test.py
打开cmd执行:python3 D:\test.py
优点:永久保存程序
变量
1. 什么是变量
量:衡量/计量/记录某种状态
变:记录下来的某种状态是可以发生变化的
e.g:对于一个新认识的人,会在自己的潜意识里给这个人的姓名,年龄,性别,身高,体重进行赋值,
这些参数就相当于是变量,过一段再次看到这个人,其所发生的变化就会重新赋值
2. 为何要用变量
为了让计算机能够像人一样去识别世间万物,
如何识别,就是把事物的特征记录下来-->变量的定义
3. 如何用变量
变量的使用必须遵循:先定义,后引用
变量的定义
一: 定义变量
name = 'egon'
age=18
salary=3.1
# 定义一个变量分为三部分:
# 1. 变量名:变量名是访问到值的唯一方式,相当于房间门牌号(值在内存中的地址,变量的引用)
# 2. 赋值符号:将值的内存地址"赋值"给变量名
# 3. 变量的值:记录状态(特征)
aaa 是变量名;
'aaa' 是字符串;
二: 变量名的命名规范:
大前提:变量名的命名应该对值有描述性的功能(见名之意)
# 1. 变量名只能是 字母、数字或下划线的任意组合
# 2. 变量名的第一个字符不能是数字
# 3. 关键字不能声明为变量名
三: 变量名的命名风格:
# 1. 驼峰体:
# OldboyOfAge=73
# 2. 下划线纯小写式
# oldboy_of_age=73
# 在python中变量名的命名推荐使用2(清晰明了)
# 补充:!!!!!!运行python程序的三个阶段!!!!!!
# python3 D:\test.py
# 1. 先启动python解释器
# 2. python解释器发指令将python文件由硬盘读入内存(读入的文件为文本格式,不存在Python语法)
# 3. python解释器解释执行刚刚读入内存的代码(一行一行解释执行),开始识别python语法
引用计数:计算值被关联了多少个变量名
引用计数一旦为零就是垃圾,会被python的垃圾回收机制自动清理
# 引用计数增加
x=10
y=x
# 引用计数减少
x=10
del x # 解除变量名与值10内存地址的绑定关系
# x=11
# x=1111
# 同一个变量名只能指向一个内存地址,同名变量名的值会覆盖前面的值;
# print(x)-----结果:1111
四.变量具备三个特征
1. id: 变量值的唯一编号,内存地址不同id则不同
2. type:变量的数据类型
3. value:变量的值
1 x=10 2 y=x 3 print(id(x),id(y))#x和y指向同一个地址,id相同 4 5 age=10 6 print(id(age)) 7 print(type(age)) 8 print(age)
五.is和==
is是进行身份运算,比较的是id是否相等
==是判断值是否相等
''' 值相等id不一定相等 >>> x=111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 >>> y=111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 >>> id(x) 2181129522824 >>> id(y) 2181129523040 >>> x is y False >>> x == y True ''' # x=100000000000000000000000000000000000000 # y=100000000000000000000000000000000000000 print(x is y) >>>True
六.常量
OLDBOY_OF_AGE=73
OLDBOY_OF_AGE=74
print(OLDBOY_OF_AGE)
>>>74
在Python中常量并不是不能改变数值的,只是不推荐改变,但是并不算错。
常量的定义是规范,不是规则。
七.小整数池
在小整数池范围内,如果两个变量的值相等,那么这两个变量的内存地址一定相同。不会在内存中开发新的空间,而是直接从小整数池取;
#1、在交互式模式下
Python实现int的时候有个小整数池。为了避免因创建相同的值而重复申请内存空间所带来的效率问题, Python解释器会在启动时创建出小整数池,范围是[-5,256],该范围内的小整数对象是全局解释器范围内被重复使用,永远不会被GC回收
每创建一个-5到256之间的整数,都是直接从这个池里直接拿走一个值,例如
>>> y=4
>>> id(y)
==1478061632
>>> x=3
>>>id(x)
==1478061600
>>> x+=1
>>> id(x)
==1478061632
#在pycharm中
但在pycharm中运行python程序,pycharm出于对性能的考虑,会扩大小整数池的范围,其他的字符串等不可变类型也都包含在内一便采用相同的方式处理了,我们只需要记住这是一种优化机制,至于范围到底多大,无需细究