云计算培训学院,云计算Python自动化运维开发实战

原文链接:http://www.jianshu.com/p/a8d9d06030de

都忘记是什么时候知道python的了,我是搞linux运维的,早先只是知道搞运维必须会shell,要做一些运维自动化的工作,比如实现一些定时备份数据啊、批量执行某个操作啊、写写监控脚本什么的。后来发现工作量大的时候shell开始变慢,实现某个功能使用shell感觉力不从心,听人说python能实现shell能做的一切功能,而且开发效率高,速度快,慢慢的就认识了python,多多少少看点简单的东西。

印象最深的是花几天时间把《python简明手册》看完后,感觉python很简单,特二的认为自己会python了,尴尬的在后面,发现我只是学了点python的基础,现在看来连皮毛都算不上。都说python简单,可能是对专业的开发人员来讲吧,我作为一个搞运维的对编程真的是不感冒,发现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. 解释型语言

就是脚本了

python核心开发者Tim Peters所总结的“Python之禅”

              The Zen of Python

                  Python 之禅

        Beautiful is better than ugly.

美胜于丑

        Explicit is better than implicit.

显胜于隐

        Simple is better than complex.

简胜于繁

        Complex is better than complicated.

繁胜于杂

        Flat is better than nested.

平胜于迭

        Sparse is better than dense.

疏胜于密

        Readability counts.

读胜于写

        Special cases aren't special enough to break the rules.

规则胜于特例

        Although practicality beats purity.

实用胜于单纯

        Errors should never pass silently.

告错胜于沉默

        Unless explicitly silenced.

沉默胜于吵闹

        In the face of ambiguity, refuse the temptation to guess.

拒绝胜于猜测

        There should be one-- and preferably only one --obvious way to do it.

唯一胜于显然

        Although that way may not be obvious at first unless you're Dutch.

显然不是荷兰

        Now is better than never.

现在胜于永不

        Although never is often better than *right* now.

永不胜于匆猝

        If the implementation is hard to explain, it's a bad idea.

凡值得说,必易于说

        If the implementation is easy to explain, it may be a good idea.

反之则不然

        Namespaces are one honking great idea -- let's do more of those! 

名可名, 请常名

展开阅读全文

没有更多推荐了,返回首页