Появляется ли какая-либо ошибка?
Пока что я вижу только оформительскую ошибку - в строке где print на один пробел меньше. Если это исправить, код работает корректно и печатает yes.
Обращаю ваше внимание, что вы нарушаете п.4.2 - вы сильно изменили вопрос, люди работали с одной информацией, а вы затем поменяли на другую. Не надо так делать. Лучше было дополнить вопрос ещё одним кодом, уточняющим текстом.
И старайтесь сделать так, чтобы в вашем вопросе отвечающим не приходилось догадываться и додумывать
Я в вопросе накосячил, но в коде все правильно написано. Проблема не в том, что ошибка вылазит, а в том, что Python выдает print(74==74) #false. Что с этим делать я не знаю. Могу скинуть весь код, может там найдете ошибку.
dariuz, call.data это строка.
Так что когда делаете num = call.data.split('_')[1]
num все так же строка.
И проверка выглядит соответственно так: if 74=='74':
Естественно они не равны.
dariuz, ну код с одной стороны рабочий, если не забыть закрыть скобку для nums
С другой стороны не будет работать как вы ожидаете, потому что не знаете основ и не желаете их учить.
А условие не выполняется потому что в nums будет список со словарем из одного элемента 'num': 3
nums = [{'num': 1, 'num': 2, 'num': 3] замени на nums = [{'num1': 1, 'num2': 2, 'num3': 3].
А так получается он у тебя присваивает num=3 и условие пролетает
А так - это словарь, помещенный в список, в котором он же и является одним элементом, при этом в нем только одинаковые ключи. В таком случае ключ берется последний, так что num['num'] всегда вернет 3
Потому что у тебя ерунда написала nums = [{'num': 1, 'num': 2, 'num': 3]
У тебя список содержит словарь который содержит элементы с одинаковыми ключами