Python_oldboy_自动化运维之路(一)

python简介:

  Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。

  Python 的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号,它具有比其他语言更有特色语法结构。

python特点:

  • 1.易于学习:Python有相对较少的关键字,结构简单,和一个明确定义的语法,学习起来更加简单。

  • 2.易于阅读:Python代码定义的更清晰。

  • 3.易于维护:Python的成功在于它的源代码是相当容易维护的。

  • 4.一个广泛的标准库:Python的最大的优势之一是丰富的库,跨平台的,在UNIX,Windows和Macintosh兼容很好。

  • 5.互动模式:互动模式的支持,您可以从终端输入执行代码并获得结果的语言,互动的测试和调试代码片断。

  • 6.可移植:基于其开放源代码的特性,Python已经被移植(也就是使其工作)到许多平台。

  • 7.可扩展:如果你需要一段运行很快的关键代码,或者是想要编写一些不愿开放的算法,你可以使用C或C++完成那部分程序,然后从你的Python程序中调用。

  • 8.数据库:Python提供所有主要的商业数据库的接口。

  • 9.GUI编程:Python支持GUI可以创建和移植到许多系统调用。

  • 10.可嵌入: 你可以将Python嵌入到C/C++程序,让你的程序的用户获得"脚本化"的能力

编译型和解释型:

  编译型语言:在程序执行之前,先会通过编译器对程序执行一个编译的过程,把程序转变成机器语言。运行时就不需要翻译,而直接执行就可以了。最典型的例子就是C语言。

    优缺点:速度快,不用翻译,底层应用,不跨平台,开发效率低,比如C,C++,Go,swift

  解释型语言:是在运行的时候将程序翻译成机器语言,所以运行速度相对于编译型语言要慢

    优缺点:跨平台,快速部署,比如ruby,python,php,pel

python环境部署:

  http://list.youku.com/albumlist/show?id=28961509&ascending=1&page=1

字符编码介绍:

  http://www.cnblogs.com/skynet/archive/2011/05/03/2035105.html

  引用一个小故事:古代打仗通讯有三种方法,千里马,飞鸽传书,烽火台,就拿烽火台的通讯方法举例子,假如敌人来了,需要在烽火台点狼烟让友军知道有敌人来袭,但是怎么能利用最少的狼烟来精确的表示共有多少个敌人来袭,让友军知道好派相应的人数来支援。

  

  备注:0表示不点,1表示点狼烟

  由上表可以看出,可以用8根狼烟就能准确的代表1~256个人,以此类推。

  9根可以表示2的9次方个敌人约为512人

  10根可以表示2的10次方个敌人约为1024个

  15根可以表示2的15次方个敌人约为32768个人

  16根就可以表示六万多人~~~~

   

  ASCII字符代码表:

 

  

  十进制:128  64  32  16  8  4  2  1  

  二进制:1  1  1  1  1  1  1  1  1

  换算说明:8位等于1字节,1字节就可以存1个accii码。

  

  举例说明:

  十进制48表示的符号是数字0,二进制的表示就是:00110000

  十进制55表示的符号是数字7,二进制的表示就是:00110111

  那么007在计算机语言的表示就是001100000011000000110111

python基础语法:

  Window上在安装Python时已经已经安装了默认的交互式编程客户端,快捷键,idle,提示窗口如下:

  

练习:

【字符串】

>>> name = "lijun"

>>> name
'lijun'
>>> name[0]
'l'
>>> name[0:3]
'lij'
>>> name[0:4]                            //顾头不顾尾
'liju'

>>> name
'lijun'
>>> age
23
>>> msg="my name is %s and i am %s years old"          //空出变量名:%s
>>> msg
'my name is %s and i am %s years old'
>>> msg="my name is %s and i am %s years old" % (name,age)
>>> msg
'my name is lijun and i am 23 years old'

 【列表】

>>> names = []
>>> names
[]
>>> names = ["chenlijun","liyongsan","panglicai"]          //设置列表
>>> names
['chenlijun', 'liyongsan', 'panglicai']
>>> names[1]                           //显示列表第二个名
'liyongsan'
>>> names[1]="fanyafeng"                     //修改列表第二个名字
>>> names
['chenlijun', 'fanyafeng', 'panglicai']
>>> names.append("yongsan")                   //列表增加一个
>>> names
['chenlijun', 'fanyafeng', 'panglicai', 'yongsan']
>>> names.insert(1,"lijun")                     //在列表第二个前插入lijun
>>> names
['chenlijun', 'lijun', 'fanyafeng', 'panglicai', 'yongsan']
>>> del names[1]                          //删除列表第二个名字
>>> names
['chenlijun', 'fanyafeng', 'panglicai', 'yongsan']          
>>> names.remove("panglicai")                   //删除指定的名字
>>> names
['chenlijun', 'fanyafeng', 'yongsan']
>>> names.index("yongsan")                    //查找列表yongsan的序列号
2
>>> names[2]="liyongsan"                     //根据序列修改名字
>>> names
['chenlijun', 'fanyafeng', 'liyongsan']

