云计算学习教程,Python自动化运维开发实战

都忘记是什么时候知道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. 面向对象

面向对象的程序设计抽象出对象的行为和属性,把行为和属性分离开,但是又合理的组织在一起。它消除了保护类型、抽象类、接口等面向对象的元素,使得面向对象的概念更容易理解。

  1. 简单

没有分号,使用缩进的方式分隔代码,代码简洁,短小,易于阅读。

  1. 内置数据结构

类似于Java中集合类的功能。python的数据结构包括元组,列表,字典等。元组相当于“只读”的数组,列表可以作为可变长度的数组使用,字典相当于java中的hashtable类型。

  1. 健壮

提供异常退出机制,能捕获程序的异常情况。

  1. 跨平台

python会先先编译成与平台相关的二进制码,然后再解释执行,这种方式和java类似。

  1. 可拓展

python是用c开发的语言,因此可以使用c扩展python,可以给python添加新的模块、新的类。同时python可以嵌入到c,c++语言开发的项目中,使语言具备脚本语言的特性。

  1. 动态

python不需要另外声明变量,直接赋值即可以创建一个新的变量。

  1. 强类型语言

python会根据赋值表达式的内容决定变量的数据类型。python在内部建立了管理这些变量的机制,出现在同一个表达式的不同类型的变量需要做类型转换。

  1. 应用广泛

python有许多第三方的库支持。例如:PIL库应用于图像处理,numpy库应用于数学计算,wxpython库应用于GUI程序的设计,Django库应用于web程序的开发等。

  1. 解释型语言

就是脚本了

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! 

               名可名, 请常名

一些比较有名的网站或应用

还有比openstack更有名的python应用吗?

下面一些是用python进行开发,有一些在部分业务或功能上使用到了python,还有的是支持python作为扩展脚本语言,数据大部分来自Wikepedia和Quora。

Reddit - 社交分享网站,最早用Lisp开发,在2005年转为python

Dropbox - 文件分享服务

豆瓣网 - 图书、唱片、电影等文化产品的资料数据库网站

Django - 鼓励快速开发的Web应用框架

Fabric - 用于管理成百上千台Linux主机的程序库

EVE - 网络游戏EVE大量使用Python进行开发

Blender - 以C与Python开发的开源3D绘图软件

BitTorrent - bt下载软件客户端

Ubuntu Software Center - Ubuntu 9.10版本后自带的图形化包管理器

YUM - 用于RPM兼容的Linux系统上的包管理器

Civilization IV - 游戏《文明4》

Battlefield 2 - 游戏《战地2》

Google - 谷歌在很多项目中用python作为网络应用的后端,如Google Groups、Gmail、Google Maps等,Google App Engine支持python作为开发语言

NASA - 美国宇航局,从1994年起把python作为主要开发语言

Industrial Light & Magic - 工业光魔,乔治·卢卡斯创立的电影特效公司

Yahoo! Groups - 雅虎推出的群组交流平台

YouTube - 视频分享网站,在某些功能上使用到python

Cinema 4D - 一套整合3D模型、动画与绘图的高级三维绘图软件,以其高速的运算和强大的渲染插件著称

Autodesk Maya - 3D建模软件,支持python作为脚本语言

gedit - Linux平台的文本编辑器

GIMP - Linux平台的图像处理软件

Minecraft: Pi Edition - 游戏《Minecraft》的树莓派版本

MySQL Workbench - 可视化数据库管理工具

Digg - 社交新闻分享网站

Mozilla - 为支持和领导开源的Mozilla项目而设立的一个非营利组织

Quora - 社交问答网站

Path - 私密社交应用

Pinterest - 图片社交分享网站

SlideShare - 幻灯片存储、展示、分享的网站

Yelp - 美国商户点评网站

Slide - 社交游戏/应用开发公司,被谷歌收购

关于python版本

下面是摘自官方wiki的一段话,总之能用python3就用3吧

        What are the differences?

Short version: Python 2.x is legacy, Python 3.x is the present and future of the language

Python 3.0 was released in 2008. The final 2.x version 2.7 release came out in mid-2010, with a statement of extended support for this end-of-life release. The 2.x branch will see no new major releases after that. 3.x is under active development and has already seen over five years of stable releases, including version 3.3 in 2012, 3.4 in 2014, and 3.5 in 2015. This means that all recent standard library improvements, for example, are only available by default in Python 3.x.

原文地址:https://blog.51cto.com/14214237/2391918

时间: 2024-08-06 21:01:10

云计算学习教程,Python自动化运维开发实战的相关文章

云计算开发教程:Python自动化运维开发实战流程控制

今天这篇文章是给大家分享一些云计算开发教程,今天讲解的是:Python自动化运维开发实战流程控制. Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块. Python程序语言指定任何非0和非空(null)值为true,0 或者 null为false. if 语句用于控制程序的执行,基本形式为: if 判断条件: 执行语句-- else: 执行语句-- 其中"判断条件"成立时(非零),则执行后面的语句,而执行内容可以多行,以缩进来区分表示同一范

