一、python与其它语言对比
1.1 其它语言原理:
C 和 Python、Java、C#等
C语言: 代码编译后得到的是机器码 ,机器码在处理器上直接执行,每一条指令控制CPU工作,速度快
其他语言: 代码编译得到 字节码 ,虚拟机执行字节码并转换成机器码再后在处理器上执行
Python 和 C Python这门语言是由C开发而来
对于使用:Python的类库齐全并且使用简洁,如果要实现同样的功能,Python 10行代码可以解决,C可能就需要100行甚至更多.
对于速度:Python的运行速度相较与C,绝逼是慢了
Python 和 Java、C#等
对于使用:Linux原装Python,其他语言没有;以上几门语言都有非常丰富的类库支持
对于速度:Python在速度上可能稍显逊色
所以,Python和其他语言没有什么本质区别
python种类:Cpython Jyhton PyPy
二、python文件运行过程
2.1.安装
windows:下载python解释器,https:
/
/
www.python.org
/
downloads
/,安装后加环境变量r
linux:原装的,可用yum升级到2.7,需要安装gcc用于编码py文件的源码
2.2 过程
编码:python2.7默认gcc编码方法是ASCII,python3.X默认编码方法是万国码unicode
.py文件-------python解释器(词法分析-语法分析-编码-状态)-----返回字节码编译成能显示的语言
2.3 详解编码过程
注:以下的转化只能是字符串与bytes相互转化等,python中的其它数据类型int 等需要转化成str后再与bytes转化
明文(.py里写的内容)-----程序运行被python解释存在内存存为unicode值----utf8/GDK解码为bytes---二进制到cpu上运行
unicode方式编码的值:unicode值,由utf8编码成的值:bytes值
python2.x编码:
(1)在python2里有一个中文文件test如下
f = open('test','rb')
print(f.read())//会报错,python默认是ASCII编码,里面的中文编码不了,需要用万国码(unicode/utf8等来编码,所以文件里的所有数据类型都相同编码方式来编码的)
f = open('test','rb',encoding='utf8') //打开正常,能全部备utf8编码成bytes字节
(2)对python2来说,编译到内存上的只有二种数据类型:str类型与unicode类型,对应内存里存的值是bytes与unicode值
1.类型str存的是字节(bytes) #coding:utf-8 //这是一个字符,这是用utf8编码的,中文用utf8编码成3个字节,英文是一个字节,这是utf8给这个变为二进制的格式 s='丹丹hello' //查看s存在内存是什么样的? print repr(s) // xe8xa2x81xe6xb5xa9hello(这是用utf8来进行编码的,这里面有中文) print len(s)//11个字节来存的 print type(s)//这个s存的是字节,但它的类型是str 2.类型unicode存的是unicode(所以在Py2中unicode是一个数据类型也是编码) s=u'丹丹hello'//改为unicode类型 print repr(s)//u'8881u6d69hello'这是用unicode来进行编码的,这个编码的是世界唯一,而对于utf8 print type(s)--unicode
(3)python2.x与python3.x对比
1.过程
2.实例
3.总结
2.4 编码拾遗
数据存磁盘如何存?运行是如何运行的?
只要运行程序,就是从磁盘移到内存,这不是解释器做的,是操作系统拿的,直接把磁盘存的字节码复到内存里
python3解释器就来读内存的字节码文件去执行,由于CPU执行的是01010,它的上一层必须是unicode,所以这个字节码由解释器先转成unicode才能执行