生成随机验证码和打印进度条

一 生成随机验证码

import random

# 1X3Y3ZX
def make_code(size=7):
res = ''
for i in range(size):
# 循环一次则得到一个随机字符(字母/数字)
s = chr(random.randint(65, 90))
num = str(random.randint(0, 9))
res += random.choice([s, num])
return res


res=make_code()
print(res)

二 打印进度条
'''

[# ]
[## ]
[### ]
[#### ]
[##### ]

'''
# print('[%-50s]' %'#')
# print('[%-50s]' %'##')
# print('[%-50s]' %'###')
# print('[%-50s]' %'####')
# print('[%-50s]' %'#####')

# print('%s%%' %50)

# 1、控制打印进度条的宽度
# res='[%%-%ds]' %50
# print(res %'#')
# print(res %'##')
# print(res %'###')
# print(res %'####')
# print(res %'#####')

#2、不换行+跳回行首打印
# import time
# print(('\r[%%-%ds]' %50) %'#',end='')
# time.sleep(0.5)
# print(('\r[%%-%ds]' %50) %'##',end='')
# time.sleep(0.5)
# print(('\r[%%-%ds]' %50) %'###',end='')
# time.sleep(0.5)
# print(('\r[%%-%ds]' %50) %'####',end='')
# time.sleep(0.5)
# print(('\r[%%-%ds]' %50) %'#####',end='')

import time

def make_progress(percent,width=50):
if percent > 1:percent=1#如果下载的百分比大于1,那么就让它等于1
show_str=('[%%-%ds]' % width) % (int(percent * width) * '#')# -表示左对齐的意思,如果当中填入数字就是说明在这[%%-%ds]当中它的总宽度为50 不够的部分用空格对齐并且左对齐
#[%-50s]
print('\r%s %s%%' %(show_str,int(percent * 100)),end='')#百分号在引号里面都有其特殊的意义如果想要取消它的特殊意义就要在其后面再跟一个百分号
#\r 的意思是光标永远在最前面 end=''的目的是去掉print后面默认的\n
#print("[%%-%ds]"%50)#字符串格式化之后还是字符串,后面再跟一个%号才是为它传值
# res="[%%-%ds]"%50
# print(res %"#")此结果才是为它加上一个百分号,在上面的代码中体现为show_str=('[%%-%ds]' % width) % ←就是这个代码中最右边的这个百分号
#然后再打印总的宽度和所要打的符号上面的代码体现为(int(percent * width) * '#')
# (int(percent * width) * '#')代码中 int表示的是括号里的算法可能算出来会有小数加int就可以让它变成整数,然后打印你需要显示多少个的#,因为字符串可以相乘
total_size=66666 #模拟总的文件大小,多少字节
recv_size=0 #模拟下载了多少字节
while recv_size < total_size: #如果下载的字节小于总的字节就让它一直下载
time.sleep(0.1) # 模拟经过了0.5的网络延迟下载了1024个字节
recv_size+=1024 #模拟每次网络延迟之后所已经下载了多少
# 调用打印进度条的功能去打印进度条
percent=recv_size / total_size #下载百分比所得到的算法,已经下载的字节除以总的字节
make_progress(percent)#d调用函数并且传过去percent的值
#补充字符串的格式化
# print("%")#%
# print("%%")#%%
# print("%%d")#%%d
# #print("%%d"%10)#报错
# #print("%d$"%10)#报错
# print("%%%d"%10)#%10
# print("%d%%"%10)#10%
# print("%%%ds"%(10,"呵呵"))#这里经过了转译 只变成了%10s,%10中的%号没有任何意义
# print(("%%%ds"%10)%"呵呵")#这里的和上面的逻辑有变化,这里的先有括号让它变成独立的个体这里的百分号就有意义了会打印出右对齐的呵呵







posted @ 2018-09-22 01:37  不沉之月  阅读(244)  评论(0编辑  收藏  举报