Python. 9 класс.
1) Найти сумму чётных элементов массива из 9 элементов, заполненных случайными числами.
2) Найти сумму нечётных элементов массива из 9 элементов, заполненного случайными числами.
3) При помощи модуля Tkinter создайте программу, которая будет анализировать оценки ученика по таким пунктам: наибольший и наименьший балл, средний балл.
Ответы на вопрос
1. Сумма чётных элементов массива из 9 случайных чисел
import random# Создаём массив из 9 случайных чисел от 1 до 100
numbers = [random.randint(1, 100) for i in range(9)]
even_sum = 0
# Перебираем все элементы массива
for number in numbers:
if number % 2 == 0:
even_sum += number
print("Массив:", numbers)
print("Сумма чётных элементов:", even_sum)
Оператор % находит остаток от деления. Если число делится на 2 без остатка, то оно является чётным:
number % 2 == 0Например, если был создан массив:
[12, 7, 24, 9, 18, 31, 5, 40, 11]Чётные элементы: 12, 24, 18, 40.
Их сумма:
12 + 24 + 18 + 40 = 942. Сумма нечётных элементов массива из 9 случайных чисел
import random# Создаём массив из 9 случайных чисел от 1 до 100
numbers = [random.randint(1, 100) for i in range(9)]
odd_sum = 0
# Перебираем все элементы массива
for number in numbers:
if number % 2 != 0:
odd_sum += number
print("Массив:", numbers)
print("Сумма нечётных элементов:", odd_sum)
Если при делении числа на 2 остаток не равен нулю, то число является нечётным:
number % 2 != 0Например, если был создан массив:
[12, 7, 24, 9, 18, 31, 5, 40, 11]Нечётные элементы: 7, 9, 31, 5, 11.
Их сумма:
7 + 9 + 31 + 5 + 11 = 63Объединённый вариант для первого и второго заданий
Сумму чётных и нечётных элементов можно найти в одной программе:
import randomnumbers = [random.randint(1, 100) for i in range(9)]
even_sum = 0
odd_sum = 0
for number in numbers:
if number % 2 == 0:
even_sum += number
else:
odd_sum += number
print("Массив:", numbers)
print("Сумма чётных элементов:", even_sum)
print("Сумма нечётных элементов:", odd_sum)
3. Программа на Tkinter для анализа оценок ученика
Программа получает оценки, введённые через пробел, и определяет:
наибольший балл;
наименьший балл;
средний балл.
import tkinter as tk
from tkinter import messagebox
def analyze_grades():
try:
# Получаем текст из поля ввода
text = entry_grades.get()
# Разделяем строку по пробелам и преобразуем элементы в числа
grades = list(map(int, text.split()))
# Проверяем, были ли введены оценки
if len(grades) == 0:
messagebox.showwarning(
"Предупреждение",
"Введите хотя бы одну оценку."
)
return
# Проверяем правильность оценок
for grade in grades:
if grade < 1 or grade > 5:
messagebox.showerror(
"Ошибка",
"Оценки должны быть числами от 1 до 5."
)
return
# Выполняем вычисления
maximum_grade = max(grades)
minimum_grade = min(grades)
average_grade = sum(grades) / len(grades)
# Выводим результат
result_text = (
f"Наибольший балл: {maximum_grade}\n"
f"Наименьший балл: {minimum_grade}\n"
f"Средний балл: {average_grade:.2f}"
)
label_result.config(text=result_text)
except ValueError:
messagebox.showerror(
"Ошибка",
"Введите оценки целыми числами через пробел."
)
# Создаём главное окно
window = tk.Tk()
window.title("Анализ оценок ученика")
window.geometry("450x300")
window.resizable(False, False)
# Заголовок
label_title = tk.Label(
window,
text="Анализ оценок ученика",
font=("Arial", 18, "bold")
)
label_title.pack(pady=15)
# Инструкция
label_instruction = tk.Label(
window,
text="Введите оценки от 1 до 5 через пробел:"
)
label_instruction.pack(pady=5)
# Поле ввода
entry_grades = tk.Entry(
window,
width=40,
font=("Arial", 12)
)
entry_grades.pack(pady=10)
# Пример данных
entry_grades.insert(0, "5 4 3 5 4 2 5")
# Кнопка
button_analyze = tk.Button(
window,
text="Проанализировать",
command=analyze_grades,
font=("Arial", 12),
width=20
)
button_analyze.pack(pady=10)
# Область результата
label_result = tk.Label(
window,
text="",
font=("Arial", 13),
justify="left"
)
label_result.pack(pady=10)
# Запускаем программу
window.mainloop()
Как работает программа
Сначала подключаются необходимые модули:
import tkinter as tk
from tkinter import messageboxМодуль tkinter используется для создания окна, кнопки, надписей и поля ввода. messagebox используется для вывода сообщений об ошибках.
Пользователь вводит оценки через пробел, например:
5 4 3 5 4 2 5Команда:
text.split()разделяет строку на отдельные элементы:
["5", "4", "3", "5", "4", "2", "5"]Затем команда:
list(map(int, text.split()))преобразует строки в целые числа:
[5, 4, 3, 5, 4, 2, 5]Наибольшая оценка находится с помощью функции:
max(grades)Наименьшая оценка находится с помощью функции:
min(grades)Средний балл вычисляется по формуле:
sum(grades) / len(grades)Для оценок 5, 4, 3, 5, 4, 2, 5 средний балл равен:
(5 + 4 + 3 + 5 + 4 + 2 + 5) / 7 = 4Запись:
{average_grade:.2f}означает, что средний балл выводится с двумя цифрами после точки, например:
4.00Программа также проверяет правильность ввода. Если пользователь введёт буквы, пустую строку или числа, которые не находятся в диапазоне от 1 до 5, появится сообщение об ошибке.
Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili

