Writing a Cool Happy Birthday Text Using Python
June is the month when my crush celebrates her birthday; I hope she doesn’t see this because I want to surprise her with stories. Python is one of the great languages I’ve been learning for a few years. It’s a very convenient programming language; all we need are ideas to make things work.
The Modules
In this stories, let me write about how to write cool happy birthday text, but first of all we should need two modules installed, it’s pyfiglet
and termcolor
. Both of them is used for different cases. Pyfiglet
is used to generate beautiful text and the termcolor
is used for the coloring styles.
Look at here when I want to run the program it ask me to install pyfiglet
And yeah let’s install pyfiglet.
Pyfiglet is solved, but it need termcolor installed, let’s installed it too
The command is very simple like this.
And finally the program is working.
The Program
Well, the above program in The Module section is static, I want it to be blink, so it could be attractful to see.
One way to achieve blinking text in Windows cmd is by using ctypes library in Python to call the Windows API function SetConsoleTextAttribute to change the text attributes (including blinking) of the console. Here is the full source code
import pyfiglet
import random
import time
import os
def clear_screen():
# Function to clear the screen in cmd
os.system('cls' if os.name == 'nt' else 'clear')
def happy_birthday():
colors = ['red', 'green', 'blue', 'yellow', 'magenta','rose', 'cyan', 'white']
ascii_art = pyfiglet.figlet_format("Happy Birthday, my love", font="slant")
while True:
for color in colors:
# Print the text in different colors to create blinking effect
clear_screen()
print(pyfiglet.figlet_format("Happy Birthday, my love", font="slant", justify="center"))
print("\033[{}m".format(random.randint(31, 37)), end='')
time.sleep(0.5)
clear_screen()
time.sleep(0.5)
happy_birthday()
The Breakdown
The script uses a module called pyfiglet
to create ASCII art text, making text look fancy. It also uses the random
module to pick colors randomly and the time
module to control the timing of the blinking effect. The os
module is used to clear the screen for a smoother visual effect.
import pyfiglet
import random
import time
import os
A function called clear_screen()
is defined to clear the screen in the command prompt.
def clear_screen():
# Function to clear the screen in cmd
os.system('cls' if os.name == 'nt' else 'clear')
Another function, happy_birthday()
, is defined to display the birthday message and make it blink.Inside happy_birthday()
:
- A list of colors is created.
colors = ['red', 'green', 'blue', 'yellow', 'magenta','rose', 'cyan', 'white']
- The ASCII art for “Happy Birthday” is generated using
pyfiglet
. - The program enters an infinite loop.
ascii_art = pyfiglet.figlet_format("Happy Birthday, my love", font="slant")
- Inside the
happy_birthday()
we generate looping that iterate through the color from the lists, the fist was calling theclear_screen()
function.
while True:
for color in colors:
# Print the text in different colors to create blinking effect
clear_screen()
- The birthday message is printed in ASCII art at the center of the screen.
print(pyfiglet.figlet_format("Happy Birthday, my love", font="slant", justify="center"))
- The text color is set to a random color.
print("\033[{}m".format(random.randint(31, 37)), end='')
- The program waits for a short time. The screen is cleared again. Next, another short pause occurs before the loop repeats, creating a blinking effect.
time.sleep(0.5)
clear_screen()
time.sleep(0.5)
Here are the results after we run the program.
Conclusions
Well, the text could be anything you want, it just based on your own idea, in this stories, since my crush is getting birthday, I like to write this article, hehe. Thanks for reading. 👧💝