码迷,mamicode.com
首页 > 编程语言 > 详细

Python简单操作笔记

时间:2014-07-31 02:17:35      阅读:425      评论:0      收藏:0      [点我收藏+]

标签:des   style   blog   http   color   使用   os   文件   

Python
    类型转换
       str(),repr()|format() : 将非字符类型转成子串
       int() : 转为整形
       float() : 转为浮点型

       list(s) : 将字串s转成列表
       tuple(s) : 将字串s转成元组
       set(s) : 将字串s转成集合
       frozenset(s) : 将字串s转成不可变集合
       dict(s) : 创建字典 其d必须是(key,value)的元组序列;

       chr(x) : 将整形转成字符
       ord(x) : 将字符转成整形
       hex(x) : 将整形转换成16进制字符
       bin(x) : 将整形转化成2进制
       oct(x) : 将整形转化成8进制

    数字类型
        Python的数字字面量 : 布尔型,整型,浮点型,复数
            True : 1
            False : 0
    序列类型
        字符类型
            字符串字面量 : 把文本放入单引号、双引号或三引号中(可以实现跨行定义)
        如果需要使用unicode编码,则在字符之前使用u进行标识,etc : u"luowen"

        文档字串 : 模块、类或函数的第一条语句如果是字符的话,该字符串就成为文档语句.必须保持严格的缩进

        字串操作
            str.islower() : 所有字符为小写,
            str.isupper() : 所有字符为大写
            str.upper() : 转换成大写
            str.lower() : 转换小写
            str.capitalize() : 首字母大写
            str.index(s,start) : s字符首次出现位置,start : 从start位置开始找
            str.replace(old,new,replaceTimes) : 字符替换
            str.split(s) : 已s做分割符分割
            s.join(str); : 以s做分割符,将列表组合成字串,str为序列
            str.strip(s) : 清楚一s开头或结尾的字符

    列表操作
        list.append(s); : 将一个元素append到list中 etc demo = [1,2,3] , s = [5,6]  result: [1,2,3,[5,6]]
        list.extend(list1); : 讲一个list1合并list中 result: [1,2,3,5,6]
        list.pop(s) : 将s从list中pop出来
        list.index(s) : 查找list中索引为s的值
        list.remove(s); : 删除列表list中值为s的元素
        list.reverse(); : 将list进行逆序 在原处进行修改 修改地址
        list.sort(); : 将list中的元素进行排序 在原处进行修改 修改地址
        list1 + list2 === list1.extend(list2) : 等同于extend
        s in t1 : 判断s是否在元组t1中
        s not in t1 : 判断s是否不在元组t1中

        列表复制方法
            l1 = [1,2,3,4]
            l2 = l1

            import copy
            l2 = copy.deepcopy(l1)

            l2 = l1[:]

    元组:
        表达式符号 : ()

        容器类型:
            任意对象的有序集合,通过索引访问其中的元素,不可变对象,长度固定,异构,嵌套
        常见操作:
            demo = () : 定义一个空元组
            demo = x,y,z : 定义了一个x y z 的元组
            len(t) : 元组长度
            t1 + t2 : 两个元组合并
            s in t1 : 判断s是否在元组t1中
            s not in t1 : 判断s是否不在元组t1中

    字典 : dict
        字典在其他编程语言中又称作关联数组。
        通过键实现元素存取 : 无序集合 : 可变类型 : 长度可变 : 异构 : 嵌套
        etc.{key1:value1,key2:value2,....}

        空字典
            {},{x : 2323,y:[1,2,3,4]}

            dict1.copy() : 复制dict1字典
            dict1.get(key) : 获取字典中键为key的只
            dict1.pop(x) : 字典中弹出键为x个元素
            dict1.items() : 将字典列表中的数据转换成元组
            dict1.items() : 获取字典中所有的值
            dict1.keys : 获取字典中所有的key
            dict1.popitem() : 随机弹出键和值
            dict1.has_key(x)  : 字典中是否含有键为x
            dict1.update(dict2) : 等同于php中的array_merge() ,dict2中的值会覆盖dict1的值
            iterator = dict1.iteritems() : 获取迭代器 iterator.next();

            zip(tuple1,tuple2); : 将两个元组转成列表[(1,x),(2,y)]

            dict1 = dict(zip(tuple1,tuple2)) : 生成一个字典

    集合SET:
        set1 = set(); : 构造一个set
        len(set1) : 返回s中的项目
        set1.copy : 复制set1集合
        set1.difference(set2) : 求差集 同set1 & set2
        set1.intersection(set2) : 求交际
        set1.isdisjoint(set2) : set1和set2有相同项返回True

    容器、类型、对象
        12、所有对象都有引用计数 sys.getrefcount(obj);
        3、列表和字典都支持潜复制和深复制,浅复制穿件一个新对象,对象里面的存放的对象没有发生变化,深复制:递归的全部复制对象(包括对象内部存放的对象)原有对象改变不会改变复制后的对象。copy.deepcopy()深复制
        4、Python中的所有对象都是“第一类”,这意味着所有对象都可以直接当做数据处理计算
        5、所有对象都支持迭代。
        6、所有序列都支持以下操作:
            s[i]
            s[i:j]
            s[i:j:stride]
            len(s)
            min(s)
            max(s)
            sum(s)
            all(s)
            any(s)
            s1 + s2 #链接
            s1 * N #重复
            obj in s1 #组成员
            obj not in s1
        7、可变序列操作
            s1[index] = value #元素赋值
            s1[i:j] = t #切片赋值
            del s1[index]
            del s1[i:j]
            del s1[i:j:stride]

