Подстановка значения переменной в f-строку

Помогите пожалуйста.
f'Процесс PID:1 перешел в состояние ВЫПОЛНЕНИЕ:'
f'Класс приоритета: {0}, значение - {x}'
Мне нужно чтобы вместо {0}, ставился класс, в зависимости от значения.
Если 24, то класс Real time class.
Если 12, то класс High class.
Как это можно сделать?
При запуске мы добавляем значения через команды add1 24, затем add2 13. И запускаем через команду start. И в этой строке мы получаем что в f'Класс приоритета: {0}, значение - {x} \n \n' вместо {x} ставится 24. А мне нужно чтобы кроме этого еще на месте, где стоит {0} ставился нужный класс. При значении {x} 24 это будет класс Real time class, если {x} 13, то High class и так далее
{x} берется из

idx = {} 
    
for x in idx:
#!/usr/bin/env python3
# -*- config: utf-8 -*-

from tkinter import *
import queue
import threading
import time


class QueueThread(threading.Thread):
    def __init__(self, name):
        threading.Thread.__init__(self)
        self.name = name

    def run(self) -> None:
        print(f'Старт потока {self.name}')
        process_queue()
        print(f'Завершение потока {self.name}')


def process_queue():
    while True:
        try:
            x = ps_queue.get(block=False)
            process1 = idx[x]
            y = ps_queue.get(block=False)
            process2 = idx2[y]
        except queue.Empty:
            return
        else:
            print_factors(x, y, process1, process2, res_list)

        time.sleep(1)


def print_factors(x, y, process1, process2, res_list):
    try:
        for g in results:
            res_list = g[x]
    except KeyError:
        res_list = []
    current_res = []
    st = time.time()
    try:
        begin = drop_list[x]
    except KeyError:
        begin = 1
    for i in range(begin, x + 1):
        current = time.time()
        if i == x:
            del idx[x]

            term.insert(END, f'Процесс PID:1 перешел в состояние ВЫПОЛНЕНИЕ:\n '
                             f'Класс приоритета: {0}, значение - {x} \n \n'
                             f'----------------------------------------------------------------\n \n'
                             f'Процесс PID:1 перешел в состояние ГОТОВНОСТЬ, в потоке \n'
                             f'появился процесс PID:2 с более высоким приоритетом: \n \n'
                             f'Значение приоритета процесса PID:1 = {x} \n'
                             f'Значение приоритета процесса PID:2 = {y} \n \n'
                             f'----------------------------------------------------------------\n \n'
                             f'Процесс PID:2 перешел в состояние ВЫПОЛНЕНИЕ: \n'
                             f'Класс приоритета: {0}, значение - {y} \n \n'
                             f'----------------------------------------------------------------\n \n'
                             f'Процесс PID:2 завершил работу, и перешел в состояние ОЖИДАНИЕ \n '
                             f'Класс приоритета: {0}, значение - {y} \n \n'
                             f'----------------------------------------------------------------\n \n'
                             f'Процесс PID:1 перешел в состояние ВЫПОЛНЕНИЕ \n'
                             f'Класс приоритета: {0}, значение - {x} \n \n'
                             f'----------------------------------------------------------------\n \n'
                             f'Процесс PID:1 завершил работу, и перешел в состояние ОЖИДАНИЕ \n '
                             f'Класс приоритета: {0}, значение - {x} \n \n'
                             f'----------------------------------------------------------------\n \n')
            break


def entry_get(event):
    global idx, cm_list, ps_queue
    command = en1.get()
    term.insert(END, f'# {command} \n')
    cm_list.append(command)
    en1.delete(0, 'end')
    if command == 'exit':
        root.destroy()
    elif command.startswith('add1 '):
        parts = command.split(' ', maxsplit=3)
        num = int(parts[1])
        proc = float(0.5)
        idx[num] = proc
        ps_queue.put(num)
    elif command.startswith('add2 '):
        parts = command.split(' ', maxsplit=3)
        num = int(parts[1])
        proc = float(0.5)
        idx2[num] = proc
        ps_queue.put(num)
    elif command == 'clear':
        term.delete(0.0, END)
    elif command == 'start':
        thread1 = QueueThread('A')
        thread1.start()
    elif command == 'list':
        term.insert(END, f'Список приоритетов, состовляющих алгоритм планирования \n')
        for i in idx:
            term.insert(END, f'{i} \n')
        for i in idx2:
            term.insert(END, f'{i} \n')
    elif command == 'help':
        term.insert(END, f'"add1 УРОВЕНЬ ПРИОРИТЕТА" - добавляет уровень приоритета процесса 1.')
        term.insert(END, f'"add2 УРОВЕНЬ ПРИОРИТЕТА" - добавляет уровень приоритета процесса 2.')
        term.insert(END, f'"list" - выводит список приоритетов, для алгоритма планирования. \n')
        term.insert(END, f'"clear" - очищает терминал. \n')
        term.insert(END, f'"help" - выводит список команд. \n')
        term.insert(END, f'"start" - запускает алгоритм планирования. \n')
        term.insert(END, f'"exit" - выход. \n')
    else:
        term.insert(END, f'{command} -- неизвестная комманда, используйте "help". \n')


if __name__ == '__main__':
    idx = {}
    idx2 = {}
    res_list = []
    results = []
    drop_list = {}
    cm_list = []
    ps_queue = queue.Queue()
    for x in idx:
        ps_queue.put(x)
    for y in idx2:
        ps_queue.put(y)
    r = str('Real time class')
    h = str('High class')
    a = str('Above normal class')
    n = str('Normal class')
    b = str('Below normal class')
    i = str('Idle class')
    info = str('неопределен')

    if idx == 24:
        print(r)
    elif idx == 13:
        print(h)
    elif idx == 10:
        print(a)
    elif idx == 8:
        print(n)
    elif idx == 6:
        print(b)
    elif idx == 4:
        print(i)
    if idx2 == 24:
        print(r)
    elif idx2 == 13:
        print(h)
    elif idx2 == 10:
        print(a)
    elif idx2 == 8:
        print(n)
    elif idx2 == 6:
        print(b)
    elif idx2 == 4:
        print(i)

    root = Tk()

    root.geometry('570x400')
    root.title("Подсистема управления процессами с алгоритмом планирования на основе абсолютных приоритетов")
    root.resizable(False, False)

    lb1 = Label(text='Командная строка:', width=0)
    lb2 = Label(text='Терминал:', width=0)
    en1 = Entry(width=68, bg='black', fg='white')
    term = Text(bg='black', width=65, height=19, fg='white')

    en1.bind('<Return>', entry_get)
    en1.bind('<Button-1>', lambda x: print(idx))

    lb1.grid(row=0, column=0, sticky=W, pady=10, padx=5)
    lb2.grid(row=1, column=1, sticky=W)
    en1.grid(row=0, column=1, sticky=W)
    term.grid(row=2, column=0, columnspan=2, padx=20, pady=10)

    root.mainloop()

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

Автор решения: strawdog

Ну так и выводите в строке нужное вам значение, зачем вы 0 выводите?

Создайте, например, себе словарь где для каждого x прописано название класса, и выводите на печать:

class_grades={13:"Hight class", 24:"Real time class"}
x=13
print(f'Класс приоритета: {class_grades[x]}, значение - {x} \n \n')
# Класс приоритета: Hight class, значение - 13 
x=24
print(f'Класс приоритета: {class_grades[x]}, значение - {x} \n \n')
# Класс приоритета: Real time class, значение - 24 
→ Ссылка