今天本打算写完购物车再来写作业博客,可是实在太难了,
今天学的两个简单的模块(准确的说是3)
第一个 import random 这个模块不知道该怎么记,随机数?
第一学的取随机数,和随机小数
print(random。random()) 这个比较牛逼了,就是随机0-1之间的小数,加东西就报错
print(random。uniform(n,m)) 这个就是取n到m中的小数,随机,n或m是小数也行,就是取中间的
随机整数
print(random。randint(n,m)) 取n m中的整数,顾头顾尾
print(random。randrange(n,m))然哥就是顾头不顾尾
print(random。randrange(n,m,数字) 老朋友 步长,取 1-10 所有奇数偶数,或3个数几个数什么的
从一个列表中随机取值
列表名=【字符串,数字,元组,字典】这些都可以
print(random。choice(列表名)) 随机取一个元素,
print(random。sample(列表名,2)) 随机取几个元素,几个具体看后面的数字
random。shuffle(列表名)
print(列表名) 随机打乱这个列表,再重新排序一下这个列表,打印出来
4位数字的验证码
s=“ ”
for i in range(4) 6位同理 数字换成6
a=str(random.randint(0,9))
s+=a
print(a)
函数版本
def suiji(a=6):
s=“ ”
for i in range(a) 这里a是6如果下面没有传参就是6了
a=str(random.randint(0,9))
s+=a
return a
print(suiji())
print(suiji(5)) 这传参的话就是5了, 这样就5位了
现在是6位加字母的
s=" "
for i in range(6)
a=random.randint(0,9) 这里马上学到一个新知识点,chr和ord chr是把后面的数字变成ascii码打出来,ord则是相反 把ascii码转换成数字
b=chr(random.randint(65,90)) 65 到90 26个大写英文字母
c=chr(random.randint(97,122)) 97到122 26个小写英文字母
d=random.choice([a,b,b])
s+=d
print(s)
函数版的
def suiji(n=6): n这个同理传参的问题
s=" "
for i in range(n)
a=random.randint(0,9)
b=chr(random.randint(65,90)) 65 到90 26个大写英文字母
c=chr(random.randint(97,122)) 97到122 26个小写英文字母
d=random.choice([a,b,b])
s+=d
return s
print(suiji(5)) 参数问题
def suiji(n=6,zimu=true):
s=" "
for i in range(n)
a=random.randint(0,9)
if zimu:
b=chr(random.randint(65,90))
c=chr(random.randint(97,122))
a=random.choice([a,b,c]) 变量还能这么用,学到了
s+=a
return s
print(suiji(5,false)) 这是直接位置传参,
print(suiji( zimu=false)) 这是关键字传参
import time
time。sleep(2) 程序运行到这里等待2s
time 模块主要就是时间问题
时间格式
2018-8-20 2018.8.20 字符串数据类型 格式化时间-给人看的1
结构化时间
1534732642.617272 浮点型数据类型,以s为单位 时间戳时间 - 给机器计算用的
时间最小是1970 1 1 0:0:0 伦敦时间,现在在想是格林尼治时间还是图灵机是英国发明的
时间戳时间 1534758988.760395
打印方法print(time.time())
格式化时间
print(time.strftime('%Y-%m-%d %H:%M:%S')) 这个就是人能看懂的2018-08-20 17:58:26
print(time.strftime('%y-%m-%d %H:%M:%S')) 这个就是小写y 前面是18 没20 了
print('%c')这是英国的时间,同上,Mon Aug 20 18:56:54 2018
结构化时间
a=time.localtime() 北京时间
pring(a) 这个给出一堆结构化时间 time.a(tm_year=2018, tm_mon=8, tm_mday=20, tm_hour=19, tm_min=18, tm_sec=21, tm_wday=0, tm_yday=232, tm_isdst=0) 分别是年月日,小时,分钟,秒,星期几 1是0,程序员的梗,最后一个夏令时,澳洲还有
print(a.tm_mon) 显示8 参考上面你懂的
时间戳换成字符串时间
print(time。time())打印当前时间的时间戳
a=time.localtime(1500000000)
print(a) ======print(time.gmtime150)) 都是结构化时间
ret=time.strftime('%y-%m-%d %H:%M:%S',a)
print(rert) 这样打印就是格式化时间了
字符串时间 转 时间戳
a=time.strptime('2018-8-8',%y-%m-%d')
print(a) 这个是结构化时间
b=time.mktime(a)
print(b) 这个就是时间戳了
这个时候很有必要来着一张图了
# 1.查看一下2000000000时间戳时间表示的年月日
# 时间戳 - 结构化 - 格式化
a=time.localtime(2000000000) 这时候a是结构化时间
b=time.steftime('%y-%m-%d',a) 这时候b是格式化时间
3.请将当前时间的当前月1号的时间戳时间取出来 - 函数
# 2018-8-1
# def get_time():
# st = time.localtime() 这个默认是电脑当前时间,变成结构化时间
# st2 = time.strptime('%s-%s-1'%(st.tm_year,st.tm_mon),'%Y-%m-%d')把电脑当前的结构化时间中的年月拿出来,1留着,
# return time.mktime(st2) 再把新做的时间 做成时间戳
# print(get_time())
4.计算时间差 - 函数
# 2018-8-19 22:10:8 2018-8-20 11:07:3
# 经过了多少时分秒
# str_time1 = '2018-8-19 22:10:8'
# str_time2 = '2018-8-20 11:07:3' 定义两个变量,定义好时间
# struct_t1 = time.strptime(str_time1,'%Y-%m-%d %H:%M:%S')
# struct_t2 = time.strptime(str_time2,'%Y-%m-%d %H:%M:%S') 两个字符串时间转化成结构化时间
# timestamp1 = time.mktime(struct_t1)
# timestamp2 = time.mktime(struct_t2) 两个结构化时间转换成时间戳
# sub_time = timestamp2 - timestamp1 两个时间戳相减
# gm_time = time.gmtime(sub_time) 时间戳转换成英国的结构化时间
# # 1970-1-1 00:00:00 因为英国结构化时间是标准时间,中国的多8个小时
# print('过去了%d年%d月%d天%d小时%d分钟%d秒'%(gm_time.tm_year-1970,gm_time.tm_mon-1,
# gm_time.tm_mday-1,gm_time.tm_hour,
# gm_time.tm_min,gm_time.tm_sec))
# usr = input('username')
# pwd = input('password')
# pwd = sys.argv[2]
# if usr == 'alex' and pwd == 'alex3714':
# print('登录成功')
# else:
# exit()
# 1. 程序员 运维人员 在命令行运行代码
# 2. 操作系统input事件 阻塞 退出了CPU的竞争
# sys.path
# print(sys.path)
# 模块是存在解释器里的么??? 不是
# 模块应该是存在硬盘上
# 但是我在使用的时候 import --> 这个模块才到内存中
import os os是和操作系统交互的模块
os.makedirs(‘dir1/dir2’) 这个可以创建多级目录,
os。mkdir(‘dir3’) 这只能创建单级目录
os。rmdir('dir3") 删单级目录
os。removedirs(‘dir3/dir4’) 删多个 这两个只能删空文件夹
os.'system('dir') # 执行操作系统的命令,没有返回值,实际的操作/删除一个文件 创建一个文件夹 exec
程序要处理这些路径
# exec/eval执行的是字符串数据类型的 python代码
# os.system和 os.popen是执行字符串数据类型的 命令行代码
system像exec直接去执行没有返回值
popen像eval有返回值
popen('dir) 适合做查看类的操作
os.getcwd() 当前工作目录 并不是指当前文件所在的目录,而是当前文件是在哪个目录执行的