so i made a small password strength tester for me, my friends and my family, as seen here:
import re strength = ['You didnt type anything','Terrible','weak sause','avarage','Good!','Very Strong', 'THE FORCE IS STRONG WITH THIS ONE'] score = 1 password=(raw_input("please type in the password you would like rated:")) if len(password) < 1: print strength if len(password) >=1 and len(password)<=4: print strength else: print "" if len(password) >=7: score+=1 print "password was made stronger by not being short" else: print "Your password is really short, concider making it longer" if len (password) >=10: score+=1 print "password was made stronger by long" else: print "An even longer password would make it stronger" if re.search('[a-z]',password) and re.search('[A-Z]', password): score+=1 print "password was made stronger by having upper & lower case letters" else: print "Indlucing both upper and lower case letters will make your password stronger" if re.search('[0-9]+', password): score+=1 print "Password was made stronger by using numbers" else: print "Using numbers will make your password stronger" if re.search('[.,!,@,#,$,%,^,&,*,?,_,~,-,£,(,)]',password): score+=1 print "Password was made stronger by using punctuation marks and characters" else: print "Using punctuation marks and characters will make the password stronger" print "\n final password rating is:" print strength[score]
what i was hoping to do is:
1st - add color to the comments i've given the user about the content of their password, good comments such as the:
"password was made stronger by using numbers" will have a green output, while constructive feedback such as the
"using numbers will make your password stronger" will have a red output, making it easier for the user to spot the pros and cons of his password
2nd - i was wondering, if it works the same, can i color certain items in my above "strength" list? making the first two red, the middle pair yellow and the last pair green?
IDLE's console does not support ANSI escape sequences, or any other form of escapes for coloring your output.
You can learn how to talk to IDLE's console directly instead of just treating it like normal stdout and printing to it (which is how it does things like color-coding your syntax), but that's pretty complicated. The
idle documentation just tells you the basics of using IDLE itself, and its
idlelib library has no documentation (well, there is a single line of documentation—"(New in 2.3) Support library for the IDLE development environment."—if you know where to find it, but that isn't very helpful). So, you need to either read the source, or do a whole lot of trial and error, to even get started.
Alternatively, you can run your script from the command line instead of from IDLE, in which case you can use whatever escape sequences your terminal handles. Most modern terminals will handle at least basic 16/8-color ANSI. Many will handle 16/16, or the expanded xterm-256 color sequences, or even full 24-bit colors. (I believe
gnome-terminal is the default for Ubuntu, and in its default configuration it will handle xterm-256, but that's really a question for SuperUser or AskUbuntu.)
Learning to read the
termcap entries to know which codes to enter is complicated… but if you only care about a single console—or are willing to just assume "almost everything handles basic 16/8-color ANSI, and anything that doesn't, I don't care about", you can ignore that part and just hardcode them based on, e.g., this page.
Once you know what you want to emit, it's just a matter of putting the codes in the strings before printing them.
But there are libraries that can make this all easier for you. One really nice library, which comes built in with Python, is
curses. This lets you take over the terminal and do a full-screen GUI, with colors and spinning cursors and anything else you want. It is a little heavy-weight for simple uses, of course. Other libraries can be found by searching PyPI, as usual.
If your console (like your standard ubuntu console) understands ANSI color codes, you can use those.
Here an example:
print ('This is \x1b[31mred\x1b[0m.')
being overwhelmed by being VERY NEW to python i missed some very simple and useful commands given here: Print in terminal with colors using Python? -
eventually decided to use CLINT as an answer that was given there by great and smart people