编程语言及Python的特点
编程语言的原理
计算机程序设计语言通过对所有的信息进行数字化处理,为每一个字母、字符进行编码,用计算机指令与计算机进行交互。计算机中的大规模集成电路传输的是由电信号转换成的一串串的数字信号1 和0,因此机器语言就是最原始的1和0的数码串,存储器的地址、存储的内容、运算的内容都是一串串的1 和0。要是和它说“你好”,它可听不懂,必须说“你;好”(“你好”的16 进制机器编码),它才能明白。那么问题来了,人是用自然语言进行沟通的,而且也记不住这么多的机器代码,这要想让机器干点事情可真是太费劲了。
于是,人们发明了汇编语言,将难以记忆的机器码编写成相对易于记忆的助记符,例如,将某个数据1234H(十六进制数,相当于十进制4660)放入寄存器当中,采用的是MOV指令,即MOV AX,1234H。对应的机器码为:B83412。这就像邮递员送信,在机器码当中,需要告诉他精确的地理位置,即东经、北纬的度数;到了汇编语言,相当于我们给这个地理位置取了一个地名;到了高级语言,可以写成name=4660,该信息传递的方式可以看作电子邮件,我们关心的是将这个值(4660)送给了谁(name),至于这个电子邮件存在哪个公司的哪个存储器上我们是不用关心的。
编程语言用于开发计算机程序,如开发操作系统、创建网站、进行科学计算等。不管哪种编程语言,最终都要“翻译”成机器语言。不同的编程语言在完成同一任务时,所需要的代码量各不相同。例如,C语言要写1000行代码,Java只需要写100行,而Python可能只要20行。
不同的编程语言所擅长的领域不同。偏向底层开发(硬件或操作系统)的C语言功能强大,速度快,但编写复杂;手机应用App有特定的语言,对于iPhone,使用Swift/Objective-C,针对Android则使用Java;写3D游戏,为了保证运行速度,一般采用C语言或C++。而Python作为一种高级计算机语言,它目前在网站、网络游戏后台、人工智能等方面获得了广泛应用。如YouTube、Instagram,还有国内的豆瓣就是用Python开发的,很多大公司,包括Google、Yahoo等,甚至NASA(美国国家航空航天局)都大量地使用Python。
Python在著名的编程语言排行榜TIOBE中,属于最近20年最常用的10种编程语言之一(大约有600多种语言)。TIOBE排行榜如图1-3所示。
图1-3 TIOBE 排行榜
Python在以下领域占有极重要的地位:数据分析和AI、网络攻防的黑客语言、编程入门教学、云计算系统管理。另外,Python也是Web开发、游戏脚本、计算机视觉、物联网管理和机器人开发的主流语言之一。把近20年的编程语言进行对比可以发现,Python在2018年已经成为排名第四的语言,紧逼C++的地位。随着Python用户的不断增长,它还有机会在多个领域里发挥更大的作用。
Python 的特点
Python的创始人是Guido van Rossum(吉多·范罗苏姆),之所以定义为Python,是因为他是Monty Python(巨蟒)喜剧团的爱好者。1989年的圣诞节期间,为了打发无聊的时光,Guido决心开发一个新的脚本解释程序,作为ABC语言(他前期参与开发的一种教学式语言)的一种继承,并作为一种开放式的语言来面向大众。1991年第一个公开版发行,Guido给Python的定位是“优雅”“明确”“简单”。Python常被大家称之为胶水语言,它能够很轻松地把用其他语言制作的各种模块(尤其是C/C++)连接在一起,让非计算机专业的人也能很容易地入门,把各种基本程序元件拼装在一起,协调运作。
Python入门容易,简单易用。它的语法规则更接近人类的语言,语句比较容易看懂,具有较高的可阅读性;Python提供了非常完善的基础代码库,覆盖了网络、文件、GUI(图形用户接口)、数据库、文本等大量内容。这样我们在用Python开发时就不用从零编写,直接使用现成的即可。非计算机专业的人也可以很快地编写出一些完成日常任务的程序,例如,自动备份MP3,做个微信自动回答程序等。
Python也有它的缺点。相比C语言,Python的运行速度非常慢。这是因为Python是解释型语言,程序执行时需要逐行翻译成机器码,而C语言运行的是编译好的直接可以理解的机器码。但在一般应用中,这种速度上的差距并不影响用户的使用效果。例如,从网上下载一个文件是0.001秒和0.1秒的差别,由于网速的关系,这个差别是可以忽略不计的。第二个缺点是Python不能加密,不过现在很多程序都是开源程序,目前是服务重于软件,因此也无须担心其商业价值问题。