说起python ,首先不得不提及ABC语言。ABC语言是一种专门为非专业程序员设计的教学语言,这是一种交互式,结构化高级语言,旨在替代BASIC,Pascal等语言,用于教学及原型软件设计。作为曾经参与ABC语言设计多年的荷兰数学和计算机科学研究学会的吉多·范罗苏姆深感创造一门新的语言的必要性。失败是成功之母,大浪淘沙,ABC语言早已不见了踪迹,但是python语言却火遍全球。
据说是1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本解释程序。有人闲的没事去打游戏去吃喝玩乐去摆烂,有的人无聊的时候创造了一种新的语言。每个人的世界都是一个圆,学习是半径,半径越大,拥有的世界就越广阔。学习使人快乐,让人成长。python之父就是这样的一个人。学习和工作让他感到快乐,所以他假期里的休闲方式就是开发脚本解释程序。
python在一些方面的优点我个人是很认可的:
(1)Python采用强制缩进的方式使得代码具有较好可读性。而Python语言写的程序不需要编译成二进制代码。Python的作者设计限制性很强的语法,使得不好的编程习惯(例如if语句的下一行不向右缩进)都不能通过编译。其中很重要的一项就是Python的缩进规则。一个和其他大多数语言(如C)的区别就是,一个模块的界限,完全是由每行的首字符在这一行的位置来决定(而C语言是用一对大括号“{}”(不含引号)来明确的定出模块的边界,与字符的位置毫无关系)。通过强制程序员们缩进(包括if,for和函数定义等所有需要使用模块的地方),Python确实使得程序更加清晰和美观。在这一点,笔者感触很深。因为我一开始先学的C语言,经常因为括号对不上出问题。
(2)Python标准库确实很庞大。它可以帮助处理各种工作,包括正则表达式、文档生成、单元测试、线程、数据库、网页浏览器、CGI、FTP、电子邮件、XML、XML-RPC、HTML、WAV文件、密码系统、GUI(图形用户界面)、Tk和其他与系统有关的操作。这被称作Python的“功能齐全”理念。除了标准库以外,还有许多其他高质量的库,如wxPython、Twisted和Python图像库等等。
(3)说起科学计算,首先会被提到的可能是MATLAB。除了MATLAB的一些专业性很强的工具箱还无法被替代之外,MATLAB的大部分常用功能都可以在Python世界中找到相应的扩展库,就比如数学统计函数corr,有的都有。这个前天我们还在用。
在数模赛事跑数据的时候,python脚本经常因为运行速度较慢而为人诟病。这也是没办法的事情python程序在执行时,编译器不知道变量的类型;而且python的对象模型会导致访问内存效率低下。你写脚本开发时间很短,在运行时间上就要付出代价。
脚本(Script),是使用一种特定的描述性语言,依据一定的格式编写的可执行文件。
脚本语言又被称为扩建的语言,或者动态语言,是一种编程语言,用来控制软件应用程序,脚本通常以文本(如ASCII)保存,只在被调用时进行解释或编译。