Этот модуль посвящен изучению методов проверки содержимого строк в Python: isdigit() и isalpha(). Эти методы крайне полезны при валидации пользовательского ввода, например, когда нужно убедиться, что введенный возраст состоит только из цифр, а имя — только из букв.
Вы научитесь:
- Определять, состоит ли строка только из цифр.
- Проверять, состоит ли строка только из букв (кириллица или латиница).
- Обрабатывать ситуации с пробелами, знаками препинания и смешанным содержимым.
- Применять эти методы в условных конструкциях и циклах для защиты программы от некорректных данных.
Пройдите задания от простых примеров к построению полноценной логики валидации данных. Обратите внимание: методы проверки возвращают булево значение (True или False) и чувствительны к любым символам, не подпадающим под их категорию (включая пробелы).
- Модуль 1: Основы синтаксиса Python
- Модуль 2: Переменные и типы данных
- Модуль 3: Операторы
- Арифметические операторы (+, -, *, /).
- Целочисленное деление и остаток (// и %).
- Возведение в степень (**).
- Операторы сравнения.
- Логические операторы (and, or, not).
- Операторы присваивания (=, +=, -=).
- Операторы принадлежности (in, not in).
- Операторы идентичности (is, is not).
- Битовые операторы.
- Тернарный оператор.
- Модуль 4: Ввод и вывод данных
- Модуль 5: Условные конструкции
- Модуль 6: Циклы
- Модуль 7: Строки
- Модуль 8: Списки
- Модуль 9: Кортежи
- Модуль 10: Словари
- Модуль 11: Множества
- Модуль 12: Функции
- Модуль 13: Встроенные функции
- Модуль 14: Работа с файлами
- Модуль 15: Обработка исключений
- Модуль 16: Модули и пакеты
- Модуль 17: ООП - Основы
- Модуль 18: ООП - Продвинутый уровень
- Модуль 19: Декораторы
- Модуль 20: Генераторы и итераторы
- Модуль 21: Регулярные выражения
- Модуль 22: Дата и время
- Модуль 23: Математические операции
- Модуль 24: Работа с сетью
- Модуль 25: Асинхронное программирование
- Модуль 26: Многопоточность
- Модуль 27: Тестирование
- Модуль 28: Базы данных
- Модуль 29: Алгоритмы и структуры данных
- Модуль 30: Продвинутые возможности
1. Основы isdigit()
Проанализируйте код. Метод isdigit() возвращает True только если все символы в строке являются цифрами. Что выведет данный код?
s1 = "2023"
s2 = "20 23"
print(f"{s1.isdigit()} {s2.isdigit()}")2. Основы isalpha()
Метод isalpha() проверяет, состоит ли строка только из букв. Посмотрите на примеры и укажите результат выполнения.
w1 = "Python"
w2 = "Python3"
print(w1.isalpha())
print(w2.isalpha())3. Проверка возраста
Заполните пропуски, чтобы проверить, ввел ли пользователь корректный возраст (только цифры). Если проверка пройдена, преобразуйте строку в число.
age_str = "25"
if age_str.input1S():
age = input2S(age_str)
print("Valid age")
else:
print("Error")4. Сопоставьте строку и результат метода
Сопоставьте вызов метода с результатом, который он вернет (True или False). Обращайте внимание на содержимое строк.
"100".isdigit()"Anna".isalpha()"10.5".isdigit()5. Сортировка строк по методам проверки
Распределите строки по категориям в зависимости от того, какой метод вернет для них True. Если ни один из методов не вернет True (смешанные строки или спецсимволы), отправьте в "Оба вернут False".
6. Ошибка вызова метода
В этом коде допущена ошибка при проверке строки. Код всегда считает условие истинным, даже если строка содержит цифры, потому что метод не был вызван, а была проверена ссылка на него. Исправьте синтаксис.
name = "Admin1"if name.isalpha: print("Correct name")else: print("Invalid name")7. Фильтрация списка
Код проходит по списку и считает количество элементов, которые состоят только из цифр. Пустые строки и пробелы цифрами не являются. Введите число, которое выведет программа.
data = ["100", "", "20 20", "5", "a1"]
count = 0
for item in data:
if item.isdigit():
count += 1
print(count)8. Валидация данных пользователя
Допишите функцию валидации. Имя должно состоять только из букв, а ID — только из цифр. Вставьте подходящие методы и логический оператор из банка.
username = "Ivan"
user_id = "5599"
if username.input1S() input2S user_id.input3S():
print("Access Granted")
else:
print("Access Denied")9. Цикл ввода корректной цены
Соберите программу, которая бесконечно запрашивает цену у пользователя до тех пор, пока он не введет корректное целое число. Используйте break для выхода из цикла при верном вводе.
while True: price = input("Введите цену: ") if price.isdigit(): break print("Только цифры!")if price.isalpha(): continue