1
0

Егоров работа 2.py 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. import tkinter as tk
  2. from tkinter import messagebox
  3. import random
  4. def calculate_grades():
  5. """Подсчитывает количество хороших оценок (4 и 5)."""
  6. try:
  7. grades_str = grades_entry.get() # Получаем оценки из текстового поля
  8. grades = [int(grade.strip()) for grade in grades_str.split(',')] # Разделяем и преобразуем в числа
  9. if len(grades) != 10:
  10. messagebox.showerror("Эм, ошибка!", "Нужно ввести ровно 10 оценок, а не больше и не меньше.")
  11. return # Выходим из функции, если что-то не так
  12. # Считаем, сколько у нас четверок и пятерок
  13. count_4 = grades.count(4)
  14. count_5 = grades.count(5)
  15. # Выводим результат на экран
  16. result_text = f"Четверок: {count_4}\nПятерок: {count_5}"
  17. result_label.config(text=result_text)
  18. except ValueError:
  19. messagebox.showerror("Ой-ой!", "Кажется, ввели что-то не то. Нужны только числа от 2 до 5, разделенные запятыми.")
  20. def generate_random_data():
  21. """Создает случайные оценки для примера."""
  22. random_marks = [random.randint(2, 5) for _ in range(10)] # Генерируем 10 случайных оценок (2-5)
  23. grades_entry.delete(0, tk.END) # Очищаем поле
  24. grades_entry.insert(0, ", ".join(map(str, random_marks))) # Заполняем строку случайными оценками
  25. # Создаем окошко
  26. main_window = tk.Tk()
  27. main_window.title("Считалка оценок (by Student)") # Пометка "by Student", типично
  28. main_window.geometry("380x280") # Немного увеличим окно
  29. # Описание, что нужно делать
  30. instruction_label = tk.Label(main_window,
  31. text="Введи свои оценки по 10 предметам (от 2 до 5), через запятую:",
  32. wraplength=360,
  33. justify="left") # Поясняющий текст
  34. instruction_label.pack(pady=10)
  35. # Поле для ввода оценок
  36. grades_entry = tk.Entry(main_window, width=40) # Создаем текстовое поле
  37. grades_entry.pack(pady=5)
  38. # Кнопка "Посчитать"
  39. calculate_button = tk.Button(main_window,
  40. text="Посчитать хорошие оценки!",
  41. command=calculate_grades,
  42. bg="#2196F3",
  43. fg="white") # Делаем кнопку синей, чтобы было красиво
  44. calculate_button.pack(pady=10)
  45. # Кнопка "Сгенерировать"
  46. generate_button = tk.Button(main_window,
  47. text="Сгенерировать пример оценок",
  48. command=generate_random_data,
  49. bg="#FFC107",
  50. fg="black") # Делаем кнопку желтой
  51. generate_button.pack(pady=5)
  52. # Лейбл для вывода результата
  53. result_label = tk.Label(main_window, text="")
  54. result_label.pack(pady=10)
  55. # Запускаем программу
  56. main_window.mainloop()