>>> names[names.index("chenlijun")]="lijun"            //修改名字,套用变量
>>> names
['lijun', 'fanyafeng', 'liyongsan']

>>> names.append("lijun")
>>> names
['lijun', 'fanyafeng', 'liyongsan', 'lijun']
>>> names.count("lijun")                      //计数重复的名字
2

>>> names.sort()                          //排序
>>> names
['fanyafeng', 'lijun', 'lijun', 'liyongsan']

>>> names
['liyongsan', 'lijun', 'lijun', 'fanyafeng', '4', '!']

>>> names[:5]
['liyongsan', 'lijun', 'lijun', 'fanyafeng', '4']
>>> names[:3]
['liyongsan', 'lijun', 'lijun']
>>> names[:-1]
['liyongsan', 'lijun', 'lijun', 'fanyafeng', '4']
>>> names[0:-1]
['liyongsan', 'lijun', 'lijun', 'fanyafeng', '4']
>>> names
['liyongsan', 'lijun', 'lijun', 'fanyafeng', '4', '!']
>>> names[0:-1:1]
['liyongsan', 'lijun', 'lijun', 'fanyafeng', '4']
>>> names[0:-1:2]
['liyongsan', 'lijun', '4']
>>> names
['liyongsan', 'lijun', 'lijun', 'fanyafeng', '4', '!']

【打印输入的内容】

name = input("name:")
age = input("age:")
job = input("job:")

info = '''-----personal info-------
NAME:%s
AGE:%s
JOB:%s
''' %(name,age,job)

print(info)

 1 name = input("youername:")
 2 age = input("youerage:")
 3 job = input("youerjob:")
 4 
 5 info = ''' ---personal info----------
 6 NAME:%s
 7 AGE:%s
 8 JOB:%s
 9 '''%(name,age,job)
10 print (info)

循环:

【for循环】

1 for i in range(5):
2     print ("look", i)

1. 输入密码场景,判断用户名和密码都输入成功,则显示登陆成功,用户名是xiaoyu则不让登陆

 1 user = "chenlijun"
 2 passwd = "lijun"
 3 newuser = input("name:")
 4 newpasswd = input("passwd:")
 5 if user == newuser and passwd == newpasswd:
 6     print ("登陆成功!")
 7 elif newuser == "xiaoyu":
 8     print ("%s已经被拉进黑名单,直到海枯石烂都不让登陆!" %(newuser))
 9 else:
10     print ("登陆失败!")

2. 最多让输入三次,输入两次成功则显示成功

 1 user = "chenlijun"
 2 passwd = "lijun"
 3 
 4 for i in range(3):
 5     newuser = input("name:")
 6     newpasswd = input("passwd:")
 7     if user == newuser and passwd == newpasswd:
 8         print ("登陆成功!")
 9         break
10     elif newuser == "xiaoyu":
11         print ("%s已经被拉进黑名单,直到海枯石烂都不让登陆!" %(newuser))
12         break
13     else:
14         print ("登陆失败!")

3. 输入三次都没有登陆成功,则显示被锁定

 1 user = "chenlijun"
 2 passwd = "lijun"
 3 
 4 for i in range(3):
 5     newuser = input("name:")
 6     newpasswd = input("passwd:")
 7     if user == newuser and passwd == newpasswd:
 8         print ("登陆成功!")
 9         break
10     elif newuser == "xiaoyu":
11         print ("%s已经被拉进黑名单,直到海枯石烂都不让登陆!" %(newuser))
12         break
13     else:
14         print ("登陆失败!")
15 else:
16     print ("你已经被CIA,CHIA锁定,直到海枯石烂也不能登陆!")

【while循环】

备注:前面必须是.  表示空格,否则报错。

1. 要求程序每10s运行一次

1 import time              #导入time模块
2 count = 0               #设置议题计数器
3 while True:              #假如条件为真,就执行以下代码
4     count += 1            #每次循环+1
5     print ("loop", count)
6     time.sleep(10)          #间隔10s,永远会执行下去。

2. 当程序到某个条件时,将不在执行下去。

1 count = 0
2 run = True
3 while run:
4     count += 1
5     print ("loop", count)
6     if count == 4:
7         run = False
8     time.sleep(10)

 3.continue的用法,跳过循环。

1 for i in range(10):
2     if i%2 == 0:
3         continue        
4     print ("这个是奇数", i)            

原文地址:https://www.cnblogs.com/linux-chenyang/p/6265390.html