###### Checking for Perfect Numbers in Python

A perfect number is a positive integer that is equal to the sum of its proper divisors, excluding itself. For example, 6 is a perfect number because its divisors (1, 2, and 3) sum up to 6 (1 + 2 + 3 = 6).
To determine whether a given number is a perfect number, you can implement a Python function that checks this condition. Below is a function that accomplishes this task:
def is_perfect_number(n):
"""
Check if a number is a perfect number.
A perfect number is equal to the sum of its proper divisors (excluding itself).
Parameters:
n (int): The number to check.
Returns:
bool: True if n is a perfect number, False otherwise.
"""
if n < 1:
return False # Perfect numbers are positive integers
sum_of_divisors = 0
# Loop to find all divisors of n
for i in range(1, n // 2 + 1): # Check up to n/2 for proper divisors
if n % i == 0: # If i is a divisor
sum_of_divisors += i
return sum_of_divisors == n # Check if the sum of divisors equals n
# Example usage:
number = 28
if is_perfect_number(number):
print(f"{number} is a perfect number.")
else:
print(f"{number} is not a perfect number.")

###### How the Function Works

1. **Input Check**: The function first checks if the input number *n* is a positive integer. If not, it immediately returns *False*, since perfect numbers must be positive.
2. **Finding Divisors**: The function initializes a variable *sum_of_divisors* to store the sum of the proper divisors. A loop iterates from 1 to *n // 2*, checking each integer to see if it is a divisor of *n*. If it is, that value is added to *sum_of_divisors*.
3. **Final Check**: The function compares *sum_of_divisors* with the original number *n*. If they are equal, it returns *True*, indicating that *n* is a perfect number; otherwise, it returns *False*.
###### Example Cases

- **6**: Proper divisors are 1, 2, 3. Sum = 1 + 2 + 3 = 6 (Perfect)
- **28**: Proper divisors are 1, 2, 4, 7, 14. Sum = 1 + 2 + 4 + 7 + 14 = 28 (Perfect)
- **12**: Proper divisors are 1, 2, 3, 4, 6. Sum = 1 + 2 + 3 + 4 + 6 = 16 (Not Perfect)
This function serves as an effective tool for checking perfect numbers in Python and can be easily modified or expanded as necessary.