Порівняння Рядків
Порівняння рядків у Python за замовчуванням є чутливим до регістру. Якщо введення користувача може відрізнятися за використанням великих і малих літер або містити зайві пробіли, спочатку нормалізуйте рядки, а потім порівнюйте. Надійний підхід — обрізати пробіли та уніфікувати регістр перед перевіркою на рівність або наявність префікса/суфікса.
Чутливість до регістру та ігнорування регістру
За замовчуванням, "Apple" == "apple" повертає False. Щоб ігнорувати регістр, нормалізуйте обидві сторони.
12345# Comparing two email addresses entered with different letter cases email_saved = "Support@Codefinity.com" email_entered = "support@codefinity.COM" print(email_saved.lower() == email_entered.lower()) # True → emails match regardless of case
casefold() — потужніший, міжнародно орієнтований варіант lower(), який є кращим вибором для порівнянь без урахування регістру.
12345# Comparing international usernames regardless of letter case username_db = "straße" username_input = "STRASSE" print(username_db.casefold() == username_input.casefold()) # True → matches even with special characters
Обрізання та порівняння
Користувачі часто випадково додають пробіли. Видаляйте початкові та кінцеві пробіли перед порівнянням.
12345# Validating a user's role input from a form user_input = " admin " required_role = "ADMIN" print(user_input.strip().casefold() == required_role.casefold()) # True → matches after cleanup and case normalization
Перевірка префікса та суфікса
Використовуйте startswith та endswith. Для нечутливих до регістру перевірок спочатку нормалізуйте рядок.
123456789# Checking if the uploaded document has the correct format and name uploaded_file = "Report_Final.PDF" # Validate file type (case-insensitive) print(uploaded_file.lower().endswith(".pdf")) # True → valid PDF file # Validate file name prefix (e.g., all reports start with "rep") required_prefix = "rep" print(uploaded_file.strip().casefold().startswith(required_prefix.casefold())) # True → matches prefix ignoring case
Послідовний процес нормалізації
Виберіть простий, повторюваний порядок:
- Видалення зовнішніх пробілів за допомогою
.strip(); - Уніфікація регістру за допомогою
.casefold()(або.lower(), якщо бажаєте); - Далі використовуйте
==,in,startswith,endswithчи інші перевірки.
1. Який рядок правильно виконує регістронезалежну перевірку на рівність?
2. Дано s = " Hello ". Який вираз повертає True для регістронезалежної перевірки рівності з "hello", ігноруючи зовнішні пробіли?
3. Яке твердження є найбільш точним для надійного порівняння без урахування регістру?
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
Awesome!
Completion rate improved to 3.45
Порівняння Рядків
Свайпніть щоб показати меню
Порівняння рядків у Python за замовчуванням є чутливим до регістру. Якщо введення користувача може відрізнятися за використанням великих і малих літер або містити зайві пробіли, спочатку нормалізуйте рядки, а потім порівнюйте. Надійний підхід — обрізати пробіли та уніфікувати регістр перед перевіркою на рівність або наявність префікса/суфікса.
Чутливість до регістру та ігнорування регістру
За замовчуванням, "Apple" == "apple" повертає False. Щоб ігнорувати регістр, нормалізуйте обидві сторони.
12345# Comparing two email addresses entered with different letter cases email_saved = "Support@Codefinity.com" email_entered = "support@codefinity.COM" print(email_saved.lower() == email_entered.lower()) # True → emails match regardless of case
casefold() — потужніший, міжнародно орієнтований варіант lower(), який є кращим вибором для порівнянь без урахування регістру.
12345# Comparing international usernames regardless of letter case username_db = "straße" username_input = "STRASSE" print(username_db.casefold() == username_input.casefold()) # True → matches even with special characters
Обрізання та порівняння
Користувачі часто випадково додають пробіли. Видаляйте початкові та кінцеві пробіли перед порівнянням.
12345# Validating a user's role input from a form user_input = " admin " required_role = "ADMIN" print(user_input.strip().casefold() == required_role.casefold()) # True → matches after cleanup and case normalization
Перевірка префікса та суфікса
Використовуйте startswith та endswith. Для нечутливих до регістру перевірок спочатку нормалізуйте рядок.
123456789# Checking if the uploaded document has the correct format and name uploaded_file = "Report_Final.PDF" # Validate file type (case-insensitive) print(uploaded_file.lower().endswith(".pdf")) # True → valid PDF file # Validate file name prefix (e.g., all reports start with "rep") required_prefix = "rep" print(uploaded_file.strip().casefold().startswith(required_prefix.casefold())) # True → matches prefix ignoring case
Послідовний процес нормалізації
Виберіть простий, повторюваний порядок:
- Видалення зовнішніх пробілів за допомогою
.strip(); - Уніфікація регістру за допомогою
.casefold()(або.lower(), якщо бажаєте); - Далі використовуйте
==,in,startswith,endswithчи інші перевірки.
1. Який рядок правильно виконує регістронезалежну перевірку на рівність?
2. Дано s = " Hello ". Який вираз повертає True для регістронезалежної перевірки рівності з "hello", ігноруючи зовнішні пробіли?
3. Яке твердження є найбільш точним для надійного порівняння без урахування регістру?
Дякуємо за ваш відгук!