找回密码
 立即注册

推荐阅读

  • 便民服务
  • 关注我们
  • 社区新手
# python当中的模块
# 模块的导入方法---我要引用其他模块有什么方法
# 第一种引用其他模块的方法
# import demo.用户名循环
# print(demo.用户名循环.b)  #通过项目包以及模块名称的调用 b的变量


# 第二种引用其他模块的方法
# from demo.用户名循环 import b #直接导入指定的方法
# print(b)
#
# 第三种导入当前模块下的所有方法---不推荐使用
# from demo.用户名循环 import *
# fuct()
# print(b)
#
# 第四种导入方式 ---导入具体的方法,取别名在你当前模块有重复名称的方法进行使用
# from demo.用户名循环 import fuct as a
# a()
#
# 第五种导入---并列导入
# from demo.用户名循环 import fuct,b #同时导入多个方法用,号隔开
# fuct()
# print(b)
#
python当中模块分为两种
第一种:python当中自带的模块
第二种:程序员自己定义的模块
#
import time
# print(time.time())   #通过模块名称调用该方法
# print(time.asctime())#格式化输出实际
# print(time.ctime())#格式化输出实际
#
# from  time import *
# print(time()) #打印从1970到现在经历的秒速
# print(ctime())# 格式化输出时间
# print(asctime) #格式化输出时间

# sleep  等待方法 ui自动化用来调试代码
# import time
# print("武汉八期")
# time.sleep(3)  #以秒为单位进行等待
# print("多测试")

# import time
# strftime
# # %Y  Year with century as a decimal number.#年
# # %m  Month as a decimal number [01,12].#月
# # %d  Day of the month as a decimal number [01,31].#日
# # %H  Hour (24-hour clock) as a decimal number [00,23].#小时
# # %M  Minute as a decimal number [00,59].#分钟
# # %S  Second as a decimal number [00,61].#秒
# print(time.strftime("%Y-%m-%d-%H-%M-%S")) #打印实时年月日和时间


copy模块-----深拷贝和浅拷贝
# import copy
# 浅拷贝:
# list1 = ["武汉多测师","南京多测试",["上海多测试"]]
# list2 = list1.copy() #复制list1,赋值给list2
# list1[0] = "成都多测试" #修改第一层数据list1 和list2 之间没有影响
# list2[2][0] = "龙华多测试" #修改第二层数据 --数据同时进行修改
# print(list1)
# print(list2)
# 什么原理导致它第一层不影响 ----第二层数据影响
# print(id(list1)) #2833524707904查看第一层id储存地址  id不同
# print(id(list2)) #2833524659200查看第一层id储存地址  id不同
# print(id(list1[2]))#2121820413184查看第二层id储存地址  id相同
# print(id(list2[2]))#2121820413184查看第二层id储存地址  id相同
# lisi1[2]与list2[2]的数据是同一个存储地址,所以修改两个list的时候会同步影响
结论 ----浅拷贝:它是用来复制----它只会复制第一层数据,
#                 两者之间第一层的数据会分配不同储存地址
#                 但是复制的数据是一个多维数组的情况下----
#                 他的子集数据并不会复制到,还是共同使用同一个储存地址
#                 所以还是会造成两者之间数据的影响

import copy
# 深拷贝---deepcopy
# list1 = ["武汉多测师","南京多测试",["上海多测试"]]
# list2 = copy.deepcopy(list1)
# print(list1)
# print(list2)
# 查看第一层储存数据:分配了不同的储存地址
# 2969996218624
# 2969996169984
# print(id(list1))
# print(id(list2))
# 查看第二层数据:
# 2381146823744
# 2381146824064
# print(id(list1[2]))
# print(id(list2[2]))
# 修改第一层数据
# ['湖北多测试', '南京多测试', ['上海多测试']]
# ['武汉多测师', '南京多测试', ['上海多测试']]
# list1[0] = "湖北多测试"
# print(list1)
# print(list2)
# 修改第二层数据:
# ['湖北多测试', '南京多测试', ['深圳多测试']]
# ['武汉多测师', '南京多测试', ['上海多测试']]
# list1[2][0] = "深圳多测试"
# print(list1)
# print(list2)
结论---deepcopy深拷贝他是完全进行copy了
#         就算是多维数组,它的子集也会从新分配地址
#             修改数据两者之间不会影响


python操作excel文件
# 用到xlrd的第三模块:其他程序员编写好的方法
# 需要通过下载安装的
# cmd窗口输入pip install xlrd ==1.2.0
# .xls .xlsx 1.2.0版本不支持 xlsx 1.2.0是支持的
# pycharm settings 设置里面找到proj 项目进行下载


import xlrd
#第一步打开excel表
# book = xlrd.open_workbook(r"C:\Users\szyc\PycharmProjects\wuhan8\venv\demo\新建 XLSX 工作表.xlsx")
#定位sheet页面 第一种方法
#通过sheet页的名称进行定位sheet
# sheet = book.sheet_by_name("wuhan")
#定位sheet页的方法二,通过索引进行定位
# sheet = book.sheet_by_index(0)
#第三种方法---获取所有sheet页面
# sheet = book.sheets()[0]#获取所有的sheet页面
# print(sheet)
# ,
# ,
#
# rows = sheet.nrows #获取当前页面的数据有效行数
# print(rows)

