zoukankan      html  css  js  c++  java
  • py常用模块

    1.定义

      - 模块:用来从逻辑上组织py的代码,如变量、函数、类、逻辑),本质就是py结尾的python文件(文件名test.py,模块名就是test)

      - 包:用来从逻辑上组织模块的,本质就是一个目录,必须带有一个__init__.py文件

    2. 导入方法

      - import module_name[,module 2]

      - from module_name import * ###将module-name中所有的方法都导入了,不建议用

      - from module_name import m1,m2,m3  ###直接执行m1,m2,m3,不要前缀

      - from module_name import [logger模块内置方法名] as [别名]

      - import pypackage, ###被导入package下面的__init__.py文件被执行

      - 路径

        os.path.dir(os.path.dirname(os.parh.abspath(__file)))

     3. 本质

      - 导入模块本质,就是把python文件解释一遍

      - 导入包的本质就是执行该包下面的__init__.py文件,可以在init文件中加载同级目录下面的所有py模块 ### from . import py_module

    4. 导入优化

      - from py_module import functions as 别名

    5. 模块的分类  

      - 标准库:

      - 开源模块:

      - 自定义模块

    标准库:

    1. time和datatime (https://www.cnblogs.com/sunshineyang/p/6818834.html)

      - 时间戳到元组转换,localtime(),struct_time()

      http://blog.51cto.com/egon09/1840425

     2. random 模块

    print(random.random())
    print(random.randint(1,8))
    print(random.randrange(1,6))
    print(random.choice("dafasdafdfsa"))
    print(random.choice(["dasf","dasfa131","aaa","AAA!!!","uuu"]))

    checkcode = ''
    for i in range(4):
        current = random.randrange(0,4)
        if current ==i:
            current = chr(random.randint(65,90))
        #current = random.randint(0,9)
        else:
            current = random.randint(0, 9)
        checkcode = checkcode +str(current)
    print(checkcode)
    随机验证码Code

    3. os模块

    print(os.getcwd())
    #os.makedirs(r"c:acdf") #等于递归调用mkdir
    #os.removedirs(r"c:acdf") #清理空文件夹
    print(os.listdir("c:"))
    print(os.system('ipconfig /all'))

    4. sys模块

    5. shutil模块,进行文件的copy

      shutil.copyfile()

      copymode()  

      make_archive()

      

    6. json 和pickle  

      # json,用于字符串和py数据类型间的转换

      # pickle,用于py特有的类型和py的数据类型之间的转换

    7. shelve:是一个简单的看,v将内存数据通过文件持久化得模块,可以持久化pickle可支持的py的数据格式

    8. xml <>

      #需要 import xml.tree.ElementTree 

      #增删改查  http://www.cnblogs.com/alex3714/articles/5161349.html

    9. Configparser()  #生成修改配置文件

    10. hashlib  #SHA512优于MD5

    11. hmac #消息加密

    12. 正则表达式 #用来匹配字符串,动态模糊匹配

      # match

      # search  

      # findall

      # split 分割

      # sub 替换

    https://www.cnblogs.com/yyyg/p/5498803.html

    # 计算器
    # 利用正则表达式找到最里层的()
    # 先计算乘除,再加减
    
    import re
    
    ### 定义加法操作函数
    
    ### 定义减法操作函数
    def _minus_trx(number_list=[]):
        _minus_summary = 0
        for j in range(len(number_list)):
            #print(number_list[j])
            if j == 0:
                _minus_summary = int(number_list[j])
            else:
                _minus_summary = _minus_summary - int(number_list[j])
       # print("有减号的数组的结构是。。。%s" % _minus_summary)
        return _minus_summary
    
    _abc = "12+34-1+99+11-12"
    ret = re.findall(r'(d+)',_abc)
    
    _nl = re.split('+',_abc)
    #print("分解加号后的list。。。")
    #print(_nl)
    #print("
    ")
    _add_summary = 0
    
    for i in range(len(_nl)):
        _minus_flag = (re.search(r'-',_nl[i]))### 找出 - 的字符串
        if _minus_flag == None: ###字符串中没有减号,都是加号
            _add_summary = _add_summary + int(_nl[i])
          #  print(str(_add_summary)+"   加了%s后   。。。"%_nl[i])
        else:  ###字符串中有减号
            minus_res= 0
            ret1 = re.findall(r'(d+)', _nl[i])
            minus_res = _minus_trx(number_list = ret1)
            _add_summary = _add_summary +int(minus_res)
    
    
    print(_abc+"=计算结果是。。。。》》》"+str(_add_summary))
    加减法code
  • 相关阅读:
    JS Leetcode 530. 二叉搜索树的最小绝对差 题解分析,再次了解中序遍历
    JS Leetcode 179. 最大数 题解分析,sort a-b与b-a的区别,sort排序原理解析
    Echarts 数据可视化 (二)
    Echarts 数据可视化 (一)
    Less 入门
    【Mybatis-Plus框架学习】专栏总集篇
    【Mybatis-Plus框架学习】雪花算法 剖析
    【多文件自平衡云传输】使用展示 —— 文件传输系统
    详解 资源发现技术 的基本实现
    【多文件自平衡云传输】专栏总集篇
  • 原文地址:https://www.cnblogs.com/ywyin/p/9017891.html
Copyright © 2011-2022 走看看