if o == 'Tak' or 'TAK' or 'tak' or 'tAk' or 'taK' or 'TaK':
Pomieszałeś kolejność wykonywania działań - `or` rozdziela wyrażenia logiczne. Więc to nie oznacza "czy o jest tekstem 'Tak' czy tekstem 'TAK'" tylko jednym warunkiem jest "czy o jest tekstem 'Tak'", drugim warunkiem jest 'TAK', trzecim warunkiem jest 'tak'... co oczywiście jest błędne. Warunek który jest niepustym tekstem jest zawsze prawdziwy.
Powinieneś albo (w kolejności od prostych poprawek do coraz bardziej idiomatycznego kodu):
- poprawić linię żeby każde wyrażenie po każdej stronie 'or' było osobnym porównaniem z ==,
- zastąpić ciąg 6 porównań z jednym sprawdzeniem czy tekst jest w liście ['Tak', 'TAK', 'tak' etc],
- po prostu zamienić tekst wejściowy na małe litery - wtedy wystarczy jedno porównanie z 'tak'.