1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- 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()
|