Add-ons to your Python code to make it better!
Hello hello hello wassup people,
I’m just going to show you some quick things to make your Python code cool!
Screen clearing is very useful; you use it to, well, clear the screen. I like it a lot because you can use it to erase everything so that it looks better, and so that not too much text crowds the screen!
For the screen clearing, you need to just:
You can copy this code and put it every time you need to.
However, i prefer to create a function, so that i dont need to keep putting that (even if its just a few letters...):
def sc(): os.system(‘clear’)
As you can see I called the function
sc(),which stands for screen clear, so each time I want to clear the screen, i just call that function. It makes it just a bit shorter.
(Thanks to @ArjunSS1 for helping me with the screen clear)
Now this typewriter effect is super cool, because it makes the text print one letter at the time. You can regulate it so that it prints the text fast or slow.
First the imports:
import sys, os, curses import time
And this is the code:
st = 0.04 def sp(str): for letter in str: sys.stdout.write(letter) sys.stdout.flush() time.sleep(st) print()
I usually put it at
0.04because it prints it not too fast and not too slow. But you can change it. Just change the value after
Each time you want to do this typewriter effect, just do:
Personally, I’m not a pro in loops, but this is what I do sometimes. Imagine you want to do sort of menu option, like this:
print (“This is the menu”) action1 = input(“Type hello for some greetings > ”) if action1 == “hello”: print(“Hola”) print(“Bonjour”) print(“Aloha”)
So when the user types hello, several greetings will appear. But what if the user types something else by accident? Then, you could add an else statement, and saying something like “invalid”, and then the user could return to the menu,
This is how you do that:
back_to_menu = True while back_to_menu == True: print (“This is the menu”) action1 = input(“Type “hello” for some greetings > ”) if action1 == “hello”: print (“Hola”) print (“Bonjour”) print (“Aloha”) else: print (“You wrote something else than “hello”! ”) back_to_menu = True
So when you put
back_to_menu = True at the end of the
else statement, the user will arrive back at the menu!
This is how to make colors in Python.
Pretty simple, just copy paste these colors (because typing them would be to long...)
# colors black = "\033[0;30m" red = "\033[0;31m" green = "\033[0;32m" yellow = "\033[0;33m" blue = "\033[0;34m" magenta = "\033[0;35m" cyan = "\033[0;36m" white = "\033[0;37m" bright_black = "\033[0;90m" bright_red = "\033[0;91m" bright_green = "\033[0;92m" bright_yellow = "\033[0;93m" bright_blue = "\033[0;94m" bright_magenta = "\033[0;95m" bright_cyan = "\033[0;96m" bright_white = "\033[0;97m"
So to use it, just put the color before the text:
print(bright_yellow + “text here”)
This also works with the
slowPrintI mentioned earlier
I always use these functions in my code because they are kinda like shortcuts. Less is more!
# for putting some space in between stuff def space(): print() print() # prompt the user to press enter def enter(): input("Enter to continue\n> ") # btw: \n is for another line
So that’s about it i know this tutorial isn’t very good, but I hope it helped you and you enjoyed it.
Lastly, nothing is under copyright, so go on and copy paste!
Tips, suggestions, questions, comments to let me know stuff, etc. Feel free to contact me!
Small things, good article but you could do these things
You can use os to clear the screen instead like
os.system('clear') which clears the screen
For the typewriter there is an inbuilt argument in your print statement so instead of running sys.stdout.flush() you can just print(char, end='', flush=True)
Intead of running whille_back_to_menu = True you can just run while back_to_menu which is true so it will loop alternatively you can run while 1: which is True and you add a break statement to the if action1 == 'hello' block.
Hey, thanks for commenting! I’m gonna change the screen clear and out your name for credit @ArjunSS1
Also for the typewriter I just put a function so that it’s shorter
For the back to menu, I know it can always loop back, but sometimes the user wants to just go to another thing instead of looping back.
But anyways thanks for the comments and remember,
@Bookie0 hey Bookie, i need help on the top secret thingy. I'm trying to make it into one of those continue things where it keeps asking them the same question until they give an answer that they are supposed to do. or can you help me with the turtle thing. cuz I think that if I use it, I will be able to make buttons, right?
Instead of doing
while back_to_menu == True just do
while back_to_menu. Also, instead of defining a hundred variables, why not make it into a dictionary. So instead of
cls[´cyan´] it makes it more organized in my opinion. Also, with this system, it is easy to implement a function to change the color of an entire print statement:
def pc(t, c): print(cls[c] + t + cls[´white´])
Ah ok then, thanks for the suggestions. For the while loop thing, I had made this like a while ago, so I didn’t know about what you suggested.
And for the colors, I had no idea how to do it; also I made it into variables so that it seemed a bit more easier, especially for beginners ;)
But thanks anyways @PYer
\033[39m ends any color ANSI escape code (doesnt remove other stuff)
means you can do any rgb color
underlines text and
you can do
import re self.removeAnsi = re.compile(r'\x1B(?:[@-Z\\-_]|\[[0-?]*[ -/]*[@-~])') print(self.removeAnsi.sub('', green+"hi"))
to remove ansi codes (for if you are doing len() with variables that have color etc)
you can make colors accessable from all functions like this
def func1(): print(colors.black+"hi") def func2(): print(colors.red+"hi") class colors(): black = "\033[0;30m" red = "\033[0;31m" ... func1() func2()
is a usefull link for ansi escape codes, but quite a few dont work with the console
also personally i prefer doing
to clear the screen as it is less flicker than
V this prints alot but doesnt flicker much (it also uses spacing1 but we arnt there yet)
wont create a new line
will print "cathello" or "doghello"
for printing menus these can be usefull
def spacing1(length,a,b): removeAnsi = re.compile(r'\x1B(?:[@-Z\\-_]|\[[0-?]*[ -/]*[@-~])') a=str(a) b=str(b) return a+(" "*(length-(len(removeAnsi.sub('',a))+len(removeAnsi.sub('',b))))+b) def spacing2(length,a,b): a=str(a) b=str(b) return a+(" "*(length-(len(a)+len(b)))+b) def spacing3(length,a,b,c): a=str(a) b=str(b) return a+(c*(length-(len(a)+len(b)))+b)
will output (in red for the first value and blue for the second)
hi hello cat dog
as you can see they maintain a legnth of 10
is the same but it doesnt work with ansi for simplicity
but you can do
to print in one single color
hi hello cat____dog
personally i find it annoying, add an option to remove it on the main menu if you use it
class hi(): def __init__(self): #this is called when the class is initiated self.var="hello" def hello(self): print(self.var) self.hi("cat") def hi(self,text): print(self.var+" "+self.hi) example=hi() example.hello()
hello hello cat
multiple of the same class can exist at the same time like this
any variables that change based of input will be seperate to eachover, self.var in example1 can have a different value to self.var in example2