← Python мануфактура

Конспект і таймкоди

0:00

`if`, `elif`, `else` і межі status codes

if запускає блок лише для truthy умови, elif перевіряє наступний варіант, а else покриває залишок. Для HTTP ranges треба явно визначати inclusive/exclusive boundaries: success зазвичай 200 <= code < 300, client error — 400 <= code < 500, server error — 500 <= code < 600.

1:31

Повне покриття варіантів

Якщо result створюється лише всередині гілок, неочікуване значення може залишити змінну неініціалізованою. Мінімальні безпечні варіанти — початковий result = "unknown" або завершальний else. Це важливо для нестандартних status codes та пошкоджених test data.

3:01

Порядок гілок і семантика HTTP response

Ланцюг if/elif зупиняється на першій істинній умові, тому вузькі діапазони не повинні бути перекриті ширшими попередніми умовами. Status code описує результат HTTP-обробки, але не гарантує відсутність side effects: система могла записати дані, а потім повернути 500. Тест має перевіряти і response, і важливий стан системи.

5:31

`None`, truthiness і membership

Optional message перевіряється через is None. Порожні list/dict/set є false-like, тому if not errors читається як «помилок немає». Для allowlist browser-ів вираз browser in supported_browsers коротший і точніший за ланцюг or, але значення все одно чутливі до регістру та точної назви.

7:30

`match/case` і вибір простої конструкції

match/case зручний для багатьох чітких варіантів на кшталт окремих auth codes, але для двох-трьох ranges звичайний if/elif часто простіший. Розширені приклади пропонують додати assertions і exceptions та подивитися, як змінюється failure output.