您的位置:首页 > 编程语言 > Python开发

python day02 变色字体进度条输出

2017-07-21 16:58 295 查看
话说——

#从淘宝上的购买视屏中学习到了一种打印10个#的进度条:(感谢视频中的老师哈~~)

import sys
import time
for index in range(10):
sys.stdout.write("\033[0;31m#\033[0m")
sys.stdout.flush()
time.sleep(0.35)


于是,我便油然而生一种想法:

能否把一句话进行如此输出,然后给需要着重突出的词语上色,然后进行输出呢?

接下来,我便开始了折腾:

word="你这个狗"
for index in word:
if index== "狗":
sys.stdout.write("\033[0;31m%s\033[0m" % index)
else:
sys.stdout.write(index)
sys.stdout.flush()
time.sleep(0.38)
*#sleep的时间可以依照自己的爱好选择*


后来在网上查了关于变色代码\033[0;31m“”\033[0m其他颜色选项,链接网址:http://blog.csdn.net/menglei8625/article/details/7594925http://www.mamicode.com/info-detail-975430.html拿到以上资料后,我便开始理清自己的思路:

1 用户输入一句话,然后给出去重后的字符,让用户选择需要变色的字体:

2 选择好字体好,再选取颜色,将字符和对应的字体存入字典中,以便输出;

3 用户可以返回选取字体,再取颜色

4 如果确定了需要的变色字符后,则进行变色处理

……

废话不多说,上代码,如有错误,请大神不要喷~~*

“`

import sys

import time

class jindutiao():

ClourCodes = {

‘black’: ‘0;30’, ‘bright gray’: ‘0;37’,

‘blue’: ‘0;34’, ‘white’: ‘1;37’,

‘green’: ‘0;32’, ‘bright blue’: ‘1;34’,

‘cyan’: ‘0;36’, ‘bright green’: ‘1;32’,

‘red’: ‘0;31’, ‘bright cyan’: ‘1;36’,

‘purple’: ‘0;35’, ‘bright red’: ‘1;31’,

‘cream-coloured’: ‘0;33’, ‘bright purple’: ‘1;35’,

‘gray’: ‘1;30’, ‘bright yellow’: ‘1;33’,

‘normal’: ‘0’

}

def init(self):

#初始化三个实例:

#trans_list分别用来接受需要变色的字与对应的ClourCodes中的values,实现改变字体与颜色相对应

#trans_string则是用户输入的字符串

#enable则用来控制循环

self.trans_list={}

self.trans_string=input(“请输入一条需要变色的字符串>>>:”)

self.enable=False

def show_fonts(self):

#定义一个提示输入的字体,并用集合set去重复

for member in set(self.trans_string):

print(member)

def get_fonts(self):

#定义一个选择字体的方法

choice=input(“请输入需要变色的字>>>:”)

if choice in self.trans_string:

print(“\033[41;1m%s\033[0m已经选中,下面进入其颜色选取>>>:” % choice)

return choice

else:

print(“invalid code!”)

exit()

def get_colour(self):

#定义一个选取颜色代码的方法

choice=self.get_fonts()

for colour in self.ClourCodes:

print(colour.rjust(20,”-“))

choice2=input(“请输入需要变的颜色代号:”)

if choice2 in self.ClourCodes:

self.trans_list[choice]=self.ClourCodes[choice2]

print(“————恭喜,\033[41;1m%s\033[0m已经选中,颜色为\033[41;1m%s\033[0m—————” % (choice,choice2))

else:

print(“invalid choose!”)

def next_step(self):

#定义一个用户选择,是继续循环选取字体改变颜色,还是进行进度条输出

choice3=input(“请返回继续选择请按Y,查看颜色变化并进行下一步操作按N>>>>”)

if choice3==”Y” or choice3==”y”:

pass

elif choice3==”N” or choice3==”n”:

for k,v in self.trans_list.items():

print(“\033[%sm%s\033[0m” % (v,k))

self.get_transstr()

self.enable=False

else:

print(“invalid options!”)

pass

def get_transstr(self):

#定义一个从存储的集合中获取需要的values,也就是颜色代码的方法

for i in self.trans_string:

if i in self.trans_list:

sys.stdout.write(“\033[%sm%s\033[0m” % (self.trans_list[i],i))

else:

sys.stdout.write(i)

sys.stdout.flush()

time.sleep(0.38)

def start(self):

#启动方法

self.enable=True

while self.enable:

self.show_fonts()

self.get_colour()

self.next_step()

if name==”main“:

p=jindutiao()

p.start()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python 进度条