# 取随机小数
# print(random.random()) #取得就是0到1之间 没啥用
# print(random.uniform(3,4)) #设置两个数 n f 之间的小数
# 取随机整数
# print(random.randint(1, 4)) #随机取一个整数 下面有对比
# print(random.randrange(1, 4)) #4取不到 只是一个摆设 1到3之间随机
# print(random.randrange(1, 100)) #1到99随机取
# print(random.randrange(1,100,2)) #也可以再加一位 就是步长 那就只能取到奇数了
#随机抽取 下面 列表也是可以的
# l = (1,2,3,4,5,6,7,(3,4),'alex','single') #这个随机抽取很好用 每个抽到几率都是一样的
# ret = random.choice(l)
# print(ret)
# ret = random.choice(range(1,100))
# print(ret)
# ret = random.sample(l,3) #从l这个元祖中 随机抽3个值出来,不会有重复的,比如说抽三个一样的
# print(ret)
# 乱序 不支持元祖 目前只试了 列表 是支持的
# l = [1,2,3,4,5,6,7,(3,4),'alex','single']
# random.shuffle(l)
# print(l)
# ret = random.sample(range(0,10),6) 自己想的 垃圾方法 不能取到相同的 不合逻辑
# print(ret)
# code = ''
# import random
# for i in range(6):
# num = random.randint(0,9)
# code+= str(num)
# print(code)
#变成函数
# def get_code(n=6): #这里用默认参数 省很多数
# code = ''
# import random
# for i in range(n):
# num = random.randint(0,9)
# code+= str(num)
# return code
# r1 = get_code(4)
# r2 = get_code()
# print(r1,r2)
# 65-90 A-Z# 97-122 a-z
# def foo(n = 6):
# code = ''
# for i in range(n):
# num = random.randint(0,9)
# letter = random.randint(65,90)
# chr(letter)
# letter2 = random.randint(97, 122)
# chr(letter2)
# qq = random.choice((num,chr(letter),chr(letter2)))
# code+= str(qq)
# return code
# r1 = foo()
# print(r1)
# -------老师的做法
# 请你生成一个6位验证码(数字 和 字母)
# 字母怎么生成 chr(65) 'A'
# print(chr(65))
# 生成一个随机字母
# 65-90 A-Z
# num = random.randint(65,90)
# print(chr(num))
# 97-122 a-z
# num = random.randint(97,122)
# print(chr(num))
# 每一位上出现的内容既可以是数字 也可以是字母
# 随机生成一个数字 一个大写字母 一个小写字母
# def get_code(n):
# code = ''
# for i in range(n):
# num = str(random.randint(0,9))
# alpha_upper = chr(random.randint(65, 90))
# alpha_lower = chr(random.randint(97, 122))
# c = random.choice([num,alpha_upper,alpha_lower])
# code += c
# return code
# ret = get_code()
# print(ret)
# 可以纯数字 也可以纯字母
# def get_code(n=6,a = True):
# code = ''
# for i in range(n):
# c = str(random.randint(0,9))
# if a:
# alpha_upper = chr(random.randint(65, 90))
# alpha_lower = chr(random.randint(97, 122))
# c = random.choice([c,alpha_upper,alpha_lower])
# code += c
# return code
# ret = get_code(a=False)
# print(ret)
# -----------------------------import os 模块
import os
# os.mkdir('abc') #创建文件夹 但是很垃圾只能创建一个
# os.makedirs('a/b') #创建两个文件夹 a文件夹里有一个b文件夹 ('a/b/c')也可以在增加
# os.rmdir('abc') #删除文件夹 但是如果文件夹里还有东西 那就不能删除,很安全的考虑
# os.removedirs('a/b') #要删除文件夹 这个方法 会确定是空文件夹才能删除
# ret = os.listdir('D:\骑士') #获取这个目录下的所有文件,和文件夹名字,还有隐藏文件
# print(ret)
# print(os.stat('D:\骑士')) #坚持这个文件上次的修改时间
# --------和路径相关模块
# ret = os.path.abspath('D:\骑士\venv\Scripts\python.exe D:/骑士/day23/01.py')
# print(ret)#右边路径干干是倾斜方向不对,应该照着我的电脑里的那种,这个模块可以改过来,不然的话只有python解释器能懂
# ret2 = os.path.abspath('day23/01.py') #帮你转成绝对路径
# print(ret2)
# aaa = 'D:\骑士env\Scripts\python.exe D:\骑士\day23\01.py'
# ret3 = os.path.split(aaa)
# print(ret3) #得到一个元组,('D:\\骑士\\day23', 'day23\x01.py') 可以自动识别分割
# ret = os.path.dirname(aaa) #得到前面一半
# print(ret)
# ret1 = os.path.basename(aaa) # 得到后面一半
# print(ret1)
# ret = os.path.exists('D:\骑士\day9')
# print(ret) #判断这个文件路径 是否存在
# r = os.path.isfile('D:\骑士\day9') #判断是不是文件
# r1 = os.path.isdir('D:\骑士\day9') #判断是不是文件夹
# print(r,r1)
# r1 = os.path.join('D:/骑士/day9','day999')
# print(r1) #D:/骑士/day9\day999 拼接路径 但是斜杆不对了
# #就用这个#os.path.abspath('D:/骑士/day9\day999') 跨平台,在不同的平台需要拼接这个路径
# os.path.getatime() #返回path指向文件或者目录的最后访问时间
# os.path.getmtime() #返回path指向文件或者目录的最后修改时间
# 非常重要
# ret = os.path.getsize('D:\骑士\day9')
# print(ret) #文件夹大小不准确的值 4096
# 在windows 文件夹创建出来就是4096字节 假设存满它就扩大一倍8192,这个不算文件夹里有多大,只是有了东西就占这么大
# 在linux
# 在mac 文件夹初始值占得大小 32或者64 +16
# os.system('bash command')
# os.popen('bash comand').read()
# os.getcwd()
# os.chdir('dirname')
# ret = os.system('dir') #以字符串的形式来执行操作系统的命令
# print(ret)
#print(os.getcwd()) #不是当前被执行的文件所在的目录,而是执行这个文件所在的目录
sys 模块
sys.argv
执行这个 打印出当前这个目录的绝对路径 得到一个列表形式的
可以再后面 或者前面加 字符串什么的, 就可以达到 执行这个文件的同时,可以检验后面两个变量对不对,这样就可以做成一个登陆功能
sys.path
print(sys.path) 找他存在的内存地址,找到就返回,能够找出很多目录。
一个模块是否被导入,就看这个模块所在的目录在不在sys.path路径中
内置模块和第三方扩展模块都不需要我们处理sys.path就可以直接使用
自定义的模块的导入工作需要自己手动的修改sys.path
sys.modules
查看当前内存空间中所有的模块,和这个模块的内存空间。