一、解决进度条的宽度
1 print(‘%-50s‘ %‘>‘) #左对齐,宽度为50 2 3 print(‘%-%ds‘ %50) # d 先被传值,此时 s 还未传值 4 5 print(‘%s%%‘ %50) # s 后第一个 % 是取消掉后面一个 % 的意义 6 7 此时,若需取消 print(‘%-%ds‘ %50) 中第一个 % 的意义,可以在其旁边再加一个%,形式为print(‘%%-%ds‘ %50), 8 其结果为 ‘%-50s‘ ,继续为 s 传值,就是 ‘ %-50s‘ %">",此时进度条的宽度问题就解决了
二、不换行+跳到行首打印
1 import time 2 time.sleep(1) 3 print((‘\r %%-ds‘ %50) %‘>‘ ,end=‘ ‘) # \r 将光标移至行首,end=‘ ‘ 控制光标不换行 4 time.sleep(1) 5 print((‘\r %%-ds‘ %50) %‘>>‘ ,end=‘ ‘) # \r 将光标移至行首,end=‘ ‘ 控制光标不换行
三、最终结果
import time def make_progress(percent,width=80): if percent>1:percent=1 # 百分比有可能超过1(假如当total_size=1235,recv_size=1234时,第一次传输时没有问题,第二次传输时,百分比就超过1了) # 输出的字符串 show_str=(‘%%-%ds‘ %width) % (int(percent*width)* ‘>‘) # 根据已下载的百分比进行打印 print(‘\r%s %s%%‘ %(show_str,int(percent * 100)),end=" ") total_size=123456 recv_size=0 while recv_sie<total_size: time.sleep(0.1) recv_size+=1234 percent=recv_size/total_size # 调用进度条功能去打印进度条(进度条应该根据下载的百分比来改变) make_progress(percent)
四、随机验证码(数字+大写字母)
1 import random 2 def ver(n): 3 res="" 4 for i in range(n): 5 # 循环一次得到一个随机字符(数字或者字母) 6 s=chr(random.randint(65,90)) 7 num=str(random.randint(0,9)) # TypeError: must be str, not int 8 res+=random.choice([s,num]) 9 return res 10 res=ver(n) # n 传入具体数字,可随机生成n位数的验证码 11 print(res)
原文地址:https://www.cnblogs.com/Smart1san/p/9210737.html
时间: 2024-11-03 21:45:11