余亮 发表于 2021-9-6 23:35:56

模块方法的操作

"""
"""
"""
1.项目包和目录的区别:项目包可以被导入,但目录不能被导入
2.项目包里面有一个init文件,目录是没有的,init文件用来初始化当前项目包下面所有文件
注意:在进行导入模块时,他收先会执行init文件
3.python分为自带模块和第三方模块
自带模块:下载python就已经存在的模块
第三方模块:由其他程序员写好的功能,通过下载命令进行下载
4.import 进进行导入模块引用模块下面的方法
"""

"""
直接导入的方式:
方法一:
直接import导入
import demo.zixi
demo.zixi.function()


方法二:
导入指定的方法:
from demo.zixi import function
function()


方法三":
导入该模块下面的所有方法
from demo.zixi import*
function


方法四:
取别名
from demo.zixi import function as a
a()


方法五:
通导入多个模块,同时可以引用多个模块的方法
import time,re,os


"""

"""
1.导入不仅可以导入函数方法,变量,常量,类,对象都可以进行导入
2.导入模块时,不管执行了多少次导入,他只会被执行一次
"""



#time模块模块函数功能方法如下:
#from time import * #这里是导入time模块下的所有方法*号代表所有
#print(time())#打印1970年到现在历经的秒速
"""import time
print(time.time())打印1970年到现在经历的秒速"""
#print(ctime())#结果:Mon Sep6 19:56:21 2021打印时间日期的模式


#print(strftime('%Y-%m-%d-%H-%M-%S'))#结果:2021-09-06-20-05-40打印时间日期,注意区分大小写
"""
Y:代表年
m:月
d:日
H:时
M:分钟
S:秒
"""


"""sleep线程等待"""
print('余亮')#打印余亮
#sleep(2)#等待2秒钟后在打印下面部分
print('你好')#2秒后打印你好

"""转换ascll码当前时间"""
#print(asctime())#结果:Mon Sep6 20:12:35 2021




"""
copy模块如下:
"""
from copy import *

#list2 = (['湖北',['武汉'],['湖南'],'长沙'])
#list3 = deepcopy(list2)#深copylist2(深拷贝)
# print(list2)#结果:('湖北', '武汉', '湖南', '长沙')
# print(list3)#结果:('湖北', '武汉', '湖南', '长沙')
#print(id(list2))#打印list2存储的位置结果:140701947112896
#print(id(list3))#打印list3储存的位置结果:140701947112256 注意他们储存的id是不一样的,数据里面子集的位置也不一样
# list2 =['口']#索引为0的改变为口
# print(list2)#结果:[['口'], ['武汉'], ['湖南'], '长沙']
# print(list3)#结果:['湖北', ['武汉'], ['湖南'], '长沙']
#
"""潜拷贝"""
list4 = (['湖北',['武汉'],['湖南'],'长沙'])
list5 = copy(list4)
print(id(list4))#打印子集内的id
print(id(list5))#注意他们数据的地址不一样,但是子集的ID是一样的
#结果:140683121886144
#   140683121886144
list4= '北京'
print(list5)#结果:['湖北', ['北京'], ['湖南'], '长沙']
"""总结:
1.深拷贝时完全copy复制包括他的子集数据结构,进行copy完成之后他们是两个独立的个体
两个数据存在直间不会互相影响,
2.潜拷贝他只会复制第一层的数据结构,他子集的地址还是一样的,存在两个数据关联的情况
修改其中一个数据的子集,另一个也会被修改
"""


"""
random模块
random模块可以帮助生成浮点数,字符串,整数,洗牌(打乱顺序)的功能如下

"""
from random import *#调用random模块的所有方法
"""random随机生成0-1之间的浮点数它可以取到0但取不到1"""
print(random())


"""生成指定区间的整数randint"""
print(randint(1,10))

"""randrange方法随机生成指定区间的数,randrange有步长值"""
print(randrange(0,10,2))#这里随机生成开始索引为0结束索引为10步长为2


"""sample方法在指定的序列当中随机选取值组成一个新的列表,不能操作字典"""
tuple1 = (11,2,3,4,5,7,31,3)
list1 =
set1 = {1,2,3,4,5,6,7,8,9}
dict1 = {'a':'1','b':'2','c':'3'}
str1 = "6543210¥%#@&(&@¥@——+"
print(sample(tuple1,2))#在tuple1中随机取2个值组成新的列表
print(sample(list1,2))
print(sample(set1,2))
#print(sample(dict1,2))#字典不能进行操作
print(sample(str1,2))


"""choice在已知序列当中随机选取一个字符"""
tuple2 = (11,2,3,4,5,7,31,3)
list2 =
set2 = {1,2,3,4,5,6,7,8,9}
dict2 = {'a':'1','b':'2','c':'3'}
str2 = "6543210¥%#@&(&@¥@——+"
print(choice(tuple2))
print(choice(list2))
#print(choice(set2))#不能进行操作
#print(choice(dict2))#不能进行操作
print(choice(str2))

"""洗牌的方法shuffle打乱顺序,针对列表进行操作"""
tuple3 = (11,2,3,4,5,7,31,3)
list3 =
set3 = {1,2,3,4,5,6,7,8,9}
dict3 = {'a':'1','b':'2','c':'3'}
str3 = "6543210¥%#@&(&@¥@——+"
shuffle(list3)
print(list3)#只能对列表操作
#结果:随机的下次执行就会变



"""
hashlid模块
他可以针对整数数据进行加密,加密成16进制的文件,只负责加密不能解密
"""
import hashlib#导入hashlid模块
a = hashlib.md5()#创建一个md5的对象
str4 = '123456'
a.update(str4.encode('utf-8'))#update更新调用md5更新到str4,str4文件格式为utf-8
print(a.hexdigest())#结果:e10adc3949ba59abbe56e057f20f883e////在网页使用md5进行解密
"""md5面试题:
我有10万个表,我把这个数据库10万张表同步到另一个数据库,怎么确保他是一样的?
答:可以通过md5进行加密,然后查看他加密后密文是否相等,来判定数据库是否一致
因为数据是一样的情况下不管在那个模块下通md5加密后他的密文都是一样的

"""
页: [1]
查看完整版本: 模块方法的操作