🧑💻🔗 Такс, продолжаем) Я бы на вашем месте повторил исключения, которые мы разобрали вчера вот здесь
🔗 Че тут происходит гайс? Честно, сам не в курсе, но попробуем разобраться🧑💻
🟰 try-except — используем для обработки ошибок (ну вдруг че)
🟰
🟰 Ну переменная для оценок, я думаю, понятно. Ввод оценок осуществляется через input().
🟰 Разбивает строку метод 🟰
🟰 Что делает map()? "Функция map() в Python применяется для того, чтобы применить функцию к каждому элементу итерируемого объекта (например, списка или строки)".
⁉️ Как бы вам так сказать,
⭕️ Чтобы вам было понятнее, 🟰
🔗‼️ 🟰
🔗 Возникает ошибка ValueError, и программа выводит сообщение об ошибке (если мы чушь какую-нибудь ввели).
🔗
🔗 ВЕСЬ КОД:
Кстати, первая функция готова)
try:
grades = list(map(float, input(f"Введите оценки для {name} через пробел: ").split()))
students[name] = grades
except ValueError:
print("ERROR")
🔗 Че тут происходит гайс? Честно, сам не в курсе, но попробуем разобраться🧑💻
🟰 try-except — используем для обработки ошибок (ну вдруг че)
🟰
grades = list(map(float, input(f"Введите оценки для {name} через пробел: ").split())): — А вот это уже интересно🧑💻 ↓↓↓ :🟰 Ну переменная для оценок, я думаю, понятно. Ввод оценок осуществляется через input().
🟰 Разбивает строку метод 🟰
split()🟰🟰 Что делает map()? "Функция map() в Python применяется для того, чтобы применить функцию к каждому элементу итерируемого объекта (например, списка или строки)".
⁉️ Как бы вам так сказать,
🟰map()🟰 в нашем коде преобразовывает каждую строку (у нас это оценки студентиков) в число типа float. Я надеюсь, вам понятно, почему float (оценки могут быть и дробными + точность лучше, даже если введем целые числа). ⭕️ Чтобы вам было понятнее, 🟰
grades = list(map(float, input().split()))🟰→ ну ввели мы '5 2.3 6' (как строку) → метод 🟰split():🟰 — разбил эту строку на отдельные элементы ( получится вот так — ['5', '2.3', '6'] ) → таак, дальше функция 🟰map(float...):🟰 берёт каждую строку из списка ['5', '2.3', '6'] и применяет float → получаем [5.0, 2.3, 6.0]. → А еще у нас есть 🟰list():🟰 —превращает результат map() в список. 🔗‼️ 🟰
students[name] = grades🟰 — мы сохраняем оценки студента в словарь students, где ключом будет имя студента, а значением — список его оценок. В этой строке — name — это ключ (имя студента), grades — это значение (оценка) — кароч гайс, тут можете посмотреть как мы добавляем новую пару ключи значение — тут 🔗 Возникает ошибка ValueError, и программа выводит сообщение об ошибке (если мы чушь какую-нибудь ввели).
🔗
🟰return students🟰 — возвращаем словарь students, содержащий все имена студентов и их оценки.🔗 ВЕСЬ КОД:
def student_data():
students = {}
while True:
name = input("Введите имя студента, или 'стоп' для завершения ввода: ")
if name.lower() == 'стоп':
break
try:
grades = list(map(float, input(f"Введите оценки для {name} через пробел: ").split()))
students[name] = grades
except ValueError:
print("ERROR") #Если вы решите ввести буквы в строку для оценок
return students
student_data()
Кстати, первая функция готова)
13❤🔥2❤1👍1🥰1
🔗 Всем доброе утро гайс, нам нужно разобрать несколько функций и останется main() - функция для основных циклов и условий (но об этом позже).
🟰 Нам нужно для начала подсчитать средний балла школоты. В прошлой функции мы заполняли оценки:
0️⃣ Объявляем функцию для начала:
1️⃣ Теперь вычисляем средний балл:
🟰Давайте теперь поговорим, что происходит в этой строчке:
🔗 Дальше тернарное условие, вы, кстати. можете его дополнительно разобрать на другом примере тут
🔗 Го замутим пример:
🔗 Так, ну мы подаем список [1, 2, 3, 5, 6] → функция вычисляет сумма списка — 17 → затем количество элементов 🟰
🔗 Если список пустой, возвращает 0:
🔗 Ну и сам код для создания дальнейшего кода, то, что выше ↑↑↑ — это просто примеры:
🟰 Нам нужно для начала подсчитать средний балла школоты. В прошлой функции мы заполняли оценки:
0️⃣ Объявляем функцию для начала:
def calculate_average(grades):
1️⃣ Теперь вычисляем средний балл:
return sum(grades) / len(grades) if grades else 0
🟰Давайте теперь поговорим, что происходит в этой строчке:
sum(grades) — вычисляет сумму всех оценок в списке (дальше покажу пример)len(grades) — возвращает количество оценок в списке (для среднего балла делим сумму на количество)🔗 Дальше тернарное условие, вы, кстати. можете его дополнительно разобрать на другом примере тут
if grades else 0 — кароч, если список заполнен числами, возвращает True и выполняется расчет среднего балла. Если же список пуст, условия возвращает False и функция вернет 0.🔗 Го замутим пример:
def calculate_average(grades):
return sum(grades) / len(grades) if grades else 0
sum_grades = calculate_average([1, 2, 3, 5, 6])
print(sum_grades)
🔗 Так, ну мы подаем список [1, 2, 3, 5, 6] → функция вычисляет сумма списка — 17 → затем количество элементов 🟰
len([1, 2, 3, 5, 6])🟰 — 5 → среднее значение будет 3.4 (17/5)🔗 Если список пустой, возвращает 0:
def calculate_average(grades):
return sum(grades) / len(grades) if grades else 0
sum_grades = calculate_average([])
print(sum_grades)
🔗 Ну и сам код для создания дальнейшего кода, то, что выше ↑↑↑ — это просто примеры:
def calculate_average(grades):
return sum(grades) / len(grades) if grades else 0
5❤2❤🔥2👍1🥰1
🔗 Гайс доброй вам ночи, ща быстренькой разберем функцию для порога оценок, то есть, мы ставим определенный порог среднего балла, после чего выводятся те студенты, у кого порог совпадает.
🟰 Итак, помните students? Мы создавали с вами словарь и называли его как раз students, почитать можете тут. Вам важно понимать, что этот словарь будет тут присутствовать.
🔗 Для начала, сама функция:
🔗 Дальше генератор словаря, щас мы о нем также поговорим
⚙️ average_rating — переменная средней оценки или балла
⚙️ name — имя студента
Ну и пример работы функции:
Завтра продолжение поста, всем спокойной ночи 💤
🟰 Итак, помните 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❤🔥2❤2🤯1👨💻1
CodeLab
🔗 Гайс доброй вам ночи, ща быстренькой разберем функцию для порога оценок, то есть, мы ставим определенный порог среднего балла, после чего выводятся те студенты, у кого порог совпадает. 🟰 Итак, помните students? Мы создавали с вами словарь и называли его…
🔗 Итак, хотел бы дополнить вчерашний пост, а именно эту строчку:
Давайте разберем че тут происходит вообще:
🟰 Если в целом, то мы создаем новый словарь на основе существующего (у нас это students).
🖇 И еще один момент, функция, если вы забыли, будет нужна для установления порога среднего балла. К примеру, вводим порог, и все студенты ниже не будут отображаться.
⁉️0️⃣ Что делает
⚙️1️⃣ Дальше цикл for →
Итак, цикл будет перебирать каждую пар (имя студента и средний балл) как раз из нашего словаря
🔗2️⃣ Но цикл то нам не просто так нужен, он проходит по всем парам ключ-значение, в то время как условный оператор выполняется на каждой операции:
🔗 Так, ну тут как раз условие на "прохождение порога оценок", если этот самый порог выше среднего балла, студент попадет в новый словарь.
‼️3️⃣ Теперь можно и новый словарь создать, где и будут находиться студенты с оценкой выше порога ↓
🧑💻 Кароч, суть функции в том, что для каждой пары из словаря
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👨💻2❤1❤🔥1🤯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❤🔥2❤1👍1👨💻1
❤🔥2❤1👍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👨💻2❤1❤🔥1👍1
👀2❤🔥1❤1👍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❤🔥2❤1👍1👨💻1👀1
❤🔥1❤1👍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❤🔥1❤1👍1
❤🔥2❤1👍1🤡1👨💻1
#5 Я пошел спать гайс, всем сладких 💤❤️
def mystery_function(a, b):
return (a ** b) % (a + b)
result = mystery_function(3, 4)
print(result)
5❤1❤🔥1👍1👀1
Всем доброе утро ☀️
Пост будет вечерком, разберем основную функцию нашего кода, если вы не в теме, ознакомиться тут
Пост будет вечерком, разберем основную функцию нашего кода, если вы не в теме, ознакомиться тут
Telegram
CodeLab
🧑💻 Навигация по проекту: Система учета успеваемости студентов
🔗 Введение и техническое задание
🔗 Разбираем функции для понимания
🔗 Продолжение по функциям 1
🔗 Продолжение по функциям 2
🔗 Продолжение по функциям 3
🔗 Продолжение по функциям 4
🔗 Продолжение…
🔗 Введение и техническое задание
🔗 Разбираем функции для понимания
🔗 Продолжение по функциям 1
🔗 Продолжение по функциям 2
🔗 Продолжение по функциям 3
🔗 Продолжение по функциям 4
🔗 Продолжение…
❤🔥2❤1🤯1🤡1👀1
🧑💻 Приветствую новоприбывших бойцов ❤️
🔗 Я уверен, что вам тут очень понравится. Чтобы вы не думали с чего начать, на канале есть очень удобная навигация, где вы с легкостью найдете все, что будет вам по душе!
🔗 Мы недавно начали писать код ( Система учета успеваемости студентов ) для того, чтобы очень хорошо понять тему функций в Python, поэтому я прикреплю сюда навигация по данному проекту, чтобы вы спокойно смогли начать с начала.
🔗 Я уверен, что вам тут очень понравится. Чтобы вы не думали с чего начать, на канале есть очень удобная навигация, где вы с легкостью найдете все, что будет вам по душе!
🔗 Мы недавно начали писать код ( Система учета успеваемости студентов ) для того, чтобы очень хорошо понять тему функций в Python, поэтому я прикреплю сюда навигация по данному проекту, чтобы вы спокойно смогли начать с начала.
❤🔥2❤1👍1🥰1🤯1
🧑💻 Гайс, как и говорил, сегодня мы разберем еще одну функцию, в прошлый раз мы написали код для порога оценок (ставим порог 4 и все, у кого средний балл ниже не будут выводиться). Дак вот эта функция и будет выводить тех самых студентов с баллом выше порога.
0️⃣ Итак, 🟰
1️⃣ Дальше прописываем условие на тот случай, если в словарь пустой:
2️⃣ Теперь нам нужно найти этих самых отличившихся студентов:
🔗 Функция max() проходит по всем ключам словаря 🟰
"students.get — это встроенный метод словаря, который возвращает значение по указанному ключу"
Кароч, чтобы вы сразу поняли, max() будет сравнивать элементы словаря 🟰
🔗 Максимальным будет значение имени Antony, поэтому max() вернет ключ, связанный с этим самым максимальным значением.
3️⃣ Такс, тут разобрались, теперь функция print(), она будет выводить студента с наивысшим баллом, а также его оценку округленную до 2 (ща узнаете почему):
⁉️ Каюсь, придумал не сам, но зато узнаем, что такое .2f
.2f — форматирование, указывающее, что нужно округлить число до двух десятичных знаков
🔗Сам код:
🔗 А вот и пример использования:
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👍2❤1🥰1👨💻1
#1 Что выведет код?
def _list(lst):
lst.append(4)
return lst
numbers = [1, 2, 3, 5, 4]
_list(numbers)
print(numbers)
3❤🔥2❤1👍1🤡1👨💻1