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

Обсуждение, новости, материал и сплетни — все здесь https://t.me/CodeLabMLChat
Download Telegram
Не забудьте пройти тесты выше 👆
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
Новый раздел для статей 🐍

🟰 Очень полезная статья, где вы узнаете про выражения-генераторы, генераторы списка, словаря и множества, виды вложенных генераторов, а также примеры применения.

🔗 Некоторые примеры мы также рассмотрим отдельно


⚙️ Прочитать статью можете тут
❤‍🔥2🥰1🤯1
#1 Рекурсия — очень интересная вещь, на следующей неделе в планах познакомиться с ней

def Func(n):
if n == 0:
return
else:
print(n)
Func(n - 1)

Func(3)
3👍2❤‍🔥1🤓1
❤‍🔥2👍1
#2

def sum(numbers):
total = 0
for n in numbers:
if n % 2 == 1:
total -= n
return total

result = sum([1, 2, 3, 4, 5, 6])
print(result)
❤‍🔥1🥰1🤓1
#2 Какой будет вывод?
Anonymous Quiz
67%
-9
11%
-1
0%
9
0%
1
0%
13
11%
24
11%
12
0%
15
❤‍🔥1👍1
#3 Попробуйте дать ответ, завтра мы разберем подробно работу этой функции

def func_1(n):
def multiply(x):
return x * x
return multiply(n) + multiply(n - 1)

result = func_1(4)
print(result)
❤‍🔥1👍1👨‍💻1
2👍1
Гайс, всем сладких снов 💤

🧑‍💻Завтра нам надо начать писать главную функцию для нашего года, поэтому набирайтесь сил
2❤‍🔥2🥰1🤯1
Создаем отдельный чат для общения? 💬
Anonymous Poll
71%
Да
29%
Нет (тоже да)
❤‍🔥1🥰1
🧑‍💻 Так, ща быстренько напишем часть функции, с утра соберем код и перейдем на неделю к машинному обучению:

0️⃣ Объявим функцию:

def main():


1️⃣ Бесконечный цикл для повторений (логично) и вызываем функцию 🟰student_data()🟰 (По итогу, функция возвратит словарь {students}, который мы создавали тут,
ключами у нас служили имена студентов, а значения — их оценки)


    while True:
students = student_data()


2️⃣ Пишем условие на тот случай, если словарь будет пуст, 🟰continue🟰 для возвращения в начало кода ( Если условие будет True, словарь будет пуст, то возвращаемся к началу цикла ) :

if not students:
print("Нет данных")
continue


3️⃣ О функции ниже можете почитать можете почитать тут

‼️ Как раз здесь мы создаем новый словарь, {student_averages}, 🟰name🟰 становится ключом (имя студента), 🟰calculate_average(grades)🟰 становится значением (средний балл для списка оценок студента).

student_averages = {name: calculate_average(grades) for name, grades in students.items()}


❗️ Цикл 🟰for🟰 проходит по всем по всем элементам в {students}. На каждой итерации он берёт ключ name и значение — список оценок grades.

 for name, grades in students.items()}


🔗 Вот вам пример:

students = {
"Brovscki": 4,5,3
"Мaria": 5,5,4
}


🟰students🟰 даст результат {'Brovscki: 4.0, 'Мaria': 4.67}.

С утра допишем код и все будет готово, всем сладких 💤
11❤‍🔥4👍1🥰1🤡1
Сори гайс, день был очень загруженный, завтра напишу полноценный пост

А пока, держите:


def get_name_and_decades(name, age):
print(f"My name is {name} and I'm {age / 10:.5f} decades old.")

get_name_and_decades("Leo", 31)
3❤‍🔥2🥰1
Всем Доброе утро!

🧑‍💻Ща мы быстренько разберем конец программы, вчера совсем забегался, но зато сегодня - завтра опубликую несколько хороших постов 😋

0️⃣ Последнее, на чем мы остановились, это создание словаря, где ключ-значение — это Имя студента и рассчитанный по формуле средний балл.

1️⃣ Теперь выведем средние баллы студентов (пока что без порога)

print("\nСредний балл студентов:")
for name, average_rating in student_averages.items():
print(f"{name}: {average_rating:.2f}") #округление среднего балла до двух знаков после запятой


2️⃣ Нам нужно как то найти тех самых отличившихся студентов, поэтому пусть программа спросит порог для оценивания (для последующего вывода студентов с баллами выше порога)

threshold = float(input("\nВведите порог для вывода студентов с баллом выше: "))
top_students = get_top_students(student_averages, threshold)


‼️ Касаемо функции 🟰get_top_students()🟰, о ней мы писали тут (Если что, она возвращает студентов с баллами выше порога. который мы ставим сами)

3️⃣‼️ На данном этапе функция get_top_students выбирает из словаря student_averages только тех студентов, чей средний балл выше указанного порога (у нас это переменная threshold), и сохраняет их в новый словарь top_students. Этот наш новый словарь содержит только тех студентов, которые прошли этот фильтр, то есть у которых средний балл больше порога.

3️⃣🔗 Теперь проверим, если у нас в словаре есть ключ - значение для студентов с их оценками (выше порога, конечно)

if top_students: # Если тут есть данные, то:
print("\nСтуденты с баллом выше порога:")
for name, average_rating in top_students.items():
print(f"{name}: {avg:.2f}") #Выводим данные по студентам на экран (ключ - значение)
else:
print("Нет студентов с баллом выше порога.")


4️⃣🔗 Теперь выведем студента с наивысшим средним баллом:

print_top_student(student_averages)


5️⃣🔗 Пишем повтор программы (вдруг мы что-то не ввели), иначе программа останавливается

repeat = input("\nХотите ввести данные заново? (да/нет): ").lower()
if repeat != 'да':
print("Программа завершена.")
break


🧑‍💻 Итак, мы это все дописали, постараюсь днем выложить пару тестиков, чтобы вы не расслаблялись особо, а вечером мы скомпонуем весь код и посмотрим что как работает.
17🤓3❤‍🔥21🥰1