как присвоить значение ключа к каждой цифре datetime.now()?

import time
from datetime import datetime


def get_current_time():

    now = datetime.now()
    print(now.strftime(" %H:%M:%S"), end="" ) #время 

def print_digits(current_time):

    # значение в ключах это цифры 


    numbers = {'one' :['\u2588\u2588\u2588'
                        '\n     \u2588'
                         '\n    \u2588'
                          '\n     \u2588'
                           '\n     \u2588 '],

        'two' :  ['\u2588\u2588\u2588','  \u2588','\u2588\u2588\u2588','\u2588','\u2588\u2588\u2588'],

        'tree' : ['\u2588\u2588\u2588','  \u2588', '\u2588\u2588\u2588', '  \u2588', '\u2588\u2588\u2588'],


        'four' : ['\u2588 \u2588','\u2588 \u2588','\u2588\u2588\u2588','  \u2588','  \u2588'],


        'five' : ['\u2588\u2588\u2588', '\u2588','\u2588\u2588\u2588','  \u2588','\u2588\u2588\u2588'],

        'six' : ['\u2588\u2588\u2588', '\u2588', '\u2588\u2588\u2588', '\u2588 \u2588', '\u2588\u2588\u2588'],

        'seven' : ['\u2588\u2588\u2588', '  \u2588', ' \u2588', '\u2588', '\u2588'],


        'eight' : ['\u2588\u2588\u2588', '\u2588 \u2588', '\u2588\u2588\u2588', '\u2588 \u2588', '\u2588\u2588\u2588'],

        'nine' : ['\u2588\u2588\u2588','\u2588 \u2588', '\u2588\u2588\u2588', '  \u2588', '  \u2588'],

        'zero' : ['\u2588\u2588\u2588', '\u2588 \u2588', '\u2588 \u2588', '\u2588 \u2588', '\u2588\u2588\u2588']}

    #присвоение цифры к ключу
    
        for element in numbers.values():
            numbers['two'] = 2
            numbers['one'] = 1
            numbers['tree'] = 3
            numbers['four'] = 4
            numbers['five'] = 5
            numbers['six'] = 6
            numbers['seven'] = 7
            numbers['eight'] = 8
            numbers['nine'] = 9
            numbers['zero'] = 0
            
       # условие при котором будет принтоватьтся значение ключа 
    
            if numbers['one'] == 1:
                print("\r", element, end=""  )
       
            if numbers['two'] == 2:
                print("\r", element, end="")
            if numbers['tree'] == 3:
                print( "\r", element, end="")
            if numbers['four'] == 4:
                print( "\r", element, end="")
            if numbers['five'] == 5:
                print( "\r", element, end="")
            if numbers['six'] == 6:
                print( "\r", element, end="")
            if numbers['seven'] == 7:
                print( "\r", element, end="")
            if numbers['eight'] == 8:
                print( "\r", element, end="")
            if numbers['nine'] == 9:
                print( "\r", element, end="")
            if numbers['zero'] == 0:
                print( "\r", element, end="")   

def clear_screen():
    print("\r", end="") # принт в одну строку

def sleep_for_a_while(period): 
    time.sleep(1) # период задержки 

if __name__ == "__main__": 
    while True:
        current_time = get_current_time()
        print_digits(current_time)
        clear_screen()
        sleep_for_a_while(1)


Хочу присвоить значение ключа к каждой цифре datetime.now(). но не до конца понимаю логику. Буду благодарен если кто то поможет с объяснением. Я понимаю что написано некорректно, но я только начал учиться.


Ответы (2 шт):

Автор решения: vp_arth
import time
from datetime import datetime

digits = dict();
digits['0'] = 'Zero';
digits['1'] = 'One';
digits['2'] = 'Two';
digits['3'] = 'Three';
digits['4'] = 'Four';
digits['5'] = 'Five';
digits['6'] = 'Six';
digits['7'] = 'Seven';
digits['8'] = 'Eight';
digits['9'] = 'Nine';


print(datetime.now().strftime("%H:%M:%S"))
for ch in datetime.now().strftime("%H:%M:%S"):
  if ch in digits:
    print(digits[ch], end='')
  else:
    print(ch, end='')
print()

19:00:47
OneNine:ZeroZero:FourSeven

→ Ссылка
Автор решения: Serg Bocharov

В дополнение к предыдущему ответу и комментарию автора вопроса.

import colorama
from time import sleep
from datetime import datetime

digits = dict();
digits['0'] = 'Zero';
digits['1'] = 'One';
digits['2'] = 'Two';
digits['3'] = 'Three';
digits['4'] = 'Four';
digits['5'] = 'Five';
digits['6'] = 'Six';
digits['7'] = 'Seven';
digits['8'] = 'Eight';
digits['9'] = 'Nine';

colorama.init()

while True:    
    for ch in datetime.now().strftime("%H:%M:%S"):
        if ch in digits:
             print(digits[ch], end='')            
        else:
            print(ch, end='')
    sleep(1)
    print("\r\033[K", end='')

colorama добавлена для windows(из-за проблем с ANSI), для unix'ов она не нужна Более детально смотреть тут

→ Ссылка