python day02 变色字体进度条输出

来源:互联网 发布:淘宝航空箱定做 编辑:程序博客网 时间:2024/05/23 15:00

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

import sysimport timefor 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/7594925 ;http://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()

原创粉丝点击