美文网首页docs_Python
Python-01基础-13功能模块

Python-01基础-13功能模块

作者: SuperScfan | 来源:发表于2020-02-01 20:50 被阅读0次

    Python 基础-13 功能模块

    Python2 和 Python3 并存

    Python3 安装配置

    参考链接:
    https://www.cnblogs.com/gaoyuechen/p/8006365.html

    安装完成后自带 pip 等

    # 下载包
    wget https://www.python.org/ftp/python/3.6.0/Python-3.6.0.tgz
    # 解压
    tar xf Python-3.6.0.tgz
    # 配置安装信息
     ./configure --prefix=/usr/local/python3/
    # 编译
    make && make install
    # 配置环境变量
    新建文件
    vim /etc/profile.d/python3.sh
    export PATH=$PATH:/usr/local/python3/bin/
    执行一下下面命令
    export PATH=$PATH:/usr/local/python3/bin/
    # 验证
    python3
    Python 3.6.0 (default, Feb  1 2017, 14:56:52)
    [GCC 4.8.5 20150623 (Red Hat 4.8.5-11)] on linux
    Type "help", "copyright", "credits" or "license" for more information.
    >>>
    

    pip3 安装配置

    env3 安装配置

    判断数据类型

    第一种:types
    import types
    type(x) is types.IntType # 判断是否 int 类型
    type(x) is types.StringType # 判断是否 string 类型

    第二种: 超级恶心的模式,不推荐
    type(x) == type(1) # 判断是否 int 类型
    type(x) == type("1") # 判断是否 string 类型

    第三种: isinstance
    isinstance(对象,类型名或类型列表或元祖) --> True/False
    例如:isinstance("lst",(int,str,list)) # True
    判断类型 "lst" 在 类型列表中

    Python 代码建议

    from .. import
    优先使用import a  使用a.B
    有节制使用from a import B
    避免使用 from a import *
    

    Python -m xxx.py -m 使得一个模块像脚本一样运行
    name
    package

    Python 的* __ xx的区别
    函数名 意味着,此函数用于类内部,不属于 api ,等同于私有函数
    函数名 ,用来避免子类覆盖其内容,意味着此函数不能被重写,继承等。仅仅用于类的内部使用,
    xx函数,用于 Python 调用
    使用_one_underline 来表示该方法或属性是私有的,不属于 API;
    当创建一个用于 python 调用或一些特殊情况时,使用
    two_underline
    使用
    *just_to_underlines,来避免子类的重写!

    使用 join 连接字符 ,join 连接字符更高高效比+ ,尤其是大规模的字符串连接
    join 使用:
    'xx'.join([str1,str2]) = str1xxstr2
    'xx'.join([str1,str2,str3]) = str1xxstr2xxstr3

    时间测试,代码的性能分析
    import timeit

    生成测试所需的字符数组

    格式化字符串优先使用.format,而不是%s 等

    .format 的使用方法 1.位置符号
    " select _ from {0} where 1=1 {2} ".format(xx,yy) 2.使用名称
    " select _ from {xx} where 1=1 {yy} ".format(xx=1,yy=1) 3.同过属性
    xx = 1
    yy = 2
    " select * from {xx} where 1=1 {yy} ".format 4.格式化元组的具体项
    point = (1,3)
    'x:{0[0]}; y:{0[1]}'.format(point)
    .format 的优势
    使用灵活,可以作为参数传递,简便直观,%s 处理需要注意被格式化字符的格式而。format 不需要

    通过字符串调用对象属性

    python 通过字符串调用对象属性或方法的实例讲解
    有时候需要将属性或方法作为参数传入,这个时候可以通过以下几种方式用字符串调用对象属性或方法

    1.eval
    In [634]: def getmethod(x,char='just for test'):
      ...:  return eval('str.%s' % x)(char)
      ...:
    In [635]: getmethod('upper')
    Out[635]: 'JUST FOR TEST'
    2、getattr
    In [650]: def getmethod2(x, char='just for test'):
      ...:  return getattr(char, x)()
      ...:
    In [651]: getmethod2('upper')
    Out[651]: 'JUST FOR TEST'
    

    获取目录下所有文件名称

    file_dir = "sss"
    for root, dirs, files in os.walk(file_dir):
      print(root) #当前目录路径
      print(dirs) #当前路径下所有子目录
      print(files) #当前路径下所有非目录子文件
      for filename in files:
        file_path = os.path.join(file_dir,filename)
        print file_path
    

    uuid [唯一标识符]

    UUID: 通用唯一标识符 ( Universally Unique Identifier ),对于所有的 UUID 它可以保证在空间和时间上的唯一性.

    它是通过 MAC 地址、 时间戳、 命名空间、 随机数、 伪随机数来保证生成 ID 的唯一性,,有着固定的大小( 128 bit 位 ),通常由 32 字节的字符串(十六进制)表示。

    它的唯一性和一致性特点,使得可以无需注册过程就能够产生一个新的 UUID;
    UUID 可以被用作多种用途, 既可以用来短时间内标记一个对象,也可以可靠的辨别网络中的持久性对象。

    import uuid
    # uuid.uuid1 基于时间戳
    uuid.uuid1([node[, clock_seq]])
    node - 默认主机的硬件地址
    clock_seq 默认随机14位序列号
    # uuid.uuid3  基于名字的MD5散列值
    通过计算名字和命名空间的MD5散列值得到,保证了同一命名空间中不同名字的唯一性,
    和不同命名空间的唯一性,但同一命名空间的同一名字生成相同的uuid。
    uuid.uuid3(namespace, name)
    # uuid.uuid4 基于随机数
    由伪随机数得到,有一定重复概率,可以计算得到
    # uuid.uuid5() 基于名称的SHA-1散列值
    使用 Secure Hash Algorithm 1 算法
    

    总结:

    • 分布式环境: 建议 uuid1
    • 名字唯一要求:建议 uuid3/uuid5

    文字处理

    Levenshtein 文字距离

    import Levenshtein
    str1 = 'qwer1235'
    str2 = 'qwe1235r'

    计算汉明距离,要求 str1 和 str2 必须长度一致。是描述两个等长字串之间对应位置上不同字符的个数
    Levenshtein.hamming(str1, str2) #

    Levenshtein.distance(str1,str2)计算编辑距离。是描述一个字符串转化成另一个字串最少的操作次数,在其中的操作包括插入、删除、替换。
    Levenshtein.distance(str1, str2)

    相关文章

      网友评论

        本文标题:Python-01基础-13功能模块

        本文链接:https://www.haomeiwen.com/subject/ynmxxhtx.html