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:\a\b\c\d\f") #等于递归调用mkdir
#os.removedirs(r"c:\a\b\c\d\f") #清理空文件夹
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("\n")
_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

 

posted @ 2018-05-10 09:04  ywyin  阅读(350)  评论(0编辑  收藏  举报