Python表达式和语句
    表达式 : 某事
    语句 : 做某事

    逻辑运算:
           x or y, x and y not x

    成员关系:
            x in y , x not in y

    对象实例测试:
            x is y , x not is y

    比较运算:
            x > y .......

    位运算:
            x | y , x & y , x ^ y , x << y , x >> y

    一元运算:
            -x , +x , ~x

    幂运算: 
        x ** y

    调用运算:
            x(........)

    属性取值:
            x.attribute

    三元选择表达式:
        x if y else z  同(x == y ? x : z)

    匿名函数:
        lambda argus : expression

    生成器发送协议: yield x

    优先级:
        (......),[.......] , {............}
        s[i] , s[i][j]
        s.attribute
        s(.....)
        +x,-x,~x
        x ** y
        * , / ,// , %
        +,-
        <<,>>
        &
        ^
        |
        <,<=,>,>=,==,!=
        is,not is
        in,not in
        not
        or
        lambda

    语句:
        复制语句
        调用语句
        print:
        if/elif/else
        while/else
        pass:占位符
        break
        continue
        def
        return
        yield
        global #命名空间
        raise #触发异常
        import
        from #模块属性访问
        class #
        try/except/finally #扑捉异常
        del #删除引用
        assert 调试检查
        with/as 循环管理器

    赋值语句:
        隐式复制: import,from,def,class,for,函数参数(arguments)

    生成序列:
        list1 = [i for i in range(1,11) if i % 2 == 0] #[2,4,6,8]

        l1 = [x,y,z]
        l2 = [1,2,3]
        list2 = [(i,j) for i in l1 for j in l2] #多项式相成

        将[]换成()就生成了一个生成器了,可以对应的生成器对象的next()方法取出数据

OS模块:
    目录:
        chdir() : 改变工作目录
        chroot() : 设定当前进程根目录
        listdir() : 列出所有文件名
        mkdir() : 创建目录
        makedirs() : 递归创建目录
        getcwd() : 获取工作目录
        rmdir() : 删除目录
        removedirs() : 删除多级目录

    文件:
        mkfifo() : 创建命名管道
        mknod() : 创建设备文件
        remove() : 删除文件
        unlink() : 删除文件
        rename() : 重命名
        stat() : 返回文件状态信息
        symlink() : 创建链接文件
        utime() : 更新文件时间戳
        tmpfile() : 创建并打开一个临时文件(打开模式是(w+b))
        walk() : 文件目录树

    权限:
        access(filename,userID) : 检验文件权限是否存在
        chmod(filename,modeNum) : 改变文件权限
        chown(filename,userID) : 改变宿主
        umask() : 设置默认访问权限(遮罩)

    文件描述符:
        open() : 底层操作系统的open()
        read() : 底层操作系统的read()
        write() : 底层操作系统的write

    设备文件:
        makedev() : 创建设备
        major(num) : 获取设备
        minor() :

