Вывод чисел в одну строку
Сделал свой таймер который считывает время в секундах, а после выводит их в нормальном формате. Но мне захотелось детализировать его сделав вместо простых цифр и двоеточий символы (словарь с ними ниже). Но возникла ситуация, что они выводятся каждый в отдельную строку и тем самым во-первых не влазят в окно, во-вторых выглядят не красиво. Задача состоит в том, чтобы вывести все цифры и символы в одну строку. Код:
from colorama import Fore, init
symbol_numbers = {
"0": """
░█████╗░
██╔══██╗
██║░░██║
██║░░██║
╚█████╔╝
░╚════╝░""",
"1": """
░░███╗░░
░████║░░
██╔██║░░
╚═╝██║░░
███████╗
╚══════╝ """,
"2": """
██████╗░
╚════██╗
░░███╔═╝
██╔══╝░░
███████╗
╚══════╝ """,
"3": """
██████╗░
╚════██╗
░█████╔╝
░╚═══██╗
██████╔╝
╚═════╝░ """,
"4": """
░░██╗██╗
░██╔╝██║
██╔╝░██║
███████║
╚════██║
░░░░░╚═╝""",
"5": """
███████╗
██╔════╝
██████╗░
╚════██╗
██████╔╝
╚═════╝░ """,
"6": """
░█████╗░
██╔═══╝░
██████╗░
██╔══██╗
╚█████╔╝
░╚════╝░ """,
"7": """
███████╗
╚════██║
░░░░██╔╝
░░░██╔╝░
░░██╔╝░░
░░╚═╝░░░""",
"8": """
░█████╗░
██╔══██╗
╚█████╔╝
██╔══██╗
╚█████╔╝
░╚════╝░""",
"9": """
░█████╗░
██╔══██╗
╚██████║
░╚═══██║
░█████╔╝
░╚════╝░""",
":": """
██╗
╚═╝
░░░
░░░
██╗
╚═╝"""
}
while True:
try:
times = int(input("Enter the number of seconds for how many I need to set the timer: "))
break
except TypeError:
pass
hours = times // 3600
minutes = (times - hours * 3600) // 60
seconds = times - (hours * 3600) - (minutes * 60)
list_to_print = [Fore.YELLOW + symbol_numbers[i] for i in
f"{str(hours).rjust(2, '0')} : {str(minutes).rjust(2, '0')} : {str(seconds).rjust(2, '0')}"
if i != " "]
print(" ".join(list_to_print))
Пример нужного вывода:
░░███╗░░██████╗░ ██╗ ██████╗░░░██╗██╗ ██╗ ███████╗░█████╗░
░████║░░╚════██╗ ╚═╝ ╚════██╗░██╔╝██║ ╚═╝ ██╔════╝██╔═══╝░
██╔██║░░░░███╔═╝ ░░░ ░█████╔╝██╔╝░██║ ░░░ ██████╗░██████╗░
╚═╝██║░░██╔══╝░░ ░░░ ░╚═══██╗███████║ ░░░ ╚════██╗██╔══██╗
███████╗███████╗ ██╗ ██████╔╝╚════██║ ██╗ ██████╔╝╚█████╔╝
╚══════╝╚══════╝ ╚═╝ ╚═════╝░░░░░░╚═╝ ╚═╝ ╚═════╝░░╚════╝░
Ответы (1 шт):
Автор решения: insolor
→ Ссылка
Нужно отдельно собрать отдельные строки выводимого текста из каждой отдельной строки каждой цифры, потом их вывести:
symbol_numbers = {
"0": """
░█████╗░
██╔══██╗
██║░░██║
██║░░██║
╚█████╔╝
░╚════╝░""",
...,
"9": """
░█████╗░
██╔══██╗
╚██████║
░╚═══██║
░█████╔╝
░╚════╝░""",
":": """
██╗
╚═╝
░░░
░░░
██╗
╚═╝"""
}
def show(text):
lines = ['' for _ in range(7)] # 7 - количество строк в каждом символе
for c in text:
symbol = symbol_numbers[c].split('\n') # Разбить символ на отдельные строки
# Добавить каждую строку символа к соответствующей строке результата
for i, line in enumerate(symbol):
lines[i] += line.strip() + ' '
print(*lines, sep='\n')
show("12:34:56")
Вывод:
░░███╗░░ ██████╗░ ██╗ ██████╗░ ░░██╗██╗ ██╗ ███████╗ ░█████╗░
░████║░░ ╚════██╗ ╚═╝ ╚════██╗ ░██╔╝██║ ╚═╝ ██╔════╝ ██╔═══╝░
██╔██║░░ ░░███╔═╝ ░░░ ░█████╔╝ ██╔╝░██║ ░░░ ██████╗░ ██████╗░
╚═╝██║░░ ██╔══╝░░ ░░░ ░╚═══██╗ ███████║ ░░░ ╚════██╗ ██╔══██╗
███████╗ ███████╗ ██╗ ██████╔╝ ╚════██║ ██╗ ██████╔╝ ╚█████╔╝
╚══════╝ ╚══════╝ ╚═╝ ╚═════╝░ ░░░░░╚═╝ ╚═╝ ╚═════╝░ ░╚════╝░