you can use the str.ljust method of string, and put it into a function for convenience
template = """
_^__^_
|° °|
_|\__/|_
/ \\
/ {}\\
/ | |\\
|________|
| __ |
| / \\ |
|__| |__|
vv vv
"""
def fun(text):
print(template.format(text.ljust(9)))
and a quick test
>>> fun("0")
_^__^_
|° °|
_|\__/|_
/ \
/ 0 \
/ | |\
|________|
| __ |
| / \ |
|__| |__|
vv vv
>>> fun("420")
_^__^_
|° °|
_|\__/|_
/ \
/ 420 \
/ | |\
|________|
| __ |
| / \ |
|__| |__|
vv vv
>>> fun("hello")
_^__^_
|° °|
_|\__/|_
/ \
/ hello \
/ | |\
|________|
| __ |
| / \ |
|__| |__|
vv vv
additionally you can mix it with str.rjust so it can move to the other side, and even truncate if it is too long with some slice notation
template = """
_^__^_
|° °|
_|\__/|_
/ \\
/{}\\
/ | |\\
|________|
| __ |
| / \\ |
|__| |__|
vv vv
"""
def fun(text):
print(template.format(text[:9].ljust(6).rjust(9)))
a quick test
>>> fun("a")
_^__^_
|° °|
_|\__/|_
/ \
/ a \
/ | |\
|________|
| __ |
| / \ |
|__| |__|
vv vv
>>> fun("hello")
_^__^_
|° °|
_|\__/|_
/ \
/ hello \
/ | |\
|________|
| __ |
| / \ |
|__| |__|
vv vv
>>> fun("abracadabra")
_^__^_
|° °|
_|\__/|_
/ \
/abracadab\
/ | |\
|________|
| __ |
| / \ |
|__| |__|
vv vv
there is also str.center, which is another one you can play with...