编程语言发展、python安装以及变量

什么是编程语言

人可以通过直接输二进制,相关标签打包输入到后来一步步发展的高级语言这种跟机器用本质二进制方式进行指挥操作电脑的硬件的方式

编程语言发展史

机器语言(站在奴隶的角度)
直接用二进制与计算机直接沟通交流
ps:为什么是二进制,是由于计算机是基于电工作的,而电信号只有高低电频
汇编语言(站在奴隶的角度)
用简单的英文标签代替二进制直接操作硬件
高级语言(站在奴隶主的角度)
同人类能够识别的语言与计算机进行沟通交流


编译型(类似于谷歌翻译,一次性将文本全部翻译)
c

解释型(类似于同声传译, 读一行翻译一行)
python

开发效率:
高级 汇编 机器

运行一个py文件发生了几件事
  1.将python解释器的代码由硬盘先读到内存
  2.将test.py文件以普通的文本文件的方式读到内存
  3.解释器读取test.py文件内容识别python语法执行相应代码
  注意:py文件与普通的文本文件前两个步骤是一模一样的,唯独第三步不一样

  qq是一些个编程语言合作写的就以qq举个列子:

    输入设备(鼠标)点击图标 ==> CPU(运算处理控制器准备)==>控制磁针读取硬盘内容==>读取后相关操作语言控制Cpu控制器将其转到内存==>相关数据回馈到输出设备(屏幕)
这之中操作系统起了中间人作用,控制硬件和软件之间的交互 

python解释器下载

  百度  2X版本 3X版本

环境变量的配置(******)

  我的电脑右击环境变量 Path   找到 python目录和scprits目录 把相关位置输入环境变量

pycharm

  一个很适合python开发的IDE

变量

  量:衡量/记录事物的状态/特征
  变:事物的状态和特征可以发送变化

变量的命名规范:
  1.只能由数字,字母,下划线组成
  2.不能以数字开头,也不要以下划线开头(以下划线开头的变量名在后面是有特殊意义的)
  3.变量名不能与关键字冲突(*****)

变量的命名规则
  1.驼峰体(Js推荐使用驼峰体)
    userName
  2.下划线(python推荐用下划线)
    user_name

  变量的命名一定要做到见名知意

定义变量的内部原理
定义变量在运行时会在电脑内存中申请一块独立的内存空间

变量的三要素

id()          对应变量占有的内存的位置
type()      对应变量的数据类型
value()    赋给变量的值 实际为开辟的内存空间里面的数值

    变量名的使用一定要遵循先定义后调用(******)


垃圾回收机制

1.引用计数:内存中的数据如果没有任何的变量名与其有绑定关系,那么会被自动回收
2.标记清除:当内存快要被某个应用程序占满的时候,会自动触发
3.分代回收:根据值得存活时间的不同,划为不同的等级,等级越高垃圾回收机制扫描的频率越低
个人理解:
  现在的高级语言如java,c#等,都采用了垃圾收集机制,而不再是c,c++里用户自己管理维护内存的方式。自己管理内存极其自由,可以任意申请内存,但如同一把双刃剑,为大量内存泄露,悬空指针等bug埋下隐患。
  类似最近2天看的Go语言,它的垃圾回收机制就位有无用的变量垃圾就直接会报错,并提示地点,所以垃圾回收机制是一个对于高级编程语言来讲减少很大工作量和一定程度上增加开发效率和工作效率的一个机制.
  1绑定变量第一没有关系自然会被回收,
  2变量会被标记,快满时候,python底层会操作删除多标记的无用垃圾
  3青春代,中年代,老年代.大小自小到大,扫描时间由短到长,没扫描出来多了垃圾会自动传入下一个代
个人有个很酷的理解: 反向吃鸡
  前面比较安全 但也会被击杀看成老年代状态
  后期圈小,毒圈也很危险,死亡率高 看成青春代
  中期前两个折中
  对应分代回收的反向处境




常量:

  程序中不变的量
  python中压根就没有常量
  约定俗成变量名全大写称之为常量

原文地址:https://www.cnblogs.com/jinpan/p/11115296.html