-
Notifications
You must be signed in to change notification settings - Fork 262
Remade and schortened #43
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from 13 commits
1c11577
f9eded5
9b5cba5
e5e42f9
8a33573
f2acd9b
83ec935
81966ee
d6f5903
69c603c
b55efe6
cc333c9
802da7c
fdc14f1
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -5,28 +5,68 @@ | |
| # Маша: 2 | ||
| # Петя: 2 | ||
|
|
||
|
|
||
| print('Ответ на задание 1:') | ||
|
|
||
|
|
||
| students = [ | ||
| {'first_name': 'Вася'}, | ||
| {'first_name': 'Петя'}, | ||
| {'first_name': 'Маша'}, | ||
| {'first_name': 'Маша'}, | ||
| {'first_name': 'Петя'}, | ||
| ] | ||
| # ??? | ||
|
|
||
|
|
||
| repeat_students = {} | ||
|
|
||
|
|
||
| for inform_student in students: | ||
| student_name = inform_student['first_name'] | ||
| if student_name in repeat_students: | ||
| repeat_students[student_name] = repeat_students.get(student_name) + 1 | ||
| else: | ||
| repeat_students[student_name] = 1 | ||
|
|
||
|
|
||
| for name, count_name in repeat_students.items(): | ||
| print(name, count_name) | ||
|
|
||
|
|
||
| # Задание 2 | ||
| # Дан список учеников, нужно вывести самое часто повторящееся имя | ||
| # Пример вывода: | ||
| # Самое частое имя среди учеников: Маша | ||
|
|
||
|
|
||
| print('Ответ на задание 2:') | ||
|
|
||
|
|
||
| students = [ | ||
| {'first_name': 'Вася'}, | ||
| {'first_name': 'Петя'}, | ||
| {'first_name': 'Маша'}, | ||
| {'first_name': 'Маша'}, | ||
| {'first_name': 'Оля'}, | ||
| {'first_name': 'Вася'}, | ||
| {'first_name': 'Петя'}, | ||
| {'first_name': 'Петя'}, | ||
| ] | ||
| # ??? | ||
|
|
||
|
|
||
| number_repetitions_names = {} | ||
|
|
||
|
|
||
| for inf_student in students: | ||
| student_name = inf_student['first_name'] | ||
| if student_name in number_repetitions_names: | ||
| number_repetitions_names[student_name] = number_repetitions_names.get(student_name) + 1 | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Тут не нужно использовать get тк в условии ифа ты проверил, что такой ключ точно есть |
||
| else: | ||
| number_repetitions_names[student_name] = 1 | ||
|
|
||
|
|
||
| max_key = max(number_repetitions_names, key=number_repetitions_names.get) | ||
| print(f'Самое частое имя среди учеников: {max_key}') | ||
|
|
||
|
|
||
| # Задание 3 | ||
|
|
@@ -35,23 +75,42 @@ | |
| # Самое частое имя в классе 1: Вася | ||
| # Самое частое имя в классе 2: Маша | ||
|
|
||
|
|
||
| print('Ответ на задание 3:') | ||
|
|
||
|
|
||
| school_students = [ | ||
| [ # это – первый класс | ||
| {'first_name': 'Вася'}, | ||
| {'first_name': 'Вася'}, | ||
| ], | ||
| [ # это – второй класс | ||
| {'first_name': 'Вася'} | ||
| ],[ # это – второй класс | ||
| {'first_name': 'Маша'}, | ||
| {'first_name': 'Маша'}, | ||
| {'first_name': 'Оля'}, | ||
| {'first_name': 'Оля'} | ||
| ],[ # это – третий класс | ||
| {'first_name': 'Женя'}, | ||
| {'first_name': 'Петя'}, | ||
| {'first_name': 'Женя'}, | ||
| {'first_name': 'Саша'}, | ||
| {'first_name': 'Саша'} | ||
| ], | ||
| ] | ||
| # ??? | ||
|
|
||
|
|
||
| count_name = 0 | ||
|
|
||
|
|
||
| for class_num, every_class in enumerate(school_students, start=1): | ||
| class_students = {} | ||
| for every_schoolkid in every_class: | ||
| if every_schoolkid['first_name'] in class_students: | ||
| count_name += 1 | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. В этой переменной какая-то беда: ты вроде считаешь повторение одного имени, но переменная общая на все имена: обнуляется только перед первым циклом. Я бы советовал вообще избавиться от этой переменной. |
||
| class_students[every_schoolkid['first_name']] = count_name | ||
| else: | ||
| count_name = 1 | ||
| class_students[every_schoolkid['first_name']] = count_name | ||
|
|
||
| max_repeat = max(class_students, key=class_students.get) | ||
| print(f'Самое частое имя в классе {class_num}: {max_repeat}') | ||
|
|
||
|
|
||
| # Задание 4 | ||
|
|
@@ -60,19 +119,47 @@ | |
| # Класс 2a: девочки 2, мальчики 0 | ||
| # Класс 2б: девочки 0, мальчики 2 | ||
|
|
||
|
|
||
| print('Ответ на задание 4:') | ||
|
|
||
|
|
||
| school = [ | ||
| {'class': '2a', 'students': [{'first_name': 'Маша'}, {'first_name': 'Оля'}]}, | ||
| {'class': '2б', 'students': [{'first_name': 'Олег'}, {'first_name': 'Миша'}]}, | ||
| {'class': '2б', 'students': [{'first_name': 'Даша'}, {'first_name': 'Олег'}, {'first_name': 'Маша'}]}, | ||
| ] | ||
|
|
||
|
|
||
| is_male = { | ||
| 'Олег': True, | ||
| 'Маша': False, | ||
| 'Оля': False, | ||
| 'Миша': True, | ||
| 'Даша': False, | ||
| } | ||
| # ??? | ||
|
|
||
|
|
||
| for inform_class in school: | ||
| class_num = inform_class['class'] | ||
| if inform_class.get('students'): | ||
| students = inform_class['students'] | ||
| count_man = 0 | ||
| count_women = 0 | ||
|
|
||
| for name_stud in students: | ||
| name_gender = name_stud['first_name'] | ||
| if name_gender in is_male: | ||
| gender = is_male[name_gender] | ||
| if gender: | ||
| count_man += 1 | ||
| else: | ||
| count_women += 1 | ||
| else: | ||
| print(f'У {name_gender} не обозначен пол') | ||
| count_women = "Ошибка" | ||
| count_man = "Ошибка" | ||
| break | ||
| print(f'Класс {class_num}: девочки {count_women}, мальчики {count_man}') | ||
|
|
||
|
|
||
| # Задание 5 | ||
|
|
@@ -81,6 +168,10 @@ | |
| # Больше всего мальчиков в классе 3c | ||
| # Больше всего девочек в классе 2a | ||
|
|
||
|
|
||
| print('Ответ на задание 5:') | ||
|
|
||
|
|
||
| school = [ | ||
| {'class': '2a', 'students': [{'first_name': 'Маша'}, {'first_name': 'Оля'}]}, | ||
| {'class': '3c', 'students': [{'first_name': 'Олег'}, {'first_name': 'Миша'}]}, | ||
|
|
@@ -91,5 +182,50 @@ | |
| 'Олег': True, | ||
| 'Миша': True, | ||
| } | ||
| # ??? | ||
|
|
||
|
|
||
| sum_gender_in_scool =[] | ||
|
|
||
|
|
||
| for inform_class in school: | ||
| num_gender_in_class = {} | ||
| class_num = inform_class['class'] | ||
| num_gender_in_class['class'] = class_num | ||
| if inform_class.get('students'): | ||
| students = inform_class['students'] | ||
| count_women = 0 | ||
| count_man = 0 | ||
|
|
||
| for name_students in students: | ||
| name_gender = name_students['first_name'] | ||
| if name_gender in is_male: | ||
| gender = is_male[name_gender] | ||
| gender_list = {} | ||
| if gender: | ||
| count_man += 1 | ||
| else: | ||
| count_women += 1 | ||
| else: | ||
| print(f'У {name_gender} не обозначен пол') | ||
| count_women = "Ошибка" | ||
| count_man = "Ошибка" | ||
| break | ||
| gender_list['девочки'] = count_women | ||
| gender_list['мальчики'] = count_man | ||
| num_gender_in_class['gender'] = gender_list | ||
| sum_gender_in_scool.append(num_gender_in_class) | ||
|
|
||
|
|
||
|
|
||
|
|
||
| for inform_every_class in sum_gender_in_scool: | ||
| num_class = inform_every_class.get('class') | ||
|
|
||
| if inform_every_class.get('gender'): | ||
| gender_lists = inform_every_class['gender'] | ||
| max_gender = max(gender_lists, key=gender_lists.get) | ||
|
|
||
| if max_gender == 'девочки': | ||
| print(f'Больше всего девочек в классе {num_class}') | ||
| elif max_gender == 'мальчики': | ||
| print(f'Больше всего мальчиков в классе {num_class}') | ||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
В коменте к пул-реквесту написано, что поправил пятое задание из бонусных, а в пул-реквесте вообще все задания. Непонятно что смотреть.
Я погляжу всё, но старайся пжл чтобы в пул-реквестах не было того, что смотреть не надо.