zoukankan      html  css  js  c++  java
  • python自动华 (一)

    Python自动化 【第一篇】:Python简介和入门

    Python简介:

    一、什么是python

      Python是一门动态解释性的强类型定义语言

      pythonde 特点:“优雅”、“明确”、“简单”。

    二、Python由来

      python的创始人为吉多·范罗苏姆(Guido van Rossum)。1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承。

    三、目前Python主要应用领域

    • 云计算: 云计算最火的语言, 典型应用OpenStack 
    • WEB开发: 众多优秀的WEB框架,众多大型网站均为Python开发,Youtube, Dropbox, 豆瓣。。。, 典型WEB框架有Django
    • 科学运算、人工智能: 典型库NumPy, SciPy, Matplotlib, Enthought librarys,pandas
    • 系统运维: 运维人员必备语言
    • 金融:量化交易,金融分析,在金融工程领域,Python不但在用,且用的最多,而且重要性逐年提高。原因:作为动态语言的Python,语言结构清晰简单,库丰富,成熟稳定,科学计算和统计分析都很牛逼,生产效率远远高于c,c++,java,尤其擅长策略回测
    • 图形GUI: PyQT, WxPython,TkInter

    四、Python的优缺点

      优点:

        1、Python程序看上去总是简单易懂,初学者容易上手;

        2、开发效率非常高,Python有非常强大的第三方库,降低开发周期;

        3、 高级语言————当你用Python语言编写程序的时候,你无需考虑诸如如何管理你的程序使用的内存一类的底层细节;

        4、可移植性————由于它的开源本质,Python已经被移植在许多平台上(经过改动使它能够工 作在不同平台上);

        5、 可扩展性————你可以把你的部分程序用C或C++编写,然后在你的Python程序中使用它们;

        6、可嵌入性————你可以把Python嵌入你的C/C++程序。

      缺点:

        1、 速度慢;

        2、 代码不能加密;

        3、 线程不能利用多CPU。

    五、Python解释器

      CPython     是使用最广的Python解释器。

      IPython     只是在交互方式上有所增强,但是执行Python代码的功能和CPython是完全一样的。

      PyPy        它的目标是执行速度,PyPy采用JIT技术,对Python代码进行动态编译(注意不是解释),所以可以显著提高Python代码的执行速度。

      Jython       运行在Java平台上的Python解释器。

      IronPython   是运行在微软.Net平台上的Python解释器。

      推荐使用CPython解释器

    六、Python版本

      py2与3的详细区别:

      1、PRINT IS A FUNCTION

        The statement has been replaced with a print() function, with keyword arguments to replace most of the special syntax of the old statement (PEP   3105). Examples: 

      + View Code

      You can also customize the separator between items, e.g.:

    1

    print("There are <", 2**32, "> possibilities!", sep="")

         ALL IS UNICODE NOW,从此不再为讨厌的字符编码而烦恼。

      2、某些库名称改了:

    Old Name

    New Name

    _winreg

    winreg

    ConfigParser

    configparser

    copy_reg

    copyreg

    Queue

    queue

    SocketServer

    socketserver

    markupbase

    _markupbase

    repr

    reprlib

    test.test_support

    test.support

       Python3是趋势,本博文下所有代码都是用Python3编写。

    Python入门:

    一、 Python安装

        1)Windows

          1、下载安装包

              https://www.python.org/downloads/

          2、安装

              默认安装路径:C:python27

          3、配置环境变量

              【右键计算机】--》【属性】--》【高级系统设置】--》【高级】--》【环境变量】--》【在第二个内容框中找到 变量名为Path 的一行,双击】 --> 【Python安装目录追加到变值值中,用 ; 分割】

              如:原来的值;C:python27,切记前面有分号

        

        2)Linux、mac  自带Python2.6,可自行更新至3版本。

    二、 第一个Python程序

      在linux 下创建一个文件叫hello.py,并输入

    1

    print("Hello World!")

      

      然后执行命令:python hello.py ,输出

    1

    2

    3

    localhost:~ jieli$ vim hello.py

    localhost:~ jieli$ python hello.py

    Hello World!

      指定解释器

        上一步中执行 python hello.py 时,明确的指出 hello.py 脚本由 python 解释器来执行。

        如果想要类似于执行shell脚本一样执行python脚本,例: ./hello.py ,那么就需要在 hello.py 文件的头部指定解释器,如下:

    1

    2

    3

    #!/usr/bin/env python

      

    print "hello,world"

        如此一来,执行: ./hello.py 即可。

        ps:执行前需给予 hello.py 执行权限,chmod 755 hello.py

    三、变量字符编码

      1)变量

         1、声明变量:

          

    1

    2

    3

    #_*_coding:utf-8_*_

     

    name = "Poker"

        上述代码声明了一个变量,变量名为: name,变量name的值为:"Poker"。

        

         2、变量定义的规则:

      • 变量名只能是 字母、数字或下划线的任意组合;
      • 变量名的第一个字符不能是数字;
      • 以下关键字不能声明为变量名:
        ['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']    

                 3、变量的赋值

          

    1

    2

    3

    4

    5

    6

    7

    8

    name = "Poker"

     

    name2 = name

    print(name,name2)

     

    name = "Jack"

     

    print("What is the value of name2 now?")

      2)字符编码

        python解释器在加载 .py 文件中的代码时,会对内容进行编码(默认ascill)

        ASCII(American Standard Code for Information Interchange,美国标准信息交换代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧      语言,其最多只能用 8 位来表示(一个字节),即:2**8 = 256-1,所以,ASCII码最多只能表示 255 个符号。

             显然ASCII码无法将世界上的各种文字和符号全部表示,所以,就需要新出一种可以代表所有字符和符号的编码,即:Unicode

        UTF-8,是对Unicode编码的压缩和优化,他不再使用最少使用2个字节,而是将所有的字符和符号进行分类:ascii码中的内容用1个字节保存、欧洲的字符用2个字节保         存,东亚的字符用3个字节保存.

      3)注释

        当行注视:# 被注释内容

        多行注释:""" 被注释内容 """

    四、 用户输入

    1

    2

    3

    4

    5

    6

    7

    #!/usr/bin/env python

    #_*_coding:utf-8_*_

     

     

    #name = raw_input("What is your name?") #only on python 2.x

    name = input("What is your name?")

    print("Hello " + name )

        输入密码时,如果想要不可见,需要利用getpass 模块中的 getpass方法,即:

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    #!/usr/bin/env python

    # -*- coding: utf-8 -*-

      

    import getpass  

    # 将用户输入的内容赋值给 name 变量

    pwd = getpass.getpass("请输入密码:") 

    # 打印输入的内容

    print(pwd)

    五、字符串及格式化输出

      万恶的字符串拼接:

      python中的字符串在C语言中体现为是一个字符数组,每次创建字符串时候需要在内存中开辟一块连续的空,并且一旦需要修改字符串的话,就需要再次开辟空间,万恶的+号每出现一次就会在内从中重新开辟一块空间。

      

    字符串格式化输出

    1

    2

    3

    4

    name = "poker"

    print "i am %s " % name

      

    #输出: i am poker

      PS: 字符串是 %s;整数 %d;浮点数%f     或者用 format方法

    六、流程控制

      if。。。else  、  for loop  、   while loop

      1)if。。。else   

        需求一:用户身份认证

    1
    2
    3
    4
    5
    6
    7
    8
    9
    #!/usr/bin/env python
    #-*- coding:utf-8 -*-
    import getpass
    name = raw_input("请输入用户名:")
    pwd = raw_input("请输入密码:")
    if name == "tianshuai" and pwd == "123":
        print "登录成功"
    else:
        print "登录失败"

         测试:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    root@tim:/home/tim# python tianshuai.py
    请输入用户名:tianshuai
    请输入密码:
    登录成功
    root@tim:/home/tim# python tianshuai.py
    请输入用户名:tianshuai
    请输入密码:
    登录失败
    root@tim:/home/tim#

     

      2) for loop      

        需求一:循环十次,但是遇到小于5的循环次数就不走了,直接跳入下一次循环

    1

    2

    3

    4

    for i in range(10):

        if i<5:

            continue #不往下走了,直接进入下一次loop

        print("loop:", i )

        需求二:还是上面的程序,但是遇到大于5的循环次数就不走了,直接退出

    1

    2

    3

    4

    for i in range(10):

        if i>5:

            break #不往下走了,直接跳出整个loop

        print("loop:", i )

      

        需求三、猜数字游戏       有3次机会,如果3次中没有猜中给予提示,3次都没有猜中,鼓励!

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    #!/usr/bin/env python
    #-*- coding:utf-8 -*-
    import random   #随机模块
    rand_num = random.randrange(10)
      
    for in range(3):
        guess_num = int(raw_input("请猜测数字:"))
        if guess_num == rand_num:
            print "太棒了你猜对了"
            break
        elif guess_num > rand_num:
            print "你猜测的有点大了,请尝试小点的数字"
        else:
            print "你猜测的有点小了,请尝试大点的数字"
    else:
        print "不要灰心,这次只是运气不好,请下次尝试"
      
    print "这个真正的数字是:%" % rand_num

       3)while  loop

        他的原理是:当条件为真的时候运行,当条件为假的时候停止!

        无限循环

    1

    2

    3

    4

    5

    count = 0

    while True:

        print("花儿也谢了...",count)

        count +=1

        

    没有一个规定次数,不设置条件永远循环下去。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    #!/usr/bin/env python
    #-*- coding:utf-8 -*-
    import time
    count = 0
    while True:
        count +=1
        print "loop",count
        time.sleep(3)
    #这个循环3秒钟自+1 ,后无线循环只要这个条件为”真“,就无限循环下去
    那看下下面的例子
    #!/usr/bin/env python
    #-*- coding:utf-8 -*-
      
    import time
    cout = 0
      
    while cout < 3:
        cout +=1
        print "shuai",cout
        time.sleep(3)
          
    #这个循环每3秒循环一次,当条件cout < 3的时候为真(自己设置的条件),当cout 不小于3的时候为假(false)停止。
  • 相关阅读:
    UPC2018组队训练赛第二场
    杭电多校训练第十场
    socks5 代理
    windows pip 报错Unable to find vcvarsall.bat
    emacs笔记
    homestead oci8
    pyenv install
    chrome 设置sock5代理
    laravel 接收post json
    laravel 使用已有数据库自动创建model
  • 原文地址:https://www.cnblogs.com/honey01/p/7201532.html
Copyright © 2011-2022 走看看