CodeLab
145 subscribers
538 photos
20 videos
159 links
Говорим просто о сложном

Обсуждение, новости, материал и сплетни — все здесь https://t.me/CodeLabMLChat
Download Telegram
🔗 Гайс доброй вам ночи, ща быстренькой разберем функцию для порога оценок, то есть, мы ставим определенный порог среднего балла, после чего выводятся те студенты, у кого порог совпадает.

🟰 Итак, помните students? Мы создавали с вами словарь и называли его как раз students, почитать можете тут. Вам важно понимать, что этот словарь будет тут присутствовать.

🔗 Для начала, сама функция:

def get_top_students(students, threshold):


🔗 Дальше генератор словаря, щас мы о нем также поговорим

return {name: average_rating for name, average_rating in students.items() if average_rating > threshold}


⚙️ average_rating — переменная средней оценки или балла

⚙️ name — имя студента

Ну и пример работы функции:

def get_top_students(students, threshold):
return {name: average_rating for name, average_rating in students.items() if average_rating > threshold}

students = {
"Brovscki": 4.5,
"Мaria": 3.8,
"Antony": 4.9
}

threshold = 4.0
top_students = get_top_students(students, threshold)
print(top_students)


Завтра продолжение поста, всем спокойной ночи 💤
7❤‍🔥22🤯1👨‍💻1
Ставьте клоунов
🤡8👍2❤‍🔥1
CodeLab
🔗 Гайс доброй вам ночи, ща быстренькой разберем функцию для порога оценок, то есть, мы ставим определенный порог среднего балла, после чего выводятся те студенты, у кого порог совпадает. 🟰 Итак, помните students? Мы создавали с вами словарь и называли его…
🔗 Итак, хотел бы дополнить вчерашний пост, а именно эту строчку:

return {name: average_rating for name, average_rating in students.items() if average_rating > threshold}


Давайте разберем че тут происходит вообще:

🟰 Если в целом, то мы создаем новый словарь на основе существующего (у нас это students).

🖇 И еще один момент, функция, если вы забыли, будет нужна для установления порога среднего балла. К примеру, вводим порог, и все студенты ниже не будут отображаться.

⁉️0️⃣ Что делает students.items() вообще, это метод словарей в Python, который возвращает все пары ключ-значение (у нас он будет возвращает из словаря students). Важно понимать, что это действие выполнится первым,

students = { #Из прошлого примера берем
"Brovscki": 4.5,
"Мaria": 3.8,
"Antony": 4.9
}


⚙️1️⃣ Дальше цикл for → for name, average_rating in students.items()

Итак, цикл будет перебирать каждую пар (имя студента и средний балл) как раз из нашего словаря

🔗2️⃣ Но цикл то нам не просто так нужен, он проходит по всем парам ключ-значение, в то время как условный оператор выполняется на каждой операции:

if average_rating > threshold:


🔗 Так, ну тут как раз условие на "прохождение порога оценок", если этот самый порог выше среднего балла, студент попадет в новый словарь.

‼️3️⃣ Теперь можно и новый словарь создать, где и будут находиться студенты с оценкой выше порога ↓

name: average_rating


🧑‍💻 Кароч, суть функции в том, что для каждой пары из словаря {students} (эти самые пары еще и проверку проходят), создается новая пара в новом словаре:

def get_top_students(students, threshold):
return {name: average_rating for name, average_rating in students.items() if average_rating > threshold}

students = {
"Brovscki": 4.5,
"Мaria": 3.8,
"Antony": 4.9
}

threshold = 4.3
top_students = get_top_students(students, threshold)
print(top_students)
8👨‍💻21❤‍🔥1🤯1
Пора думать гайс, а то вам все хиханьки да хаханьки 🤫

#1
def calculate_difference(x, y):
return x - y if x > y else y - x

result = calculate_difference(10, 4)
print(result)
3❤‍🔥21👍1👨‍💻1
❤‍🔥21👍1🤡1👨‍💻1
#2

def sum_range(a, b):
total = 0
for i in range(a, b, 2):
total += i
return total

result = sum_range(1, 8)
print(result)
5👨‍💻21❤‍🔥1👍1
👀2❤‍🔥11👍1🤡1
#3

def func(n):
if n == 0:
return 1
else:
return n * func(n - 1)

result = func(5)
result //= 2
print(result)
3❤‍🔥21👍1👨‍💻1👀1
❤‍🔥11👍1🤡1👨‍💻1
💀#4

