@link_vrb

Как решить проблему в коде?

from threading import Thread

colours = []
th = []
por = '123'
pora = {1: 'зеленым', 2: 'желтым', 3: 'красным'}
por1 = {}
numsv = int(input('Кол-во светофоров --> '))
print('\n\t1 --> зеленый\n\t2 --> желтый\n\t3 --> красный')
for i in range(int(numsv)):
    colours.append(int(input('> ')))


def prino(colour, numsvet):
    print('Светофор номер {} зажегся {} цветом'.format(numsvet, colour))


def svetofor(col, numsv):
    por1[numsv] = por.replace(str(col), '')
    for i in por1[numsv]:
        prino(pora[i], numsv)
    while True:
        for i in por:
            prino(pora[i], numsv)


def svets(num):
    for i in range(int(num)):
        Thread(target=svetofor, args=(i+1, i,)).start()


svets(numsv)

это код а вот ошибка:
prino(pora[i], numsv)
KeyError: '2'

она не единственная но первая
  • Вопрос задан
  • 70 просмотров
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Python
Седой и строгий
У вас в pora ключи числовые, а в переменной i строка.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Idaproject Москва
от 70 000 ₽
БАРС Груп Санкт-Петербург
от 60 000 до 200 000 ₽
Alente Красноярск
от 60 000 до 70 000 ₽