str.casefold() приводит строку к форме для сравнения без учёта регистра по правилам Unicode. Преобразование сильнее lower(): например, немецкая ß становится ss.
Что делает метод casefold() у строк?
str.casefold() приводит строку к форме для сравнения без учёта регистра по правилам Unicode. Преобразование сильнее lower(): например, немецкая ß становится ss.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
str.casefold() приводит строку к форме для сравнения без учёта регистра по правилам Unicode. Преобразование сильнее lower(): например, немецкая ß становится ss.
Исходная строка не изменяется: метод возвращает новую. Выражение 'Straße'.casefold() == 'STRASSE'.casefold() даёт True, тогда как одного lower() недостаточно. Это полезно для поиска и сопоставления текста, но не является полноценной языковой сортировкой. Внешне одинаковые символы и разные Unicode-представления требуют отдельной политики нормализации; casefold сам по себе не решает проблему похожих символов или безопасности идентификаторов.