zoukankan      html  css  js  c++  java
  • day-8 模块

    1. 模块介绍:

    为什么要有模块
    python其实有很多现成的方法,但是这些函数不能全都放在内存里
    为用户节省很多不必要的内存消耗
    用不到的功能就不用导入到内存里了
    模块是什么
    一块python代码
    一组python代码
    一组C语言的代码
    一堆写好的 现成可以用的 函数、类
    以功能来分类的
    模块有哪几类
    内置模块 —— 随着python解释器的安装直接可以使用的模块
    扩展模块 —— 需要你自己安装一下才能使用的模块 django itchat
    自定义模块 —— 用户根据自己的需求完成的一组功能

    2.collect模块

    2.1 可命名元祖

    import collections

    Point = collections.namedtuple('point',['x','y'])
    p = Point(1,2)
    print(p)

    print(p.x)
    print(p.y)

    from math import sqrt
    sqrt(p.x**2 + p.y**2) # 程序会变得更明确,可读性更高

    3.time模块

    import time

    时间戳时间float —— 给机器看的
    结构化时间 —— 中间的过渡
    格式化 %s —— 给人看的

    转换关系

    timestamp = time.time()
    print(timestamp)
    ts2 = 3000000000
    print(time.localtime())

    struct_time = time.localtime(ts2)
    print(time.strftime('%m/%d/%Y %H:%M',struct_time))

    struct_time = time.strptime('2020','%Y')
    print(time.mktime(struct_time))
    print(time.strptime('2020','%Y'))

    4.random模块

    import random

    # 0-9 数字
    # 65-90 大写字母
    # 97-122 小写字母

    随机发红包代码示例:

    def random_code(num,alpha=True):
    import random
    code = ''
    for i in range(num):
    choice = str(random.randint(0,9))
    if alpha:
    alpha_lower = chr(random.randint(65,90))
    alpha_upper = chr(random.randint(97,122))
    choice = random.choice([choice,alpha_lower,alpha_upper])
    code += choice
    return code

    print(random_code(4,False))

    5.sys模块

    和python解释器打交道的

    import sys

    print('3.6' in sys.version)
    print(sys.platform) # win32

    print(sys.path)

    你的模块能不能被顺利的导入

    取决于这个模块是否在你的sys.path路径中
    路径的寻找是依据sys.path列表中的顺序查找的
    找到一个符合条件的就停止了

    print(sys.modules)
    记载了我们已经导入的模块名以及这个模块的内存地址

    执行pthon命令的时候: python E:s22login.py alex 123

    if len(sys.argv)>1 and sys.argv[1] == 'alex'and sys.argv[2] == 'alex3714':
    print('登陆成功')
    else:
    user = input('user:') # 阻塞
    pwd = input('pwd:')
    if user == 'alex' and pwd == 'alex3714': print('登陆成功')

    6.OS模块

    os模块
    操作系统打交道的

    import os

    os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径
    os.chdir("dirname")  改变当前脚本工作目录;相当于shell下cd
    os.curdir  返回当前目录: ('.')
    os.pardir  获取当前目录的父目录字符串名:('..')
    os.makedirs('dirname1/dirname2')    可生成多层递归目录
    os.removedirs('dirname1')    若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推
    os.mkdir('dirname')    生成单级目录;相当于shell中mkdir dirname
    os.rmdir('dirname')    删除单级空目录,若目录不为空则无法删除,报错;相当于shell中rmdir dirname
    os.listdir('dirname')    列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印
    os.remove()  删除一个文件
    os.rename("oldname","newname")  重命名文件/目录
    os.stat('path/filename')  获取文件/目录信息
    os.sep    输出操作系统特定的路径分隔符,win下为"\",Linux下为"/"
    os.linesep    输出当前平台使用的行终止符,win下为"	
    ",Linux下为"
    "
    os.pathsep    输出用于分割文件路径的字符串 win下为;,Linux下为:
    os.name    输出字符串指示当前使用平台。win->'nt'; Linux->'posix'
    os.system("bash command")  运行shell命令,直接显示
    os.popen("bash command).read()  运行shell命令,获取执行结果
    os.environ  获取系统环境变量
    
    os.path
    os.path.abspath(path) 返回path规范化的绝对路径 os.path.split(path) 将path分割成目录和文件名二元组返回 os.path.dirname(path) 返回path的目录。其实就是os.path.split(path)的第一个元素 os.path.basename(path) 返回path最后的文件名。如何path以/或结尾,那么就会返回空值。
                            即os.path.split(path)的第二个元素
    os.path.exists(path)  如果path存在,返回True;如果path不存在,返回False
    os.path.isabs(path)  如果path是绝对路径,返回True
    os.path.isfile(path)  如果path是一个存在的文件,返回True。否则返回False
    os.path.isdir(path)  如果path是一个存在的目录,则返回True。否则返回False
    os.path.join(path1[, path2[, ...]])  将多个路径组合后返回,第一个绝对路径之前的参数将被忽略
    os.path.getatime(path)  返回path所指向的文件或者目录的最后访问时间
    os.path.getmtime(path)  返回path所指向的文件或者目录的最后修改时间
    os.path.getsize(path) 返回path的大小

    7.re模块

    正则表达式本身也和python没有什么关系,就是匹配字符串内容的一种规则

    在线测试工具 http://tool.chinaz.com/regex/

    待匹配字符
    匹配
    结果
    说明
    [0123456789]
    8
    True
    在一个字符组里枚举合法的所有字符,字符组里的任意一个字符
    和"待匹配字符"相同都视为可以匹配
    [0123456789]
    a
    False
    由于字符组中没有"a"字符,所以不能匹配
     
    [0-9]
     
    7
    True
    也可以用-表示范围,[0-9]就和[0123456789]是一个意思
     
    [a-z]
     
    s
     
    True
     
    同样的如果要匹配所有的小写字母,直接用[a-z]就可以表示
     
    [A-Z]
     
    B
     
    True
     
    [A-Z]就表示所有的大写字母
     
    [0-9a-fA-F]
     
    e
     
    True
     
    可以匹配数字,大小写形式的a~f,用来验证十六进制字符

    字符:

     
    元字符
     
    匹配内容
    匹配除换行符以外的任意字符
    w 匹配字母或数字或下划线
    s 匹配任意的空白符
    d 匹配数字
    匹配一个换行符
    匹配一个制表符
     匹配一个单词的结尾
    ^ 匹配字符串的开始
    $ 匹配字符串的结尾
    W
    匹配非字母或数字或下划线
    D
    匹配非数字
    S
    匹配非空白符
    a|b
    匹配字符a或字符b
    ()
    匹配括号内的表达式,也表示一个组
    [...]
    匹配字符组中的字符
    [^...]
    匹配除了字符组中字符的所有字符

    量词:

    量词
    用法说明
    * 重复零次或更多次
    + 重复一次或更多次
    ? 重复零次或一次
    {n} 重复n次
    {n,} 重复n次或更多次
    {n,m} 重复n到m次

  • 相关阅读:
    Java 基础练习:控制台画圆,画等腰三角,乘法表
    Java 控制台五子棋游戏
    Java浮点数转化为人民币读法字符串
    Java Arrays类的用法
    Java javadoc使用
    Android 使用Camera2 调用摄像头显示预览与拍照
    SSRS: How to Display Checkbox on Report
    ADFS部署过程中设置network service对证书的读取权限
    Dynamics CRM2013 ScLib::AccessCheckEx failed
    ADFS3.0 Customizing the AD FS Sign-in Pages
  • 原文地址:https://www.cnblogs.com/junyingwang/p/9269005.html
Copyright © 2011-2022 走看看