云计算Python自动化运维开发实战:行和缩进

学习Python时,遇到的第一个需要注意的地方是,不使用括号来表示代码的类和函数定义块或流程控制.代码块是由行缩进,这是严格执行表示方式. 缩进位的数目是可变的,但是在块中的所有语句必须缩进相同的量.在这个例子中,两个功能块都很好使用: if True: print "True" else: print "False" 在本例中的第二块将产生一个错误: if True: print "Answer" print "True"

好程序员分享Python自动化运维开发实战五-运算符与表达式

导语: 1.什么是运算符 2.什么是表达式 3.python运算符分类 4.python运算符优先级 什么是运算符: 运算符用于执行程序代码运算,会针对一个以上操作数项目来进行运算.例如:2+3,其操作数是2和3,而运算符则是“+”. 什么是表达式: 表达式,是由数字.运算符.数字分组符号(括号).自由变量和约束变量等以能求得数值的有意义排列方法所得的组合.约束变量在表达式中已被指定数值,而自由变量则可以在表达式之外另行指定数值. PYTHON运算符分类: 算术运算符 比较(关系)运算符 赋值运

Python自动化运维开发活动沙龙(2015-07-11周六)

Python自动化运维开发活动沙龙 2015-07-11(周六) 场地限制,最多仅限50人参加,报名从速! 亲,已是2015年了,做为运维工程师的你还在手动装机器.配服务.看监控.帮开发人肉上线么?还在发愁如何把每天重复的工作自动化起来么?还在想对开源软件进行二次开发定制却无能为力么?还在对开发人员提出的各种无理需求想进行反驳却因为自己不懂开发却被人鄙视么?还在为自己天天努力工作.到处救火却每月只能挣个十来K而感到不爽么? Maybe yes,maybe no! 但是不要不爽了,你的工资不高是因

Python自动化运维Django入门

随着IT运维技术日益更新,近几年运维自动化越来越火,而且学习python的人非常的火爆,尤其是python自动化运维开发,得到了很多前辈的推崇,尤其是老男孩培训中心.老男孩老师.Alex老师等,在这里非常感谢你们. 这里我也记录一下以前学习Django的一点点心得和方法,方便以后自己查阅,如果能帮助初学者是最好的了!好的,其他不多说了,博文滴走起. 一.系统实战环境 系统版本:CnetOS6.5 x86_64 Django版本:Django-1.5.8 MySQL版本:MySQL-5.1.73

Python自动化运维课程学习--Day3

本文为参加老男孩Python自动化运维课程第三天学习内容的总结. 大致内容如下: 1.文件操作 2.字符编码转码相关操作 3.函数 0.关于本文中所有运行Python代码的环境: --操作系统:Ubuntu 16.10 (Linux 4.8.0) --Python版本:3.5.2 python2.7.12 --Python IDE: PyCharm 2016.3.2 一.文件操作: 1.文件操作流程:以只读.写(覆盖写).追加写.读写.追加读写.二进制读写等模式打开文件 ==> 得到文件句柄,并

Python自动化运维课程学习--Day2

本文为参加老男孩Python自动化运维课程第二天学习内容的总结. 大致内容如下: 1.python模块初识 2.python程序运行流程 3.python数据类型(只讲了numbers, bool, strings, bytes, list, tuple, dict, set) 4.python数据运算 0.关于本文中所有运行Python代码的环境: --操作系统:Ubuntu 16.10 (Linux 4.8.0) --Python版本:3.5.2 --Python IDE: PyCharm

电子书 Python自动化运维:技术与最佳实践.pdf

本书在中国运维领域将有"划时代"的重要意义:一方面,这是国内一本从纵.深和实践角度探讨Python在运维领域应用的著作:一方面本书的作者是中国运维领域的"偶像级"人物,本书是他在天涯社区和腾讯近10年工作经验的结晶.因为作者实战经验丰富,所以能高屋建瓴.直指痛处,围绕Python自动化运维这个主题,不仅详细介绍了系统基础信息.服务监控.数据报表.系统安全等基础模块,而且深入讲解了自动化操作.系统管理.配置管理.集群管理及大数据应用等高级功能.重要的是,完整重现了4个

Python+Django+Ansible Playbook自动化运维项目实战

Python+Django+Ansible Playbook自动化运维项目实战网盘地址:https://pan.baidu.com/s/1bZ1Ju0mld3KLZawdxZ7m6Q 密码: 5k9x备用地址(腾讯微云):https://share.weiyun.com/5E7aUWv 密码:wzfdrn 本课程将带你从项目实践角度出发,围绕自动化资产扫描和发现.Ansible自动化任务执行的内容展开,让运维更简单.更高效,Hold住高薪! 适合人群:如果你是一位运维党,对Python运维自动化