OS子模块os.path:
    basename() : 文件基名 #etc. /etc/sysconfig/network-scripts => /etc/sysconfig
    dirname() : 路径基名 # etc ... => network-scripts
    join() : 将多个离散的路径名合并成一个 
    split() : 分割文件名 返回dirname,basename 结果元组
    splitext() : 返回(filename,extension) 元组 #返回文件的名字,和后缀

    信息:
        getatime() : 获取文件atime
        getctime() : 获取文件ctime
        getmtime() : 获取文件mtime
        getsize() : 获取文件大小

    查询:
        exists() : 判断文件是否存在
        isabs() : 判断制定路径是否是绝对路径
        isdir() : 判断是否是目录
        isfile() : 判断是否是文件
        islink() : 判断是否是符号链接
        ismount() : 判断是否是挂载点
        samefile() : 两个路径是否指向了同一个文件

对象序列化(持久存储):
    pickle() : 序列化
    marshal() : 序列化

    DBM接口:



Python 函数:
    demo = 1
    def f1():
        print demo # 1
        global demo
        demo = 2
        print demo # 2
    print demo #没有加global修饰的时候值为1 加了global时候则变成2

    函数参数可变参数:
        def fn1(*x):
                print x # 传入多个数据时候,x为元组
        def fn2(**x):
                print x # 传入多个数据时候,x为字典
        
        调用分解参数:
            demo = [1,3,4,5,6]
            def fn3(x,y,z):
                print x,y,z
            fn3(*demo) #将列表中的元素打散传入函数

    Python 匿名函数 lambda:
            f = lambda x,y,z: x + y + z
            f(1,2,4) #返回 7
            list1 = [ (lambda x: x*3 ),(lambda y: y*3)]
            for i in list1:
                print i(3)

            filter过滤器函数:
                filter(fn,list1) # fn为返回布尔类型函数,list1为列表

            多个队列函数 map(fn,list1,list2):
                list1 = [1,2,3,4]
                list2 = [S,M,T,W]
                map(None,list1,list2) # [(1,‘S‘),(2,‘M‘) ....] 同zip();

            多个序列整合一个序列 reduce:
                list1 = [1,2,3,4,5,6]
                reduce(lambda x,y: x+y,list1) #求出两个序列只和,对序列折叠

            Python闭合特性:
                def fn1(x):
                    def fn2(y):
                        return x+y
                    return fn2
                fDemo = fn1(2)
                fDemo(2) # 4
                fDemo(3) # 6 x= 2 被保存好了

            Python的闭包,闭包叫 lexical closure:

            yield 返回一个生成器对象:
                def fn1(x):
                    y = 0
                    while y <= x:
                        yield y
                        y += 1
                g1 = fn1(10)
                g1.next() # 返回1

            装饰器:
                1.本身是一个函数,其目的是装饰其他函数,是其他函数功能增强
                2.增强被装饰函数的功能
                3.装饰器需要接受一个函数,然后对其函数进行包装

                etc.
                    def deco(func):
                        def wrapper():
                            print "Please say somethings:"
                            func()
                            print "No zuo no die"
                        return wrapper()
                    @deco
                    def show():
                        return "I am from Mars."

            Python 递归:
                def dix(x):#实现阶乘
                    if x <= 1 : return 1
                    else : reutrn x * dix(x-1)

