1-1python预备知识-计算机基础知识
############################################
""" 简述解释型和编译型编程语言? 解释型语言:可以直接运行,逐条翻译逐条运行 编译型语言:把做好的源程序全部编译成二进制代码的可运行程序。然后,可直接运行这个程序 总结 编译型语言,执行速度快、效率高;依赖编译器、跨平台性差些。如C、C++、Delphi、Pascal,Fortran。 解释型语言,执行速度慢、效率低;依赖解释器、跨平台性好。如Java、python. """
############################################
""" Python解释器种类和特点?
CPython: 当从Python官方网站下载并安装好Python2.7后,就直接获得了一个官方版本的解释器:Cpython, 这个解释器是用C语言开发的,所以叫 CPython,在命令行下运行python,就是启动CPython解释器,CPython是使用最广的Python解释器。 IPython: IPython是基于CPython之上的一个交互式解释器,也就是说,IPython只是在交互方式上有所增强,但是执行Python代码的功能和CPython是完全一样的,
好比很多国产浏览器虽然外观不同,但内核其实是调用了IE。 PyPy: 目标是执行效率 采用JIT技术 对python代码进行动态编译,提高执行效率 JPython :运行在Java上的解释器 直接把python代码编译成Java字节码执行 IronPython :运行在微软 .NET 平台上的解释器,把python编译成. NET 的字节码 """
############################################
""" 位和字节的关系? 1.位(bit) 来自英文bit,表示二进制位。位是计算机内部数据储存的最小单位,11010100是一个8位二进制数。一个二进制位只可以表示0和1两种状态;
两个二进制位可以表示00、01、10、11四种状态;三位二进制数可表示八种状态。 2.字节(byte) 字节来自英文Byte,习惯上用大写的“B”表示。 字节是计算机中数据处理的基本单位。计算机中以字节为单位存储和解释信息,规定一个字节由八个二进制位构成,即1个字节等于8个比特(1Byte=8bit)。 八位二进制数最小为00000000,最大为11111111;通常1个字节可以存入一个ASCII码,2个字节可以存放一个汉字国标码。
b、B、KB、MB、GB 的关系?1024
"""
############################################
""" ascii、unicode、utf-8、gbk 区别? ascii 8位一个字节,1个字节表示一个字符.即: 2 ** 8 = 256,所以ASCII码最多只能表示256个字符. unicode 俗称万国码,把所有的语言统一到一个编码里.解决了ascii码的限制以及乱码的问题. unicode码一般是用两个字节表示一个字符,特别生僻的用四个字节表示一个字符.
于是 ISO 就直接规定必须用两个字节,也就是16位来统一表示所有的字符 utf-8 新的问题出现了,如果统一成unicode编码,乱码问题从此消失了.但是如果你写的文本基本上都是英文的, 用Unicode编码比ascii编码需要多一倍的存储空间,在存储和传输上十分不方便. utf-8应用而生,它是一个"可变长的编码方式",如果是英文字符,则采用ascii编码,占用一个字节. 如果是常用汉字,就占用三个字节,如果是生僻的字就占用4~6个字节. 这个地方要注意,在Unicode的时候一个汉字是两个字节,但是在utf-8的时候一个汉字是3个字节, gbk 国内版本,一个中文字符 == 两个字节 英文是一个字节 """
############################################
""" 字节码和机器码的区别?
机器码 是电脑CPU直接读取运行的机器码,运行速度最快,但是非常晦涩难懂,同时也比较难编写; 字节码 字节码是一种中间状态的(中间码)的二进制代码(文件),字节码(Bytecode)是一种包含执行程序、由一序列 op 代码/数据对 组成的二进制文件。需要直译器转译后才能成为机器码; 对比字节码与机器码 机器码就是说计算机能读懂的代码,简单点说就是给计算机执行的二进制代码. 字节码,是JAVA语言专有的,它是让JVM来执行的二进制代码 虽然都是二进制代码,但是由于执行它的环境不一样,所以它们存在一些指令集上的区别 一,机器码,完全依附硬件而存在~并且不同硬件由于内嵌指令集不同,即使相同的0 1代码 意思也可能是不同的~
换句话说,根本不存在跨平台性~比如~不同型号的CPU,你给他个指令10001101,他们可能会解析为不同的结果~
二,我们知道JAVA是跨平台的,为什么呢?因为他有一个jvm,不论那种硬件,只要你装有jvm,那么他就认识这个JAVA字节码~~
至于底层的机器码,咱不用管,有jvm搞定,他会把字节码再翻译成所在机器认识的机器码~~~ """
############################################
###
cpu
###
内存,
内存里面有两个,一个数据,一个指令,
数据我们可以强行修改,
指令我们可以强行跳转,行我们可以把他改成不行,
所以可以做一些邪恶的事情,
你打开一个程序,这个就要加载进入内存,
内存里面的数据都是有地址的,就像一个个的房间一样,
###
一个B是8个字节,
一个字节就是0或1,
###
解释性语言和编译型语言,的区别,
就是解释性语言,解释就是执行,
而编译型语言是编译,执不执行再说,
####
############################################
############################################
############################################
技术改变命运