pytthon的基本运用(8)——模块

news/2025/3/17 21:06:37/文章来源:https://www.cnblogs.com/zz0124/p/18777469

一、模块的介绍

(1)python模块,是一个python文件,以一个.py文件,包含了python对象定义和pyhton语句

(2)python对象定义和python语句

(3)模块让你能够有逻辑地组织你的python代码段。

(4)把相关的代码分配到一个模块里能让你的代码更好用,更易懂

(5)模块能定义函数,类和变量,模块里也能包含可执行的代码

二、模块的导入

注意点:

(1)一个模块只要导入一次,不管你执行多少次import,一次就可以

(2)模块不调用时是置灰状态

(3)导入的方法:

a. import   模块名

b. from   包名.模块名   import *    (*表示所有的函数)

c.导入具体函数:from   包名.模块名   import  hs

三、模块的运用

(1)time模块

import time#1970年到现在经过的秒数

print(time.time()) #1651200498.799537

print(time.ctime()) #固定格式的当前时间

time.sleep(3)) # 休眠,也是强制等待

print(time.asctime()) #转化为asc码显示当前时间

print(time.strftime(“%H-%M-%S”))   时分秒

print(time.strftime(“ %y-%m-%d”)) 年月日

print(time.strftime(“%H-%M-%S %y-%m-%d”)) #时间戳:按照格式输出内容:  时分秒,年月日


(2)random模块

生成随机浮点数,帧数,字符串,甚至帮助你随机选择列表中的一个元素,打乱一组数据等; 

from random import * 

print(random()) #生成0-1之间的浮点数,但是能取到0,不能取到1 

print(randint(1,100)) #生成指定范围内整数,包括开始值和结束值 

print(randrange(1,100,2)) # 生成指定范围内的奇数 ,包含开始值,不包含结束值

print(randrange(0,100,2)) #生成指定范围内的偶数,包含开始值,不包含结束值

 f=[1,2,3,6,7,2] 

print(sample(f,3)) #生成从一个固定集合中选n个数随机 ,3显示个数

print(choice(f)) #随机生成一个字符 

shuffle(f) print(list(f)) 

(3)string模块

import  string

print(string.digits) #0123456789
print(string.hexdigits) #0123456789abcdefABCDEF
print(string.ascii_letters) #abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
print(string.ascii_lowercase) #abcdefghijklmnopqrstuvwxyz
print(string.ascii_uppercase) #ABCDEFGHIJKLMNOPQRSTUVWXYZ
print(string.digits+string.ascii_letters) #0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRST

#课堂练习
# 1、使用random模块随机生成手机号码、自己定义手机号码开头的前三位
# 2、用random模块随机生成6位数验证码
# def num():
#     first="1"
#     second=choice(["3","5","7","8","9"])
#     third=str(randint(0,9))
#     q=first+second+third
#     s="".join(str(randint(0,9)) for _ in range(8))
#     return q+s
# print("随机生成的手机号:", num())
#
# def yzm():
# #     a=string.digits+string.ascii_letters
# #     b="".join(choice(a) for _ in range(6))
# #     return b
# # print("混合验证码:",yzm())

 (4)hashlib模块

在线加解密:

http://encode.chahuo.com/

1.base64

import base64
a=base64.b64encode(b"123456")
print(a)
b=base64.b64decode(b'MTIzNDU2')
print(b)

2.md5加密

(a)md5 是一种算法,可以将一个字符串或文件,md5后,就可以生成一个固定为128bit的串,这个串,基本上唯一;

(b)python2中有md5

(c)python3将MD5 归纳到hash 模块,译作:‘散列’,直译为‘哈希’。

(d)md5 可以把任意长度的输入,通过种hash算法,变换成固定长度的输出,该输出就是散列值,也称摘要值,,该算法就是哈希函数,也称摘要函数

(e)md5 是最常见的摘要算法,速度快,生成结果是固定16字节,通常用32位的16进制字符串表示。

(f)hash模块中包含MD5、sha1 ,sha256 ,sha512等

(g)摘要;hash.digest() 返回摘要,作为二进制数据字符串值; hash.hexdigeest 返回摘要,作为16进制数据字符串值

import hashlib
md5gx=hashlib.md5()
md5gx=hashlib.sha256()
md5gx.update(b"123456")
print(md5gx.hexdigest())
print(md5gx.digest())

#练习
# 3、通过md5加密算法把随机生成的6应散验证码进行加密返回16进制的字符串
# def md5_jm(b):
#     md5gx=hashlib.md5()
#     md5gx.update(b.encode("utf-8"))
#     return md5gx.hexdigest()
# print("加密后的验证码:",md5_jm(yzm()))

