zoukankan      html  css  js  c++  java
  • 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)            

  • 相关阅读:
    华为平板暴力禁用wifi
    传输层与数据层架构一二谈
    内外网访问控制设计
    机房通信网设计
    list add元素覆盖之前元素问题思考
    IIS8无法调用Oracle.DataAccess .dll问题
    线程令牌
    Socket解决粘包问题2
    Socket解决粘包问题1
    Socket异步通信学习三
  • 原文地址:https://www.cnblogs.com/linux-chenyang/p/6265390.html
Copyright © 2011-2022 走看看