一、为什么要选择python作为学习语言:
各个语言的对比:
C和python、java、C#等
C语言:代码编译得到机器码,机器码在处理器上直接执行,每一条指令控制cpu工作
其他语言:代码编译得到字节码,虚拟机执行字节码并转换成机器码后再在处理器上执行。
其他语言比c语言在执行过程中多一步“编译成字节码”,所以c语言快。
既然c那么牛,为什么要学其他语言。因为如果用c实现一个简单功能,需要上百行代码,而高级语言只需要10行代码。
如果功能要求非常非常关心性能,就需要用c写了。
其他语言进行对比:
python、java、php、c#
没有太多底层的比较。
1.它们各自有擅长领域,2.先入为主的概念。
java用于企业级应用。相对于其他语言还是快些。
php 管理系统
python跟其他语言比还是慢一些,有的时候慢、有的时候不慢,GIL,python全局解释器锁(GLOBAL INTERPRETER LOCK)。
python目前Linux自带,所以运维学的多。
python的种类:
cpython c语言
jpython java语言
ironpython c#语言
对于上面多种python,程序猿在写代码的时候没有任何不同。只有在执行代码的时候有区别。
举例:
cpython 在执行时,生成.pyc的机器码。然后再把.pyc编译成机器码执行。
jpython在执行时,把你的写的python语言,用java的解释器去解释,解释成java认识的字节码,然后在转成机器码最后被cpu调用。
ironpython 用c#解释器
cpython比其他种类的快。
但是实际用的时候,根据情况而采用不同版本的,比如写java程序的接口,java认识的字节码就更快。
还有一个比较特殊的pypy,早晚会火,为什么?因为它快。
p y p y快跟机器码有关,它有自己的解释器。
解释python语言时,解释成py认识的字节码紧接着转换成机器码,也就说c语言生成的.pyc为字节码文件。而p ypy在编译的时候,存的文件就直接就是机器码。
二、执行python程序的内部过程
内部使用open(),read()方法打开文件读入内存。
语法分析
词法分析
语法、词法分析没有问题在读入内存。
然后内部用if语句进行判断,如果是函数怎么编译成字节码,如果是类怎么编译成字节码...
执行时,再调用python解释器将字节码转成机器码。
三、python解释器
在程序文件开头第一行
#!/usr/bin/env python
这句话的意思是在你执行这个程序文件时,调用/usr/bin/env python 程序去执行。这个程序,就称为解释器。
四、内部编码
python解释器在加载.py文件中的代码时,会对内容进行编码(默认ascill)
ASCII(American Standard Code for Information Interchage,美国标准信息交换码)是基于拉丁字幕的一套电脑编码系统,主要用于显示现代应用和其他西欧语言,最多只能用8位来表示(一个字节),即:2**8 = 258 ,所以,ASCII码最多只能表示256个符号。
对于python一切书屋都是对象,对象基于类创建的:
1.一切事物都是对象,对象是由类创建的
类创建对象:创建了对象和给对象一个指引到类的指引标志。告诉类,如果用类的某些功能,通过这个指引标记找到类,类来执行。
原文:http://www.cnblogs.com/zhming26/p/5332604.html