Elementor Header #8

67. Пограничные случаи

Добро пожаловать на 67-й урок по Python! Сегодня мы изучим пограничные случаи в программировании. Пограничные случаи (или edge cases) — это ситуации, которые возникают на границах допустимых входных данных. Эти случаи часто вызывают ошибки, если их не учитывать, и являются важной частью написания надежного и устойчивого к ошибкам кода.

Основные концепции

1. Что такое пограничные случаи?

Пограничные случаи — это случаи, когда входные данные находятся на границе допустимых значений. Например:

  • Пустой список или строка.
  • Максимальные и минимальные значения чисел.
  • Значения, равные нулю.
  • Отрицательные числа, если ожидаются только положительные.
  • Очень большие или очень маленькие значения.

2. Почему важно учитывать пограничные случаи?

Игнорирование пограничных случаев может привести к неожиданным ошибкам и неправильной работе программы. Учитывая их, вы можете сделать свой код более надежным и устойчивым к ошибкам.

Примеры пограничных случаев и их обработка

1. Пустой список

Пример: Функция, которая возвращает максимальное значение из списка

				
					def find_max(numbers):
    if not numbers:
        return None  # Обработка пустого списка
    return max(numbers)

# Примеры использования
print(find_max([1, 2, 3, 4, 5]))  # Ожидаемый вывод: 5
print(find_max([]))  # Ожидаемый вывод: None

				
			

2. Максимальные и минимальные значения

Пример: Функция, которая нормализует числа в диапазоне от 0 до 1

				
					def normalize(value, min_value, max_value):
    if min_value == max_value:
        return 0.0  # Обработка случая, когда min_value равно max_value
    return (value - min_value) / (max_value - min_value)

# Примеры использования
print(normalize(5, 0, 10))  # Ожидаемый вывод: 0.5
print(normalize(5, 5, 5))  # Ожидаемый вывод: 0.0

				
			

3. Нулевые значения

Пример: Функция деления чисел

				
					def divide(a, b):
    if b == 0:
        return None  # Обработка деления на ноль
    return a / b

# Примеры использования
print(divide(10, 2))  # Ожидаемый вывод: 5.0
print(divide(10, 0))  # Ожидаемый вывод: None

				
			

4. Отрицательные числа

Пример: Функция вычисления квадратного корня

				
					import math

def safe_sqrt(value):
    if value < 0:
        return None  # Обработка отрицательных чисел
    return math.sqrt(value)

# Примеры использования
print(safe_sqrt(9))  # Ожидаемый вывод: 3.0
print(safe_sqrt(-1))  # Ожидаемый вывод: None

				
			

5. Очень большие значения

Пример: Функция факториала

				
					def factorial(n):
    if n < 0:
        return None  # Обработка отрицательных чисел
    if n > 1000:
        return None  # Ограничение на слишком большие значения
    result = 1
    for i in range(2, n + 1):
        result *= i
    return result

# Примеры использования
print(factorial(5))  # Ожидаемый вывод: 120
print(factorial(1001))  # Ожидаемый вывод: None

				
			

Заключение

Сегодня мы рассмотрели пограничные случаи и их обработку в программировании на Python. Учитывая пограничные случаи, вы можете сделать свой код более надежным и устойчивым к ошибкам.

logo