import tkinter as tk from tkinter import messagebox import random def calculate_grades(): """Подсчитывает количество хороших оценок (4 и 5).""" try: grades_str = grades_entry.get() # Получаем оценки из текстового поля grades = [int(grade.strip()) for grade in grades_str.split(',')] # Разделяем и преобразуем в числа if len(grades) != 10: messagebox.showerror("Эм, ошибка!", "Нужно ввести ровно 10 оценок, а не больше и не меньше.") return # Выходим из функции, если что-то не так # Считаем, сколько у нас четверок и пятерок count_4 = grades.count(4) count_5 = grades.count(5) # Выводим результат на экран result_text = f"Четверок: {count_4}\nПятерок: {count_5}" result_label.config(text=result_text) except ValueError: messagebox.showerror("Ой-ой!", "Кажется, ввели что-то не то. Нужны только числа от 2 до 5, разделенные запятыми.") def generate_random_data(): """Создает случайные оценки для примера.""" random_marks = [random.randint(2, 5) for _ in range(10)] # Генерируем 10 случайных оценок (2-5) grades_entry.delete(0, tk.END) # Очищаем поле grades_entry.insert(0, ", ".join(map(str, random_marks))) # Заполняем строку случайными оценками # Создаем окошко main_window = tk.Tk() main_window.title("Считалка оценок (by Student)") # Пометка "by Student", типично main_window.geometry("380x280") # Немного увеличим окно # Описание, что нужно делать instruction_label = tk.Label(main_window, text="Введи свои оценки по 10 предметам (от 2 до 5), через запятую:", wraplength=360, justify="left") # Поясняющий текст instruction_label.pack(pady=10) # Поле для ввода оценок grades_entry = tk.Entry(main_window, width=40) # Создаем текстовое поле grades_entry.pack(pady=5) # Кнопка "Посчитать" calculate_button = tk.Button(main_window, text="Посчитать хорошие оценки!", command=calculate_grades, bg="#2196F3", fg="white") # Делаем кнопку синей, чтобы было красиво calculate_button.pack(pady=10) # Кнопка "Сгенерировать" generate_button = tk.Button(main_window, text="Сгенерировать пример оценок", command=generate_random_data, bg="#FFC107", fg="black") # Делаем кнопку желтой generate_button.pack(pady=5) # Лейбл для вывода результата result_label = tk.Label(main_window, text="") result_label.pack(pady=10) # Запускаем программу main_window.mainloop()