⚡ Кратко
- Квиз по классам символов, квантификаторам и якорям.
- Практика: проверка пароля и извлечение IPv4-адресов.
Квиз 1. Сопоставьте шаблон с тем, что он найдёт
Сопоставьте каждый шаблон с описанием:
\d+
[a-zA-Z0-9]+
\s+
[^a-zA-Z0-9]+
- Несколько подряд идущих пробелов
- Последовательность букв и цифр
- Последовательность цифр
- Последовательность не букв и не цифр
Квиз 2. Найдите ошибку
import re
re.findall("\d+", "Value: 123")
Квиз 3. Ленивый квантификатор
В каком шаблоне используется ленивый квантификатор?
<.+>
<.*>
<.*?>
*[a-z]
Квиз 4. Сопоставьте якорь с назначением
^
$
\b
\B
- Указывает на конец строки
- Указывает на начало строки
- Обозначает границу слова
- Указывает, что позиция не является границей слова
Квиз 5. re.match vs re.search
В чём отличие re.match() от re.search()?
match() ищет по всей строке, search() — только в начале
match() работает быстрее
match() проверяет только начало, search() — в любой части строки
Практическая работа 1. Проверка пароля
Реализуйте программу, которая проверяет пароль по требованиям:
- Минимум 8 символов.
- Есть хотя бы одна заглавная буква.
- Есть хотя бы одна строчная буква.
- Есть хотя бы одна цифра.
Пример вывода
Введите пароль: Pass1234
Пароль надёжен.
---
Введите пароль: k2n6bd7
Пароль не соответствует требованиям.
Практическая работа 2. Извлечение IPv4-адресов
Программа должна найти все корректные IPv4-адреса в строке. IPv4 состоит из четырёх чисел от 0 до 255, разделённых точками.
Данные
text = "Server1: 192.168.1.1, Server2: 10.0.0.254, Invalid: 999.123.456.78"
Пример вывода
192.168.1.1
10.0.0.254
Проверка понимания
Выберите один вариант ответа. После клика правильный ответ подсветится зелёным.
Вопрос 1
Какой стиль имён переменных обычно рекомендует PEP 8?
Вопрос 2
Зачем использовать f-strings в современном Python?
Вопрос 3
Когда полезен ранний возврат из функции?
Вопрос 4
Что делает аннотация типа в Python?
Вопрос 5
Как лучше обрабатывать ожидаемую ошибку преобразования?
Вопрос 6
Чем отличается = от ==?
Вопрос 7
Что делает print()?