def main_func(n):
def not_main_func(x):
return x * 2
return not_main_func(n) + not_main_func(n + 1)

result = main_func(3)
print(result)
2👀2❤‍🔥11👍1
❤‍🔥21👍1🤡1👨‍💻1
#5 Я пошел спать гайс, всем сладких 💤❤️

def mystery_function(a, b):
return (a ** b) % (a + b)

result = mystery_function(3, 4)
print(result)
51❤‍🔥1👍1👀1
❤‍🔥11👍1🥰1🤡1
Не забудьте пройти тесты выше 👆
2👍2🤡1👨‍💻1👀1
🧑‍💻 Приветствую новоприбывших бойцов ❤️

🔗 Я уверен, что вам тут очень понравится. Чтобы вы не думали с чего начать, на канале есть очень удобная навигация, где вы с легкостью найдете все, что будет вам по душе!


🔗 Мы недавно начали писать код ( Система учета успеваемости студентов ) для того, чтобы очень хорошо понять тему функций в Python, поэтому я прикреплю сюда навигация по данному проекту, чтобы вы спокойно смогли начать с начала.
❤‍🔥21👍1🥰1🤯1
🧑‍💻 Гайс, как и говорил, сегодня мы разберем еще одну функцию, в прошлый раз мы написали код для порога оценок (ставим порог 4 и все, у кого средний балл ниже не будут выводиться). Дак вот эта функция и будет выводить тех самых студентов с баллом выше порога.

0️⃣ Итак, 🟰def print_top_student(students):🟰 — объявляем функцию для вывода 'лучших учеников' , students — это словарь (ключ — имя студента, значение — средний балл)

1️⃣ Дальше прописываем условие на тот случай, если в словарь пустой:

    if not students:
print("Нет данных о студентах.")
return #Тут оставляем просто return чтобы функция просто прервалась в случае пустого словаря


2️⃣ Теперь нам нужно найти этих самых отличившихся студентов:

top_student = max(students, key=students.get)


🔗 Функция max() проходит по всем ключам словаря 🟰students🟰 и ищет челиков с максимальным средним баллом, выводит именно одного студента с максимальным баллом.

"students.get — это встроенный метод словаря, который возвращает значение по указанному ключу"

Кароч, чтобы вы сразу поняли, max() будет сравнивать элементы словаря 🟰students🟰 и искать максимальное значение, а students.get возвращает то имя, у которого оценка максимальная:

students = { #Из прошлого примера берем
"Brovscki": 4.5,
"Мaria": 3.8,
"Antony": 4.9
}


🔗 Максимальным будет значение имени Antony, поэтому max() вернет ключ, связанный с этим самым максимальным значением.

3️⃣ Такс, тут разобрались, теперь функция print(), она будет выводить студента с наивысшим баллом, а также его оценку округленную до 2 (ща узнаете почему):

print(f"Студент с наивысшим средним баллом: {top_student} ({students[top_student]:.2f})")


⁉️ Каюсь, придумал не сам, но зато узнаем, что такое .2f

.2f — форматирование, указывающее, что нужно округлить число до двух десятичных знаков

🔗Сам код:

def print_top_student(students):

if not students:
print("Нет данных о студентах.")
return
top_student = max(students, key=students.get)
print(f"Студент с наивысшим средним баллом: {top_student} ({students[top_student]:.2f})")


🔗 А вот и пример использования:

students = { 
"Brovscki": 4.5,
"Мaria": 3.8,
"Antony": 4.9
}


def print_top_student(students):

if not students:
print("Нет данных о студентах.")
return
top_student = max(students, key=students.get)
print(f"Студент с наивысшим средним баллом: {top_student} ({students[top_student]:.2f})")


print_top_student(students)
7❤‍🔥2👍21🥰1👨‍💻1
#1 Что выведет код?

def _list(lst):
lst.append(4)
return lst

numbers = [1, 2, 3, 5, 4]
_list(numbers)
print(numbers)
3❤‍🔥21👍1🤡1👨‍💻1
#2 Что выведет код?

numbers = [1, 2, 3, 4, 5, 6, 7]
new_numbers = [x**2 for x in numbers if x % 2 == 0]
print(new_numbers)
2❤‍🔥2👍1🥰1🤡1👀1
🥰2❤‍🔥1👍1🤡1👨‍💻1