Разбор по шагам
1️⃣Список services содержит три строки: "api/v2", "db" и "auth".
2️⃣Выражение "api" in services проверяет, есть ли в списке элемент, равный строке "api".
3️⃣Строка "api/v2" начинается с "api", но целиком ей не равна. Строки "db" и "auth" тоже не совпадают с искомым значением.
4️⃣Подходящего элемента нет, поэтому результат проверки — False. Именно его выводит print.
Почему это важно
В списке разрешённых сервисов или имён файлов in ищет совпадение с целым элементом. Если нужна проверка начала имени сервиса, это условие задают явно: any(s.startswith("api/") for s in services) найдёт в этом списке "api/v2".
Post #4923
181