(5)os模块

1.os模块提供了多数操作系统的功能接口函数。当os模块被导入后,它会自适 应于不同的操作系统平台,根据不同的平台进行相应的操作,在python编 程时,经常和文件、目录打交道,所以离不了os模块。

2.os模块中常见的方法:

os.getcwd()获取当前执行命令所在目录

import os
print(os.getcwd())

os.path.isfile()判断是否文件

url=r"C:/Users/adm/PycharmProjects/untitled/bao1/mk.py"
url2=r"E:\1"
print(os.path.isfile(url))
print(os.path.isfile(url2))

os.path.isdir() #判断是否是目录

 

os.path.exists() #判断文件或目录是否存在

os.listdir(dirname) #列出指定目录下的目录或文件

os.path.split(name) #分割文件名与目录

os.path.join(path,name) #连接目录与文件名或目录

os.mkdir(dir) #创建一个目录

os.rename(old,new) #更改目录名称

os.remove() 删除文件


(6)re模块

(一)re正则匹配基本介绍

正则匹配:使用re模块实现

1、什么是正则表达式?

正则表达式是一种对字符和特殊字符操作的一种逻辑公式,从特定的字符中,用正则表达字符来过滤的逻辑。

2、正则表达式是一种文本模式;

3、正则表达式可以帮助我们检查字符是否与某种模式匹配

4、re模块使pyhton语言用有全部的表达式功能

5、re表达式作用?

(1)快速高效查找和分析字符比对自读,也叫模式匹配,比如:查找,比对,匹配,替换,插入,添加,删除等能力。

(2)实现一个编译查看,一般在处理文件时用的多

1、findall

从第一个字符开始查找,找到全部相关匹配为止,找不到返回一个空列表[]

import re
s="abcdefghijkaaaklde2"
f=re.findall("a",s)
print(f)

2、match

从第一个字符开始匹配,如果第一个字符不是要匹配的类型、则匹配失败得到一个none值

注意:如果规则带了’+’,则匹配1次或者多次,无’+'只匹配一次 #显示结果是索引位:(0, 1)

3、compile(不考虑)

编译模式生成对象,找到全部相关匹配为止,找不到返回一个列表[]

4、search

从第一个字符开始查找、一找到就返回第一个字符串,找到就不往下找,找不到则报错(返回值是一个none)

group 以str 形式返回对象中match元素

span 以tuple形式返回范围

(二)认识正则表达式中的特殊元素?

\d:数字0-9

s="abcfdef045ghijkfaaaklde2"
f=re.findall("\d",s)
print(f)

\D:非数字

s="abcfdef045ghijkfaaaklde2"
f=re.findall("\D",s)
print(f)

\s:空白字符

\n:换行符

s="abcfdef04 \n5ghijkfa\naaklde2"
f=re.findall("\n",s)
print(f)

\w 匹配字母数字

s="abcfdef045ghijkfaaaklde2"
f=re.findall("\w",s)
print(f)

\W 匹配非字母数字

s="abcfdef045ghij#$^|||//kfaaaklde2"
f=re.findall("\W",s)
print(f)

^:表示的匹配字符以什么开头

s="abcfdef045ghij#$^|||//kfaaaklde2"
f=re.findall("^a",s)
print(f)

$:表示的匹配字符以什么结尾

s="abcfdef045ghij#$^|||//kfaaaklde2"
f=re.findall("2$",s)
print(f)

*:匹配前面的字符0次或n次 eg:ab (* 能匹配a 匹配ab 匹配abb )

s="abcfdef045ghij#$^|||//kfaaaklde2"
f=re.findall("a*",s)
print(f)

+:匹配+前面的字符1次或n次

s="abcfdef045ghij#$^|||//kfaaaklde2"
f=re.findall("a+",s)
print(f)

?:匹配?前面的字符0次或1次

s="abcfdef045ghij#$^|||//kfaaaklde2"
f=re.findall("a?",s)
print(f)

{m}:匹配前一个字符m次

s="abcfdeaaaaaaaf045ghij#$^|||//kfaaaklde2"
f=re.findall("a{2}",s)
print(f)

{m,n}:匹配前一个字符m到n次(包括n次),m或n可以省略,mn都是

s="abcfdeaaaaaaaf045ghij#$^|||//kfaaaklde2"
f=re.findall("a{3,5}",s)
print(f)

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/900586.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

服务器跑实验

