import tkinter as tk from tkinter import messagebox import random def calculate_height_difference(): """Рассчитывает разницу в росте между самым высоким и самым низким.""" heights_str = height_entry.get() # Получаем строку из поля ввода try: heights = [float(h.strip()) for h in heights_str.split(',')] # Разделяем строку и преобразуем в числа if len(heights) != 25: messagebox.showerror("Ошибка", "Нужно ввести рост ровно 25 человек.") return highest_height = max(heights) lowest_height = min(heights) difference = highest_height - lowest_height result_label.config(text=f"Разница: {difference:.2f} см.") # Отображаем результат except ValueError: messagebox.showerror("Ошибка", "Пожалуйста, введите корректные числа, разделенные запятыми.") def generate_random_heights(): """Генерирует случайные значения роста.""" random_heights = [round(random.uniform(160, 190), 1) for _ in range(25)] # Генерация случайных значений (например, 160-190) height_entry.delete(0, tk.END) # Очищаем поле ввода height_entry.insert(0, ", ".join(map(str, random_heights))) # Заполняем поле ввода # Создаем главное окно window = tk.Tk() window.title("Разница в росте (v1.0)") # Добавим версию, как у студента # Добавим немного отступов и красоты window.geometry("400x250") # Зададим размер окна # Описание задания description_label = tk.Label(window, text="Введите рост 25 человек (см), разделяя значения запятыми.", wraplength=380, justify="left") # wraplength - перенос текста, justify - выравнивание description_label.pack(pady=10) # Поле ввода для роста height_entry = tk.Entry(window, width=40) height_entry.pack(pady=5) # Кнопка для расчета calculate_button = tk.Button(window, text="Рассчитать", command=calculate_height_difference, bg="#4CAF50", fg="white") # Добавим немного стиля calculate_button.pack(pady=10) # Кнопка для генерации случайных данных generate_button = tk.Button(window, text="Сгенерировать данные", command=generate_random_heights, bg="#008CBA", fg="white") # Добавим немного стиля generate_button.pack(pady=5) # Метка для отображения результата result_label = tk.Label(window, text="") result_label.pack(pady=10) # Запуск основного цикла window.mainloop()