python初级14--模块

模块

    好处:
        1.提高我们代码的可维护性。
        2.使用模块可以避免函数名和变量名的冲突
高内聚,低耦合
    种类:
        1.内置标准模块(标准库)
        2.第三方开源模块  通过pip install 模块名
        3.自定义模块
    调用模块:
        import 模块名/函数名
        from 模块名 import 模块名/函数名
# import testP.A
# from testP import A
# from testP.A import *  # 不建议导入全部功能

常用模块

os模块

# import os
# print(os.path.basename("E:/pythonProject/class10.py"))  # 返回路径的文件名

# print(os.path.dirname("E:/pythonProject/abcd/class10.py"))  # 返回路径的目录

# print(os.path.join("E:", "pythonProject", "class10.py"))  # 拼接路径

# print(os.path.split("E:/pythonProject/abcd/class10.py"))  # 返回路径目录和文件名

# print(os.path.splitext("E:/pythonProject/abcd/class10.py"))  # 返回文件路径和文件后缀

# print(os.path.exists("E:/pythonProject/class10.py"))  # 路径是否存在

sys模块

# import sys
# print(sys.argv)  # 返回程序外部向内部传递的参数
# print("我正在用命令行运行代码")

# sys.exit()  # 强制退出程序

# print(sys.path)
# sys.path.append("E:/pythonProject/testP")
# import A

time模块

import time
# print(time.time())  # 获取一个时间戳(1970年1月1日到现在过了多少秒)

# print(time.localtime())  # 获取一个当前时间戳的格式化数据

# print(time.strftime("%Y year %m moth %d day", time.localtime()))

"""
%y 两位数的年份表示(00-99)

%Y 四位数的年份表示(000-9999)

%m 月份(01-12)

%d 月内中的一天(1-31)

%H 24小时制小时数(1-24)

%I 12小时制小时数(01-12)

%M 分钟数(00=59)

%S 秒(00-59)

%a 本地简化星期名称

%A 本地完整星期名称

%b 本地简化的月份名称

%B 本地完整的月份名称

%c 本地相应的日期表示和时间表示

%j 年内的一天(001-366)

%p 本地A.M.或P.M.的等价符

%U 一年中的星期数(00-53)星期天为星期的开始

%w 星期(0-6),星期天为星期的开始

%W 一年中的星期数(00-53)星期一为星期的开始

%x 本地相应的日期表示

%X 本地相应的时间表示

%Z 当前时区的名称

%% %号本身
"""

random模块

# 线性同余
import random

# print(random.random())  # 返回一个[0,1)的随机浮点数

# print(random.uniform(1, 100)) # 返回一个[1,10)的随机浮点数

# print(random.randint(1,10))  # 返回一个[1,10]的随机整数

# print(random.randrange(1, 10, 2))  # 从序列中随机取一个数返回
# print(list(range(1,10,2)))

# l = [2,4,9,7,1,4984,184]
# print(random.choice(l))  # 从序列中随机取一个数返回

# l = [2,4,9,7,1,4984,184]
# print(l)
# random.shuffle(l)  # 用于打乱列表中的元素
# print(l)

# l = [2,4,9,7,1,4984,184]
# print(random.sample(l, 6))  # 从指定序列中获取指定长度的随机片段

pickle模块

#python对象的序列化和反序列化
# import pickle
# data = {1:"A", 2:"B"}
# with open("data.txt", 'rb+') as f:
#     pickle.dump(data, f)  # 序列化
#     print(pickle.load(f))  # 反序列化

json模块 (json文本序列化格式)

# import json
# data = {1:"A", 2:"B"}
# with open("data.txt", 'w') as f:
#     json.dump(data, f)  # 序列化
#     print(json.load(f))  # 反序列化

re模块 正则表达式搜索

import re
email = "54221434@qq.com"
phone = "15145321547"
# print(re.search("^\d{8,11}@qq.com", email))
# print(re.search("^\d{11}$", phone))  # 扫描整个字符串 并返回第一个匹配成功的

# print(re.sub("\d", "A", email))  # 替换字符串中的匹配项

# k = re.compile("\d")
# print(k.sub("A", email))
# emails = "54221434@qq.com54AA411949847934@qq.com54VB221434@qq.com542BS21434@qq.com"
# print(re.findall("\d{8,11}@qq.com", emails))  # 以列表的形式返回正则表达式所有匹配的子串

"""
^	匹配字符串的开头

$	匹配字符串的末尾。

.	匹配任意字符,除了换行符,当\w	匹配数字字母下划线

\W	匹配非数字字母下划线

\s	匹配任意空白字符,等价于 [\t\n\r\f]。

\S	匹配任意非空字符

\d	匹配任意数字,等价于 [0-9]。

\D	匹配任意非数字

\A	匹配字符串开始

\Z	匹配字符串结束,如果是存在换行,只匹配到换行前的结束字符串。

\z	匹配字符串结束

\G	匹配最后匹配完成的位置。

\b	匹配一个单词边界,也就是指单词和空格间的位置。例如, 'er\b' 可以匹配"never" 中的 'er',但不能匹配 "verb" 中的 'er'。

\B	匹配非单词边界。'er\B' 能匹配 "verb" 中的 'er',但不能匹配 "never" 中的 'er'。

*	匹配0个或多个的表达式

+	匹配1个或多个的表达式

?	匹配0个或1个由前面的正则表达式定义的片段,非贪婪方式

[...]	用来表示一组字符,单独列出:[amk] 匹配 'a','m'或'k'

[^...]	不在[]中的字符:[^abc] 匹配除了a,b,c之外的字符

{n}	  匹配n个前面表达式。例如,"o{2}"不能匹配"Bob"中的"o",但是能匹配"food"中的两个o。

{n,}	精确匹配n个前面表达式。例如,"o{2,}"不能匹配"Bob"中的"o",但能匹配"foooood"中的所有o。"o{1,}"等价于"o+"。"o{0,}"则等价于"o*"。

{n, m}	匹配 n 到 m 次由前面的正则表达式定义的片段,贪婪方式

a| b	匹配a或b
"""
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

开了又败的花墙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值