def process_numbers(N: int) -> list[str]:
results = []
for i in range(1, N + 1):
if i % 2 == 0:
results.append(f"{i} (четное) -> {i**2}"
else:
results.append(f"{i} (нечетное) -> {i**3}"
return results
def display_results(results: list[str], to_file: bool = False) -> None:
if to_file:
with open('results.txt', 'w' as f:
for result in results:
f.write(result + '\n'
logging.info("Результаты сохранены в файл 'results.txt'."
print(" Результаты успешно сохранены в файл 'results.txt'."
else:
print("\n? Результаты обработки:\n" + "\n".join(results))
def get_positive_integer(prompt: str) -> int:
while True:
try:
value = int(input(prompt))
if value < 1:
raise ValueError("Число должно быть больше нуля."
return value
except ValueError as e:
logging.error(f"Ошибка ввода: {e}. Пожалуйста, попробуйте снова."
def main() -> None:
print("? Добро пожаловать в программу обработки чисел!"
print("==============================================="
N = get_positive_integer("Введите число N (целое положительное): "
results = process_numbers(N)
print("\nВыберите способ вывода результатов:"
output_choice = input("Вывести в консоль (C) или сохранить в файл (F)? ".strip().upper()
из-за того что ты используешь цикличную переменную i в операциях приравнивания, ты ее изменяешь и например цикл доходит до i = 2, в операции приравнивание ты его делаешь равной 4, и цикл пропускает 3.