{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "6c9fdc9d",
   "metadata": {},
   "source": [
    "# 22-09 · HTTP Kody statusowe\n",
    "\n",
    "Praktyka do [„HTTP: Requests, Responses, Methods, and Status Codes”"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "360570ed",
   "metadata": {},
   "source": [
    "## Cel\n",
    "\n",
    "Napisz funkcję, która klasyfikuje HTTP kod statusu w zakresie – 2xx, 3xx, 4xx, 5xx."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "3d6e7342",
   "metadata": {},
   "source": [
    "## Sprawa robocza"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "160b0b06",
   "metadata": {},
   "outputs": [],
   "source": [
    "def gruppa_koda(kod):\n",
    "    if 200 <= kod < 300:\n",
    "        return \"успех\"\n",
    "    if 300 <= kod < 400:\n",
    "        return \"перенаправление\"\n",
    "    if 400 <= kod < 500:\n",
    "        return \"ошибка клиента\"\n",
    "    if 500 <= kod < 600:\n",
    "        return \"ошибка сервера\"\n",
    "    return \"неизвестный диапазон\"\n",
    "\n",
    "\n",
    "for kod in (200, 201, 302, 400, 404, 500):\n",
    "    print(kod, \"->\", gruppa_koda(kod))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c21c2b8a",
   "metadata": {},
   "source": [
    "## Sprawdzenie wyniku"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "79e43708",
   "metadata": {},
   "outputs": [],
   "source": [
    "assert gruppa_koda(200) == \"успех\"\n",
    "assert gruppa_koda(201) == \"успех\"\n",
    "assert gruppa_koda(303) == \"перенаправление\"\n",
    "assert gruppa_koda(404) == \"ошибка клиента\"\n",
    "assert gruppa_koda(500) == \"ошибка сервера\"\n",
    "print(\"Верно: код состояния классифицируется по диапазону.\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "3c24e929",
   "metadata": {},
   "source": [
    "## Zadanie niezależne od zadania ★★\n",
    "\n",
    "Napisz funkcję `eto_uspeh(kod)`zwraca True tylko dla kodów 2xx."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "3841f669",
   "metadata": {},
   "outputs": [],
   "source": [
    "def eto_uspeh(kod):\n",
    "    return 200 <= kod < 300\n",
    "\n",
    "\n",
    "assert eto_uspeh(200) is True\n",
    "assert eto_uspeh(201) is True\n",
    "assert eto_uspeh(404) is False\n",
    "assert eto_uspeh(302) is False\n",
    "print(\"Верно: eto_uspeh() отличает 2xx от остальных диапазонов.\")"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Cartesian Python 3.14",
   "language": "python",
   "name": "cartesian-python314"
  },
  "language_info": {
   "name": "python",
   "version": "3.14.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
