From 90a0a564f9d1f59bff139250704d60049e62716c Mon Sep 17 00:00:00 2001 From: Nikolay Shirokov Date: Sun, 26 Nov 2023 21:31:45 +0700 Subject: [PATCH 1/2] work done --- for_challenges.py | 32 +++++++++++++----- for_dict_challenges.py | 76 ++++++++++++++++++++++++++++++++++++++---- string_challenges.py | 34 +++++++++++++------ 3 files changed, 116 insertions(+), 26 deletions(-) diff --git a/for_challenges.py b/for_challenges.py index 997754da..26274d98 100644 --- a/for_challenges.py +++ b/for_challenges.py @@ -2,8 +2,9 @@ # Необходимо вывести имена всех учеников из списка с новой строки names = ['Оля', 'Петя', 'Вася', 'Маша'] -# ??? - +for i in names: + print(i) +print() # Задание 2 # Необходимо вывести имена всех учеников из списка, рядом с именем показать количество букв в нём @@ -12,8 +13,9 @@ # Петя: 4 names = ['Оля', 'Петя', 'Вася', 'Маша'] -# ??? - +for i in names: + print(f'{i}: {len(i)}') +print() # Задание 3 # Необходимо вывести имена всех учеников из списка, рядом с именем вывести пол ученика @@ -25,8 +27,9 @@ 'Маша': False, } names = ['Оля', 'Петя', 'Вася', 'Маша'] -# ??? - +for i in names: + print(f'{i}: {is_male.get(i)}') +print() # Задание 4 # Даны группу учеников. Нужно вывести количество групп и для каждой группы – количество учеников в ней @@ -40,8 +43,10 @@ ['Вася', 'Маша', 'Саша', 'Женя'], ['Оля', 'Петя', 'Гриша'], ] -# ??? - +print(f'Всего {len(groups)} группы.') +for i in groups: + print(f'Группа {groups.index(i) + 1}: {len(i)} ученика') +print() # Задание 5 # Для каждой пары учеников нужно с новой строки перечислить учеников, которые в неё входят @@ -54,4 +59,13 @@ ['Оля', 'Петя', 'Гриша'], ['Вася', 'Маша', 'Саша', 'Женя'], ] -# ??? \ No newline at end of file +student=[] +for i in groups: + print(f'Группа {groups.index(i) + 1}:',end=' ') + for j in range(len(i)): + print(i[j],end='') + if j != len(i) - 1: + print(',',end='') + print() + + diff --git a/for_dict_challenges.py b/for_dict_challenges.py index fd86d344..1a9e33aa 100644 --- a/for_dict_challenges.py +++ b/for_dict_challenges.py @@ -12,8 +12,18 @@ {'first_name': 'Маша'}, {'first_name': 'Петя'}, ] -# ??? +names = dict() + +for student in students: + if student['first_name'] not in names.keys(): + names[student['first_name']] = 1 + else: + names[student['first_name']] += 1 + +for name, count in names.items(): + print(f'{name}: {count}') +print() # Задание 2 # Дан список учеников, нужно вывести самое часто повторящееся имя @@ -26,8 +36,19 @@ {'first_name': 'Маша'}, {'first_name': 'Оля'}, ] -# ??? +names = dict() + +for student in students: + if student['first_name'] not in names.keys(): + names[student['first_name']] = 1 + else: + names[student['first_name']] += 1 +max_count=max(names.values()) +for name, count in names.items(): + if count == max_count: + print(name) +print() # Задание 3 # Есть список учеников в нескольких классах, нужно вывести самое частое имя в каждом классе. @@ -51,8 +72,20 @@ {'first_name': 'Саша'}, ], ] -# ??? +names = dict() +for students in school_students: + for student in students: + if student['first_name'] not in names.keys(): + names[student['first_name']] = 1 + else: + names[student['first_name']] += 1 + max_count = max(names.values()) + for name, count in names.items(): + if count == max_count: + print(f'Самое частое имя в классе {school_students.index(students)+1}: {name}') + names.clear() +print() # Задание 4 # Для каждого класса нужно вывести количество девочек и мальчиков в нём. @@ -72,8 +105,17 @@ 'Миша': True, 'Даша': False, } -# ??? - +for school_class in school: + boys_count = 0 + girl_count = 0 + for students in school_class['students']: + for name in students.values(): + if is_male[name]: + boys_count += 1 + else: + girl_count += 1 + print(f'Класс {school_class["class"]}: девочки {girl_count}, мальчики {boys_count}') +print() # Задание 5 # По информации о учениках разных классов нужно найти класс, в котором больше всего девочек и больше всего мальчиков @@ -91,5 +133,25 @@ 'Олег': True, 'Миша': True, } -# ??? - +class_school={} +for school_class in school: + class_school[school_class["class"]] = {"boys_count": 0, "girls_count": 0} + for students in school_class['students']: + for name in students.values(): + if is_male[name]: + class_school[school_class["class"]]["boys_count"] += 1 + else: + class_school[school_class["class"]]["girls_count"] += 1 +clas_with_max_girl = '' +max_boys = 0 +max_girls = 0 +clas_with_max_boy = '' +for clas in class_school.keys(): + if max_boys < class_school[clas]['boys_count']: + max_boys = class_school[clas]['boys_count'] + clas_with_max_boy = clas + if max_girls < class_school[clas]['girls_count']: + max_girls = class_school[clas]['girls_count'] + clas_with_max_girl = clas +print(f'Больше всего мальчиков в классе {clas_with_max_boy}') +print(f'Больше всего девочек в классе {clas_with_max_girl}') diff --git a/string_challenges.py b/string_challenges.py index 856add2d..7864c33a 100644 --- a/string_challenges.py +++ b/string_challenges.py @@ -1,28 +1,42 @@ # Вывести последнюю букву в слове word = 'Архангельск' -# ??? - +print(word[-1]) +print() # Вывести количество букв "а" в слове word = 'Архангельск' -# ??? +print(word.lower().count('а')) +print() # Вывести количество гласных букв в слове word = 'Архангельск' -# ??? - +count = 0 +vowels = set("айуеыоэяию") +for letter in word.lower(): + if letter in vowels: + count += 1 +print(f"Количество гласных букв: {count}") +print() # Вывести количество слов в предложении sentence = 'Мы приехали в гости' -# ??? - +words = sentence.split() +num_words = len(words) +print(num_words) +print() # Вывести первую букву каждого слова на отдельной строке sentence = 'Мы приехали в гости' -# ??? - +words = sentence.split() +for i in words: + print(i[0]) +print() # Вывести усреднённую длину слова в предложении sentence = 'Мы приехали в гости' -# ??? \ No newline at end of file +words = sentence.split() +lenght=0 +for i in words: + lenght+=len(i) +print(lenght/len(words)) \ No newline at end of file From 99301e520a1d13692f074ee1223e4e30f82e08f6 Mon Sep 17 00:00:00 2001 From: Nikolay Shirokov Date: Sat, 2 Dec 2023 21:01:36 +0700 Subject: [PATCH 2/2] fixed work --- for_challenges.py | 17 +++++++---------- for_dict_challenges.py | 2 +- 2 files changed, 8 insertions(+), 11 deletions(-) diff --git a/for_challenges.py b/for_challenges.py index 26274d98..12418124 100644 --- a/for_challenges.py +++ b/for_challenges.py @@ -44,8 +44,8 @@ ['Оля', 'Петя', 'Гриша'], ] print(f'Всего {len(groups)} группы.') -for i in groups: - print(f'Группа {groups.index(i) + 1}: {len(i)} ученика') +for index_number, group in enumerate(groups): + print(f'Группа {index_number + 1}: {len(group)} ученика') print() # Задание 5 @@ -59,13 +59,10 @@ ['Оля', 'Петя', 'Гриша'], ['Вася', 'Маша', 'Саша', 'Женя'], ] -student=[] -for i in groups: - print(f'Группа {groups.index(i) + 1}:',end=' ') - for j in range(len(i)): - print(i[j],end='') - if j != len(i) - 1: - print(',',end='') - print() +for index_number, group in enumerate(groups): + print(f'Группа {index_number + 1}:',end=' ') + group_as_str = ', '.join(group) + print(group_as_str) + diff --git a/for_dict_challenges.py b/for_dict_challenges.py index 1a9e33aa..08f6979b 100644 --- a/for_dict_challenges.py +++ b/for_dict_challenges.py @@ -16,7 +16,7 @@ names = dict() for student in students: - if student['first_name'] not in names.keys(): + if student['first_name'] not in names: names[student['first_name']] = 1 else: names[student['first_name']] += 1