Validation & verification · Валидация и верификация
Why validate input
- Validation checks that input is sensible before the program uses it.
- "Garbage in, garbage out" — bad data leads to wrong answers.
- The program decides to accept or reject the value.
Почему нужна проверка ввода
- Валидация проверяет, что ввод разумен, прежде чем программа начнет им пользоваться.
- «Мусор на входе — мусор на выходе» — плохие данные приводят к неправильным ответам.
- Программа решает принять или отклонить значение.
The validation steps · Шаги валидации
Read the input, check it, then accept or reject — bad data never gets used. · Прочитайте ввод, проверьте его, затем примите или отклоните — плохие данные никогда не используются.
Range check
- A range check makes sure a number is between a low and a high limit.
- Example: a month must be from 1 to 12.
Проверка диапазона
- Проверка диапазона убеждается, что число находится между нижним и верхним пределом.
- Пример: месяц должен быть от 1 до 12.
month = 13
if 1 <= month <= 12:
print("Accepted")
else:
print("Rejected")
Length check
- A length check makes sure text is not too short or too long.
len(text)gives the number of characters.
Проверка длины
- Проверка длины убеждается, что текст не слишком короткий и не слишком длинный.
- Метод
len(text)возвращает количество символов.
password = "abc"
if len(password) >= 8:
print("Accepted")
else:
print("Too short")
Presence check
- A presence check makes sure something was actually entered.
- An empty string
""means the user typed nothing.
Проверка наличия
- Проверка наличия убеждается, что что-то действительно было введено.
- Пустая строка
""означает, что пользователь ничего не напечатал.
Verification: checking the copy
- Verification checks that data was copied or typed correctly.
- A double-entry check asks for the value twice and compares them.
- A visual check means a human reads it back on screen.
Верификация: проверка копии
- Верификация проверяет, что данные были скопированы или введены правильно.
- Проверка двойного ввода запрашивает значение дважды и сравнивает их.
- Визуальная проверка означает, что человек читает введенные данные вслух на экране.
In the exam: types of check
- Know these validation checks: range, length, type, presence, format, check digit.
На экзамене: типы проверок
- Знать эти валидационные проверки: диапазон, длина, тип, наличие, формат, контрольная цифра.
IF Age >= 0 AND Age <= 120
THEN
OUTPUT "Valid"
ELSE
OUTPUT "Invalid"
ENDIF
Common mistakes
- Validation checks data is sensible (range, length, type); verification checks it was entered correctly.
- A range check needs both a lower and an upper limit.
Распространенные ошибки
- Валидация проверяет, что данные разумны (диапазон, длина, тип); верификация проверяет, что они введены правильно.
- Проверка диапазона требует как нижнего, так и верхнего предела.
Now you try
- Each function returns
Trueto accept orFalseto reject. - Press Check answer to test your code.
Теперь попробуйте сами
- Каждая функция возвращает
Trueдля принятия илиFalseдля отклонения. - Нажмите Check answer (Проверить ответ), чтобы протестировать свой код.
Write valid_age(a) that returns True when a is a sensible age (0 to 120 inclusive), otherwise False. This is a range check. · Напишите valid_age(a), которая возвращает True, если a — разумный возраст (от 0 до 120 включительно), иначе возвращает False. Это проверка диапазона.
Click Run to see the output here. · Нажмите Запустить, чтобы увидеть результат здесь.
Write valid_password(p) that returns True when the password is at least 8 characters long. This is a length check. · Напишите valid_password(p), которая возвращает True, если пароль содержит не менее 8 символов. Это проверка длины.
Click Run to see the output here. · Нажмите Запустить, чтобы увидеть результат здесь.
Write is_present(s) that returns True when something was entered, and False for an empty string "". This is a presence check. · Напишите is_present(s), которая возвращает True, если что-то было введено, и False для пустой строки "". Это проверка наличия.
Click Run to see the output here. · Нажмите Запустить, чтобы увидеть результат здесь.