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!
1) Screen Clearing
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:
os.system('clear')
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)
2) Typewriter effect
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.04
because it prints it not too fast and not too slow. But you can change it. Just change the value after st
Each time you want to do this typewriter effect, just do:
sp(“Hello World”)
Output:
Hello World
3) While loops to go back to menu (very basic)
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!
4) Colors
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 slowPrint
I mentioned earlier
5) Some functions you can use
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!
This helped with my python exam
Cool, glad it helped! :) @Leroy01010
Finally! Now to make colorful code!
Lol have fun! :) @johnnyfrancis
This helped me a LOT
Great thanks! @TheJuiceTin
I used like four of the five things given in this tutorial for my python project. Thx for this @Bookie0!
@GhostKing007 no problem, glad it helped! :)
@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?
@Bookie0 also here is the URL
https://repl.it/@TROD2007/TOP-SECRET-DONT-ENTER
@Bookie0 hey Bookie, im taking a little break from the top secret repl, now I made a new one and it is the game M.A.S.H do you know what it is? I need some help I think I can do something but im not sure. here the URl
https://repl.it/@TROD2007/MASH#main.py
would there be a way t make the color a def function so you can just do like green('test') for example?
@Imthebestthe hum yes, but how would you do slowprint? or input?
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 cyan
do 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
thanks
np ;) @Leroy01010
do you want to be in our game as a character @Bookie0
what game? also sure you can make me as a character ;) @Leroy01010
we have an error can you please fix it @Bookie0
ok repl link and i will join ;) @Leroy01010
Ummm @Bookie0 how do i add the typewriter effect thing for inputs.
Such as how do I add it to this: "email=input("What is the email address:").strip()"
Where do I put 'sp1' in the input?
yea i dont think you can add the typewriter effect to inputs...
oh ok, thx [email protected]
The screen clearer thing and the typewriter effect thing don't work with me. They say I have to define everything when I run it.
hum, are you sure you imported the things before? also did you put it in a function? send a pic of ur code plz @JosephSanthosh
Is there anyway you can add emoji's in inside a code?
uh yea, just either copy from the internet or get it from the computer (dont know if its possible on PC tho) @JosephSanthosh
ansi stuff
\033[39m
ends any color ANSI escape code (doesnt remove other stuff)
\033[38;2;<r>;<g>;<b>m
means you can do any rgb color
\033[4m
underlines text and
\033[24m
removes underline
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()
https://stackoverflow.com/questions/4842424/list-of-ansi-color-escape-sequences
is a usefull link for ansi escape codes, but quite a few dont work with the console
alternate way of clearing screen
also personally i prefer doing
print("\033c"+text)
to clear the screen as it is less flicker than
system("clear") print(text)
V this prints alot but doesnt flicker much (it also uses spacing1 but we arnt there yet)
https://MaxDonalds.mcutten.repl.run
end=x on print statements
print(text,end="")
wont create a new line
print(text,end="hello")
will print "cathello" or "doghello"
3 variations on spacing for menus
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)
print(spacing1(10,red+"hi","blue+hello"))
print(spacing1(10,red+"cat","blue+dog"))
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
print(spacing2(10,"hi","hello"))
is the same but it doesnt work with ansi for simplicity
but you can do
print(red+spacing2(10,"hi","hello"))
to print in one single color
hi hello
print(spacing3(10,"hi,"hello"," ")
print(spacing3(10,"cat,"dog","_")
will print
hi hello cat____dog
on the type writer effect
personally i find it annoying, add an option to remove it on the main menu if you use it
classes (better global variables)
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()
will output
hello hello cat
multiple of the same class can exist at the same time like this
example1=hi() example2=hi()
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
Um ok thx @Nettakrim
In typewriter effect, you imported curses but didn't use it.
Good tutorial though!
Oh, i just took it because in case.... i didn’t know
but thank you so much tho! @Warhawk947
NICE!
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 screen2.
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.
Also you can print a certain string to clear the screen also. @ArjunSS1
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,