# 获取数据
# book = xlrd.open_workbook(r"C:\Users\szyc\PycharmProjects\wuhan8\venv\demo\新建 XLSX 工作表.xlsx")
# sheet = book.sheet_by_index(0)
# result = sheet.row_values(0,0,7)
# 第一个参数:代表行索引的位置
# 第二个参数:起始列的索引位置
# 第三个参数:结束列的索引位置
# result1 = sheet.row_values(1,0,7)
# result = sheet.row_values(2,2,3)
# result = sheet.row_values(3,1,2)
# result = sheet.row_values(3,2,3)
# print(result1)


excel函数的封装
# import xlrd
# def get_excel(File_name,File_index,*File_valuse):
#     book = xlrd.open_workbook(File_name)
#     sheet = book.sheet_by_index(File_index)
#     result = sheet.row_values(*File_valuse)
#     print(result)
# if __import__ == '__main__':
#     get_excel(
#         "66666.xlsx",0,1,3
#     )


random 属于python当中自带的模块
import random
random:随机生成0-1之间的浮点数。但是能取到0,取不到1
# print(random.random())
randint 随机生成指定范围的整数
# print(random.randint(1,10))
randrange:随机生成指定范围的数
# print(random.randrange(1,10,2))
sample :在已知序列当中随机选取值(对字典不能使用)
# list1 = [1,34,2,5,7,4,2,57,42,7,8]
# print(random.sample(list1,4))
# tuple1 = (1,2,4,5,6,7,8,9,10)
# print(random.sample(tuple1,3))
# str1 = "12345678"
# print(random.sample(str1,4))
# set1 = {1,2,3,4,5,6}
# print(random.sample(set1,3))
choice:在已知序列中随机选取一个值 (对字典不能使用)
# list2 = [1,34,2,5,7,4,2,57,42,7,8]
# print(random.choice(list2))
shuffle:洗牌-----打乱列表顺序
# list3 = [1,34,2,5,7,4,2,57,42,7,8]
# random.shuffle(list3)
# print(list3)

import string
string 属于 python 当中自带的内建模块
# digits :生成0-9之间的数值
# print(string.digits)#0123456789
# ascii:生成所有大小的字母
# print(string.ascii_letters)#abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ


hashlib   MD5 加密 ,它只能加密不能用来解密
# import hashlib
# md5 = hashlib.md5()
# md5.update("wumingzhou".encode("utf-8"))
#第一个参数:加密的对象
#第二个参数:编码格式
# print(md5.hexdigest())#e10adc3949ba59abbe56e057f20f883e
# 加密输出后是一个16进制32位的加密文件

# 1,定义一个生成随机手机号的方法要求函数封装
# 前面三位号码自己定义  [135  156  186] 后面的8位随机
# import random
# def fk():
#     str1 = "0123456789"
#     list2 = [135,156,186,177]
#     a = (random.choice(list2))
#     b = (random.sample(str1,8))
#     a = str(a)
#     print("".join(a)+"".join(b))
# fk()

# def phone():
#     list1 = [135,166,132,177]
#     list2 = []
#     list2.append(str(random.choice(list1)))
#     for i in range(8):
#         list2.append(str(random.randint(0,9)))
#     print("".join(list2))
# phone()

#
import random #导入
import string
# 2.随机生成6位数的验证嘛,数字字母组合 要求函数封装
# def fu():
#     a = string.digits + string.ascii_letters
#     c = (random.sample(a,6))
#     # print("".join(c))
#     return "".join(c)
# fu()
import hashlib
# # 3.封装MD5加密方法 - -对6位数验证码进行加密
# def get_md5():
#     md5 = hashlib.md5()
#     md5.update(fu().encode("utf-8"))
#     print(md5.hexdigest())
# get_md5()


OS模块:操作路径的模块
import os
# getcwd 获取当前操作文件的路径的所在命令
# print(os.getcwd())#C:\Users\szyc\PycharmProjects\wuhan8\venv\demo

# isfile 判断当前路径下的内容到底是文件还是目录
# 是文件返回True,目录返回False
# print(os.path.isfile(r"C:\Users\szyc\PycharmProjects\wuhan8\venv\demo"))

# isdir 判断当前的路径是一个目录还是文件
# 是目录返回True,是文件就返回False
# print(os.path.isdir(r"C:\Users\szyc\PycharmProjects\wuhan8\venv\demo"))

# split 分割 文件或目录    目录和文件都支持分割
#                       返回是以元组tuple的类型
# print(os.path.split(r"C:\Users\szyc\PycharmProjects\wuhan8\venv\demo\day4.py"))
# print(os.path.split(r"C:\Users\szyc\PycharmProjects\wuhan8\venv\demo"))

# join 拼接路径
# str1 = "C:\strings"
# print(os.path.join(str1,"wu.txt"))  #C:\strings\wu.txt

# mkdir 创建一个目录
# print(os.mkdir(r"C:\Users\szyc\PycharmProjects\wuhan8\venv\demo\duoceshi"))

# rename 修改一个目录
# print(os.rename(r"C:\Users\szyc\PycharmProjects\wuhan8\venv\demo\duoceshi",
#                 r"C:\Users\szyc\PycharmProjects\wuhan8\venv\demo\wumingzhou"))

# mknod 创建文件
# print(os.mknod())

# 获取当前的路径:dirname获取上级路径
print(os.path.dirname(__file__))  #__file__当前文件的意思

# 获取上上级的路径
print(os.path.dirname(os.path.dirname(__file__)))

分享至 : QQ空间
收藏

0 个回复

您需要登录后才可以回帖 登录 | 立即注册