Условие if и оператор or?
Читайте!
Ваше условие (if a == 'нет' or 'да':) работает следующим образом:
Python проверяет, a равно 'нет', естественно а неравно 'нет', а содержит строку '1111', НО ПОТОМ идет OR, операнд справа - это строка 'да', естественно Python считает ее за истину true, она ведь непустая!
Получается, это условие, эквивалентно if a == 'нет' or true:, а это значит, что print('ok') выполнится в любом случае, так как, в условии есть часть or true,Pythony плевать на  a == 'нет', он видит OR, видит true и выполняет условие, проще говоря, можно выкинуть лишнее, и записать так: if true: - это, все также эквивалентно if a == 'нет' or 'да':
Для большего понимания происходящего, попробуйте заменить if a == 'нет' or 'да': на if a == 'нет' or '':. В этом случае, пустая строка эквивалентна false и при этом,a неравно 'нет', а это значит, что условие не будет выполнено и вы не увидите print('ok').

Правильное условие:
if a == 'да':
    print('ok')
elif a == 'нет':
    print('net')
else:
    print('error')
В случае с or, правильно будет так:
if a == 'да' or a == 'нет':

ЗАНОВЕС!
if var: <- интерпретатор в этом случае проверяет, не является ли значение переменной пустым или None, если не является - условие истинно
x = 10
print(True if x else False)

x = 0
print(True if x else False)

x = 'string'
print(True if x else False)

x = ''
print(True if x else False)