Dlaczego tak
W instrukcji if–elif–else wykonuje się tylko blok pierwszego spełnionego warunku, a pozostałe są pomijane. Dla p = 85 już pierwszy warunek p >= 50 jest prawdziwy, więc o = "dop", a progi 75 i 90 nie są nigdy sprawdzane dla wyników powyżej 50. Poprawnie warunki należy uporządkować od najwyższego progu: p >= 90, p >= 75, p >= 50. Odpowiedź bdb zakłada, że wykonują się wszystkie spełnione bloki po kolei.