Если вы хотите узнать, какое число четное или нечетное, вы пытаетесь выполнить этот
print([str(nub) + ' Odd' if nub % 2 != 0 else str(nub) + ' Even' for nub in range(1, 11)])
вывод: ['1 Odd', '2 Even', '3 Odd', '4 Even' , '5 Odd', '6 Even', '7 Odd', '8 Even', '9 Odd', '10 Even ']
В этом случае вы объявляете массив int x с 0 членами, что означает, что у них нет выделенного пространства памяти для массива, а у них нет имени ячейки памяти x.Таким образом, они не проверяют тип, когда вы вводите строку в целое число, и еще одна причина это то, что компилятор знает только, что существует некоторая переменная x, но этот тип неизвестен, потому что у них нет выделения памяти для x.Таким образом, ваша программа не выдала ошибку. Для получения подробной информации вы должны прочитать теорию состояний процесса компиляции, которая является частью Тема дизайна компилятора.