Сколько уче­ни­ков в Во­сточ­ном окру­ге (В) вы­бра­ли в ка­че­стве лю­би­мо­го пред­ме­та информатику Часть 2

Сколько уче­ни­ков в Во­сточ­ном окру­ге (В) вы­бра­ли в ка­че­стве лю­би­мо­го пред­ме­та информатику? Часть 2

Привет всем! Сегодня мы, наконец, продолжим и закончим рассмотрение вопроса, который был задан мне в Телеграм: сколько уче­ни­ков в Во­сточ­ном окру­ге (В) вы­бра­ли в ка­че­стве лю­би­мо­го пред­ме­та информатику?

Первая часть записи, посвященной данному вопросу доступна по ссылке 🙂 А мы продолжаем:

Сам код целиком выглядит следующим образом:

import openpyxl
from openpyxl.utils import get_column_letter
path = 'students.xlsx'
wb = openpyxl.load_workbook(path)
sheets = wb.sheetnames #Получили полный список листов в книге
sheet = wb[sheets[0]] #Сделали активным самый первый лист
row_count = sheet.max_row  #Определили количество строк
row_min = 1 #Ввели переменную, отвечающую за минимальное количество строк
informatics = 0 #Ввели переменную, отвечающую за количество школьников, выбравших информатику
column_a = 'A' #Ввели переменную, отвечающую за колонку А
column_c = 'C' #Ввели переменную, отвечающую за колонку В
while row_min <= row_count: #Начинаем цикл, который будет работать пока значение минимального количества строк не станет равным или больше максимальному значению строк
row_min = str(row_min) #Конвертируем это значение в строковый вид
work_cell_a = column_a + row_m #Создаем переменную, которая состоит из колонки А + номер строки
work_cell_c = column_c + row_min #Создаем переменную, которая состоит из колонки С + номер строки
from_a = sheet[work_cell_a].value #Получаем значение ячейки А + номер строки
from_c = sheet[work_cell_c].value #Получаем значение ячейки С + номер строки
stroke = (from_a + ' ' + from_c) #Создаем переменную, которая состоит из значений ячейки А + номер строки + пробел + ячейка С + номер строки
if stroke == 'В информатика': #Проверяем полученное значение - если оно равно заданному... 
informatics = informatics + 1 #Увеличиваем значение переменной, отвечающей за количество школьников выбравших тот или иной предмет на единицу
row_min = int(row_min) #Конвертируем переменную, отвечающую за номер строки в int
row_min = row_min + 1 #Увеличиваем значение переменной на единицу
print('Всего из данного региона школьников выбрало информатику:', informatics) #Выводим результат работы программы

Как видите - все просто. Я пошел несколько иным путем (изначально предполагал делать все как-то иначе, но как - не придумал, и в итоге просто получаю значение ячеек, содержащих за название региона + ячейки, содержащей название школьного предмета, а после - сравниваю с заданным значением. Данный путь мне показался полегче 🙂

И в довесок решил чуть модифицировать код, что бы можно было получить общую статистику по предметам - какой предмет сколько школьников выбрали. Код получился вот такой:

import openpyxl
from openpyxl.utils import get_column_letter
path = 'students.xlsx'
wb = openpyxl.load_workbook(path)
sheets = wb.sheetnames #Получили полный список листов в книге
sheet = wb[sheets[0]] #Сделали активным самый первый лист
row_count = sheet.max_row  # Определили количество строк
row_min = 1
column_c = 'C'
obchestvoznanie = 0
douche = 0
russkiy = 0
angl = 0
himiya = 0
mathematics = 0
fizika = 0
fizra = 0
literatura = 0
biolog = 0
geograh = 0
france = 0
istoriya = 0
informatics = 0
while row_min <= row_count:
row_min = str(row_min)
work_cell_c = column_c + row_min
from_c = sheet[work_cell_c].value
if from_c == 'обществознание':
obchestvoznanie = obchestvoznanie + 1
elif from_c == 'немецкий язык':
douche = douche + 1
elif from_c == 'русский язык':
russkiy = russkiy + 1
elif from_c == 'английский язык':
angl = angl + 1
elif from_c == 'химия':
himiya = himiya + 1
elif from_c == 'математика':
mathematics = mathematics + 1
elif from_c == 'физика':
fizika = fizika + 1
elif from_c == 'физкультура':
fizra = fizra + 1
elif from_c == 'литература':
literatura = literatura + 1
elif from_c == 'биология':
biolog = biolog + 1
elif from_c == 'география':
geograh = geograh + 1
elif from_c == 'французский язык':
france = france + 1
elif from_c == 'история':
istoriya = istoriya + 1
elif from_c == 'информатика':
informatics = informatics + 1
row_min = int(row_min)
row_min = row_min + 1
print('Всего школьников выбрало предметы: \n'
'- обществознание:', obchestvoznanie,'\n'
'- немецкий:', douche,'\n'
'- русский:', russkiy,'\n'
'- английский:', angl,'\n'
'- химия:', himiya, '\n'
'- математика:', mathematics, '\n'
'- физика:', fizika, '\n'
'- физкультура:', fizra, '\n'
'- литература:', literatura, '\n'
'- биология:', biolog, '\n'
'- географию:', geograh, '\n'
'- французский язык:', france, '\n'
'- историю:', istoriya, '\n'
'- информатику:', informatics)

Как всегда - в случае возникновения вопросов пишите на почту, или в Telegram

Support the Blog!

Running a blog takes a lot of effort, time, and passion. Your donations help improve the content, inspire new ideas, and keep the project going.
If you’ve enjoyed the blog’s materials, any support would mean the world to me. Thank you for being here! ❤️

PayPal Logo Donate via PayPal

Revolut Logo Donate via Revolut