项目名称——基于机器学习与深度学习的贷款批准预测 项目来源:和鲸社区https://www.heywhale.com/mw/project/670f61d10ebb9f7a69c5144c 项目数据集:有两个【上传不了博客】大概长这个样:数据说明:实验环境:tensorflow、shap 实验结果:实验过程以及遇到的问题和解决方案:…

工作面试必备:SQL 中的各种连接 JOIN 的区别总结!

前言 尽管大多数开发者在日常工作中经常用到Join操作,如Inner Join、Left Join、Right Join等,但在面对特定查询需求时,选择哪种Join类型以及如何使用On和Where子句往往成为一大挑战。特别是对于初学者而言,这些概念可能显得抽象且难以区分。在实际应用中,错误地使用Join类…

攻防世界 hello_pwn WriteUp

WriteUp 题目信息 来源:攻防世界 名称:hello_pwn 分类:Pwn 描述:pwn!,segment fault!菜鸡陷入了深思题目链接: https://adworld.xctf.org.cn/challenges/list解题思路 首先使用DIE对文件进行查壳,发现这是一个无壳的64位ELF文件,所以使用64位IDA对该文件进行反汇编。接…

《95%开发者不知道的vue.config.js高阶玩法》手撕Webpack配置链/SSR优化/多页应用,3倍构建效率实战方案

Vue工程化配置指南:vue.config.js深度解析 一、初始化配置文件 在Vue CLI工程根路径下创建配置文件: 项目层级示意: your-project/ ├── src/ ├── public/ ├── package.json └── vue.config.js # 新增配置文件基本模板结构: module.exports = {// 工程化配置区…

ElevenLabs 33 亿美元估值的秘密:技术驱动+用户导向的「小熊软糖」团队丨Voice Agent 学习笔记

图:Emmanuel Ashun / Endeavor大家好,这是 Voice Agent 学习笔记系列的第 23 篇,我是课代表十三🧑‍💻。ElevenLabs 是一家专注于人工智能语音技术的创新公司,致力于重新定义音频体验。凭借其突破性的语音克隆和配音工具,ElevenLabs 正在重塑音频内容创作的未来,让高…

分布式服务幂等性问题如何解决

在分布式系统中解决幂等性问题是保证系统健壮性的关键挑战之一。以下从原理到实践的完整解决方案,涵盖7种核心模式及落地实现细节:一、幂等性问题本质 核心定义:相同请求多次执行对系统状态的影响 = 执行一次的结果 产生场景:网络抖动导致客户端重复提交 服务端超时后重试机…

一图看懂|2025年经济社会发展10大主要任务

一图看懂|2025年经济社会发展10大主要任务

新朋友:线段树

目录认识线段树和他的梦想 实现梦想之有个小身板 实现梦想之一点一点查 实现梦想之一点一点变 实现梦想之一坨一坨查 实现梦想之一坨一坨变 实现梦想之…不,没能力帮你了1. 认识线段树和他的梦想 差分想必大家都认识,它是可以进行区间加与区间减,但是要查询某个区间的和。他…

攻防世界 get_shell WriteUp

WriteUp 题目信息 来源:攻防世界 名称:get_shell 分类:Pwn 描述:运行就能拿到shell呢,真的题目链接: https://adworld.xctf.org.cn/challenges/list解题思路 首先使用DIE对文件进行查壳,发现这是一个64位ELF文件,所以选择使用64位IDA对文件进行反汇编。发现可以直接运行…

分享一个我遇到过的“量子力学”级别的BUG。

你好呀,我是歪歪。 前几天在网上冲浪的时候,看到知乎上的这个话题:一瞬间,一次历史悠久但是记忆深刻的代码调试经历,“刷”的一下,就在我的脑海中蹦出来了。 虽然最终定位到的原因令人无语,对于日常编码也没啥帮助,但是真的是:情景再现 我记得当时我是学习 Concurren…

day:23 python模块——时间,random,string

一、模块的介绍 (1)python模块,是一个python文件,以一个.py文件,包含了python对象定义和pyhton语句(2)python对象定义和python语句 (3)模块让你能够有逻辑地组织你的python代码段。 (4)把相关的代码分配到一个模块里能让你的代码更好用,更易懂 (5)模块能定义函数…

实验一:Tableau数据可视化入门

实验目的:1.熟悉TableauDesktop使用方法。2.通过Tableau软件来实现Excel中数据的基本可视化。 实验原理: Tableau是新一代商业智能工具软件,它将数据连接、运算、分析与图表结合在 一起,通过拖放方式创建各种图表。 Tableau产品包括TableauDesktop、Tableauserver、Tableau…