Помогите пожалуйста с решением задачи python. - Общение Python мододелов

Вопрос Помогите пожалуйста с решением задачи python.

Регистрация
14 Дек 2012
Сообщения
85
Репутация
0
Спасибо
0
Монет
0
Создайте словарь (тип данных dictionary), содержащий информацию о 10 студентах, укажите их

- ФИО

- возраст

- средний балл за обучение.

Напишите функцию, которая принимает как параметр этот словарь и возвращает список студентов старше

определенного возраста (через аргумент функции).

Не забудьте про использование блока try … except …
 
Регистрация
2 Авг 2013
Сообщения
74
Репутация
0
Спасибо
0
Монет
0
На def create_student_dict():
students = {
1: {"ФИО": "Иванов Иван Иванович", "Возраст": 20, "Средний балл": 4.5},
2: {"ФИО": "Петров Петр Петрович", "Возраст": 22, "Средний балл": 3.8},
3: {"ФИО": "Сидорова Мария Ивановна", "Возраст": 19, "Средний балл": 4.9},
4: {"ФИО": "Козлова Ольга Сергеевна", "Возраст": 21, "Средний балл": 4.2},
5: {"ФИО": "Смирнов Дмитрий Павлович", "Возраст": 23, "Средний балл": 3.7},
6: {"ФИО": "Кузнецова Елена Александровна", "Возраст": 20, "Средний балл": 4.8},
7: {"ФИО": "Фёдоров Алексей Николаевич", "Возраст": 24, "Средний балл": 3.9},
8: {"ФИО": "Васильева Анна Андреевна", "Возраст": 18, "Средний балл": 4.6},
9: {"ФИО": "Морозов Николай Викторович", "Возраст": 22, "Средний балл": 4.0},
10: {"ФИО": "Новикова Екатерина Игоревна", "Возраст": 19, "Средний балл": 4.3}
}
return students

def get_students_older_than(students, age):
try:
if not isinstance(age, int) or age < 0:
raise ValueError("Возраст должен быть положительным целым числом.")
older_students = [student_info["ФИО"] for student_info in students.values() if student_info["Возраст"] > age]
return older_students
except ValueError as ve:
print(f"Ошибка: {ve}")
except Exception as e:
print(f"Произошла ошибка: {e}")

def main():
students_dict = create_student_dict()
while True:
try:
age = int(input("Введите возраст, чтобы узнать студентов старше этого возраста: "))
older_students = get_students_older_than(students_dict, age)
if older_students:
print("Студенты старше", age, "лет:")
for student in older_students:
print("-", student)
else:
print("Нет студентов старше", age, "лет.")
break
except ValueError:
print("Пожалуйста, введите корректное целое число для возраста.")

if __name__ == "__main__":
main()
 
Регистрация
21 Июн 2013
Сообщения
76
Репутация
0
Спасибо
0
Монет
0
def get_students_over_age(students_dict, age):
try:
return [student for student in students_dict.values() if student["age"] > age]
except KeyError:
print("Возраст не найден в словаре студентов.")

students_dict = {
"Иван Иванов": {"возраст": 20, "средний балл": 4.5},
"Анна Петрова": {"возраст": 22, "средний балл": 4.0},
"Сергей Сидоров": {"возраст": 21, "средний балл": 4.2},
"Мария Смирнова": {"возраст": 23, "средний балл": 4.8},
"Дмитрий Дмитриев": {"возраст": 24, "средний балл": 4.6},
"Елена Егорова": {"возраст": 25, "средний балл": 4.4},
"Алексей Алексеев": {"возраст": 26, "средний балл": 4.3},
"Наталья Николаева": {"возраст": 27, "средний балл": 4.7},
"Ольга Орлова": {"возраст": 28, "средний балл": 4.9},
"Виктор Викторов": {"возраст": 29, "средний балл": 4.8}
}

print(get_students_over_age(students_dict, 25))
 
Регистрация
12 Дек 2013
Сообщения
103
Репутация
1
Спасибо
0
Монет
0
students_dict = {
"Иван Иванов": {"возраст": 20, "средний балл": 4.5},
"Анна Петрова": {"возраст": 22, "средний балл": 4.0},
"Сергей Сидоров": {"возраст": 21, "средний балл": 4.2},
"Мария Смирнова": {"возраст": 23, "средний балл": 4.8},
"Дмитрий Дмитриев": {"возраст": 24, "средний балл": 4.6},
"Елена Егорова": {"возраст": 25, "средний балл": 4.4},
"Алексей Алексеев": {"возраст": 26, "средний балл": 4.3},
"Наталья Николаева": {"возраст": 27, "средний балл": 4.7},
"Ольга Орлова": {"возраст": 28, "средний балл": 4.9},
"Виктор Викторов": {"возраст": 29, "средний балл": 4.8}
}

def stud_age(students: dict, age: int):
try:
students_list = []
for key, value in students.items():
if age < value['возраст']:
students_list.append(key)
return(students_list)
except ValueError:
print('!!!')

print(stud_age(students_dict, 28))
 
Сверху Снизу