高级运维工程师在线评测:http://www.gtalent.cn/exam/interview/nsYteJ5wFfWkMdb2
导语
都忘记是什么时候知道python的了,我是搞linux运维的,早先只是知道搞运维必须会shell,要做一些运维自动化的工作,比如实现一些定时备份数据啊、批量执行某个操作啊、写写监控脚本什么的。
后来发现工作量大的时候shell开始变慢,实现某个功能使用shell感觉力不从心,听人说python能实现shell能做的一切功能,而且开发效率高,速度快,慢慢的就认识了python,多多少少看点简单的东西。
印象最深的是花几天时间把《python简明手册》看完后,感觉python很简单,特二的认为自己会python了,尴尬的在后面,发现我只是学了点python的基础,现在看来连皮毛都算不上。
都说python简单,可能是对专业的开发人员来讲吧,我作为一个搞运维的对编程真的是不感冒,发现python真的是博大精深,好难,东西好多,学不完,不过还好,我们运维工程师不用搞那么多。
算了,发发牢骚,不扯淡了,上正题。
python是什么?
简单点,一门计算机编程语言,属于高级语言中的脚本语言,几乎什么都能做,比如写图形界面、做网站后台、写c/s架构的服务软件、写类似于shell但比shell强大好多倍的自动化运维工具、还能作为很多语言的胶水语言使用,虽然不能直接操作底层硬件,但是他能调用其他低级语言类库,比如c/c++等。太多,这里不一一赘述,总之你想学编程,想体验一下编程的快感,选python就对了,入门相当容易,呵呵,后面不容易,现在才知道具备类似c语言的开发功底有多么难得,上大学没好好学,现在自己啃硬骨头,又跑题儿了。不过别怕,只要功夫深、铁杵磨成针!
python历史
关于python的历史,起码应该知道guido吧,人称龟叔,曾就职于google,现在dropbox,一家做云存储的公司,最近也没了解过他了,没准儿换地方儿了呢,呵呵。他很nb,你想他的nb之处就没法玩儿了。他希望有一种语言,能像C语言那样,全面调用计算机的功能接口,又可以像shell那样轻松的编程,找到一种叫ABC的语言,后来觉得人家别人写(他自己也参与开发了)的语言不好用,就自己用c语言写了一个。
1991年开发出来的,发展到现在在云计算、自动化运维、人工智能等方面没有什么语言能干掉它了。不管未来怎样,python的历史已经可以当小说读读就算了。
python特性
1. 面向对象
面向对象的程序设计抽象出对象的行为和属性,把行为和属性分离开,但是又合理的组织在一起。它消除了保护类型、抽象类、接口等面向对象的元素,使得面向对象的概念更容易理解。
2. 简单
没有分号,使用缩进的方式分隔代码,代码简洁,短小,易于阅读。
3. 内置数据结构
类似于Java中集合类的功能。python的数据结构包括元组,列表,字典等。元组相当于“只读”的数组,列表可以作为可变长度的数组使用,字典相当于java中的hashtable类型。
4. 健壮
提供异常退出机制,能捕获程序的异常情况。
5. 跨平台
python会先先编译成与平台相关的二进制码,然后再解释执行,这种方式和java类似。
6. 可拓展
python是用c开发的语言,因此可以使用c扩展python,可以给python添加新的模块、新的类。同时python可以嵌入到c,c++语言开发的项目中,使语言具备脚本语言的特性。
7. 动态
python不需要另外声明变量,直接赋值即可以创建一个新的变量。
8. 强类型语言
python会根据赋值表达式的内容决定变量的数据类型。python在内部建立了管理这些变量的机制,出现在同一个表达式的不同类型的变量需要做类型转换。
9. 应用广泛
python有许多第三方的库支持。例如:PIL库应用于图像处理,numpy库应用于数学计算,wxpython库应用于GUI程序的设计,Django库应用于web程序的开发等。
10. 解释型语言
就是脚本了
【王老师说运维】:运维之linux基础入门实战(http://www.codeforest.cn/course/443)