Pytanie 1
Program w języku Python ma zamieniać liczbę punktów na ocenę, ale dla 85 punktów zwraca złą ocenę. Co wypisze i gdzie jest błąd?
p = 85
if p >= 50:
o = "dop"
elif p >= 75:
o = "db"
elif p >= 90:
o = "bdb"
else:
o = "ndst"
print(o)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.