1
0

Егоров работа 1.py 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. import tkinter as tk
  2. from tkinter import messagebox
  3. import random
  4. def calculate_height_difference():
  5. """Рассчитывает разницу в росте между самым высоким и самым низким."""
  6. heights_str = height_entry.get() # Получаем строку из поля ввода
  7. try:
  8. heights = [float(h.strip()) for h in heights_str.split(',')] # Разделяем строку и преобразуем в числа
  9. if len(heights) != 25:
  10. messagebox.showerror("Ошибка", "Нужно ввести рост ровно 25 человек.")
  11. return
  12. highest_height = max(heights)
  13. lowest_height = min(heights)
  14. difference = highest_height - lowest_height
  15. result_label.config(text=f"Разница: {difference:.2f} см.") # Отображаем результат
  16. except ValueError:
  17. messagebox.showerror("Ошибка", "Пожалуйста, введите корректные числа, разделенные запятыми.")
  18. def generate_random_heights():
  19. """Генерирует случайные значения роста."""
  20. random_heights = [round(random.uniform(160, 190), 1) for _ in range(25)] # Генерация случайных значений (например, 160-190)
  21. height_entry.delete(0, tk.END) # Очищаем поле ввода
  22. height_entry.insert(0, ", ".join(map(str, random_heights))) # Заполняем поле ввода
  23. # Создаем главное окно
  24. window = tk.Tk()
  25. window.title("Разница в росте (v1.0)") # Добавим версию, как у студента
  26. # Добавим немного отступов и красоты
  27. window.geometry("400x250") # Зададим размер окна
  28. # Описание задания
  29. description_label = tk.Label(window, text="Введите рост 25 человек (см), разделяя значения запятыми.", wraplength=380, justify="left") # wraplength - перенос текста, justify - выравнивание
  30. description_label.pack(pady=10)
  31. # Поле ввода для роста
  32. height_entry = tk.Entry(window, width=40)
  33. height_entry.pack(pady=5)
  34. # Кнопка для расчета
  35. calculate_button = tk.Button(window, text="Рассчитать", command=calculate_height_difference, bg="#4CAF50", fg="white") # Добавим немного стиля
  36. calculate_button.pack(pady=10)
  37. # Кнопка для генерации случайных данных
  38. generate_button = tk.Button(window, text="Сгенерировать данные", command=generate_random_heights, bg="#008CBA", fg="white") # Добавим немного стиля
  39. generate_button.pack(pady=5)
  40. # Метка для отображения результата
  41. result_label = tk.Label(window, text="")
  42. result_label.pack(pady=10)
  43. # Запуск основного цикла
  44. window.mainloop()