Python 面向对象:

        简单类实例:
            class MyClass():
                data = value
            def myMethod(self):
                return self.data
        __varname__(): #Python会在某种特定情况下自动调用

        Python构造器: #__init__():
            class MyClass():
                data = hello world
                def __init__(self,x):
                    self.str = x
            demo = Myclass(luowen)
            demo.str # => ‘luowen‘

        Python析构器: # __del__ 当调用del时候会调用class中的del方法
            class MyClass():
                data = value
                def __init__(self,x):
                    self.voice = x
                def __del__(self):
                    pass
                def saySomeThing(self):
                    print self.voice

        Python类的一些属性:
            __doc__ # 类的文档信息
            __name__ # 类的名字
            __bases__ # 
            __dict__ # 类的属性
            __module__ # 类所在的模块
            __class__ # 类的名字

        Python类中可用变量:
            1.实例变量 #self.data
            2.局部变量 : 方法内部创建变量,属于每个实例特有的数据 # demo = MyClass demo.data
            3.类变量(也称静态变量,可以直接使用) # 类名.变量名 __name__
            4.全局变量:直接使用

        Python类中可用方法:
            1.issubclass(sub,sup): 判断一个类手否由另一个类派生
            2.isinstance(obj1,obj2) : 判断一个对象是否是一个给定的类型
            3.hasattr(obj,attr) : 判断一个对象是否具有某个属性
            5.super(type[.obj]) 在之类中找出其父类,以便于调用其属性
                一般情况下仅能采用非绑定凡是调用祖先类方法
                而super()可用于传入实例或类型对象.

    Python 中的模块:
            顶层文件
            模块文件1
            模块文件2
            模块文件3
    
    Python 包 :
        /dir
            | __init__.py
            | mod1.py
            | mod2.py
            | mod3.py
        import dir.mod1 as demo #导入
        demo.xx #使用


    Python打包:
        distiuls from

        name                : 包的名称(必须)
        Version             : 版本号(必须)
        author              : 作者名称
        author_email        : 作者电子
        maintainer          : 维护者的名称
        maintainer_email    : 维护者电子邮件
        url                 : 包的主页
        description         : 包的简短描述
        long_description    : 包的详细描述
        download_url        : 包的下载未知
        Classfiers          : 字符串分类列表


    Python 打包命令 :
        setup.py sdist --formats = asflow
            zip : zip file
            gztar : tar.gz file
            bztar : tar.bz2 file
            ztar : tar.Z file
            tar : tar file
        setup bdist # 打包二进制文件
            gztar : tar.gz file
            ztar : tar.Z file
            tar : tar file
            zip : zip file
            RPM : RPM Package
            pkgtool : Solaris pkgtool
            wininst : Windows上自解压的zip格式包
            msi : Microsoft Installer #Windows可安装文件

            bdist_dump:
            bdist_rpm :
            bdist_wininst :
            bdist_msi :

            setup.py中setup()中可用参数:
                platforms : 平台列表
                license : 许可证
                py_modules : 各模块名称组成的列表,此些模块可能位于包的根目录下,也可能位于某子包目录中
                packages : 各子包名称的列表

etc #打包是咧

#!/usr/bin/env python 
# file name setup.py
from distutils.core import setup

setup(
        name = pkg1
        version = 0.1
        author = Luowen
        author_email = admin@admin.com
        maintainer = luowen@luowen.com
        py_modules = [mod1,mod2,mod3]
        url = http://www.luowen.com
        download_url = http://www.luowen.com/pythonmoudles/download
        description = Luowen Test Moudles
)

#打包目录结构
        demo
        |__init__.py
        |mod1.py
        |mod2.py
        |mod3.py
        |setup.py
        |README

    python setup.py sdist # 打包
    python setup.py install # 安装

# pip easy_install 简单快速安装工具

    Python模块、包、打包
        安装:
            python setup.py install # build and install

        第三方模块的默认安装路径为 : site-packages
            /usr/local/python27/lib/python2.7/site-pakcages

        Python setup.py install 
            --user="USERNAME" # 把路径安装在其他的目录
            --prefix="PATH" # 安装目录
            --exec-prefix="PATH" # 对你制定公共目录有写的权限

        深度定制:
            --install-purelib=/path/to/path_lib
            --install-platlib=/path/to/plat_lib
            --install-lib=/path/to/lib

            --install-scripts=/path/to/bin # 可执行文件的安装路径
            --install-headers=

    Python异常:
        1.语法错误
        2.逻辑错误
    try:
        #coding
    except IOError,e:
        print e
    except (Exception1,Exception2)[e1,e2]:
        suite__
    else:
        else_suite

    try:
        try_suite #异常代码抛出问题
    finally:
        finally_suite #用于资源释放

StandaardError: #标准异常超类
    ArithmeticError:#抽象子类
        AssertionError:
        AttributeError:
        FloatingPointError:
        IOError:
        ImportError:
        IndentationError:
        IndexError: #索引超出范围异常
    LookupError:#抽象子类
        KeyError:
        KeyboardInterrupt:
        MemoryError:
        NameError:
        NotImplementedError:
        OSError:
        OverflowError:
    EnvironmentError:#抽象子类
        SyntaxError
        SystemError
        TypeError
        UnboundLocalError
        UnicodeError
        ValueError
        WindowsError
        ZeroDivisionError

断言:
    assert condtion , error reson

 

Python简单操作笔记,布布扣,bubuko.com

Python简单操作笔记

标签:des   style   blog   http   color   使用   os   文件   

原文地址:http://www.cnblogs.com/luowen/p/3879584.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!