diff --git a/for_challenges.py b/for_challenges.py index 997754da..862e0361 100644 --- a/for_challenges.py +++ b/for_challenges.py @@ -2,7 +2,10 @@ # Необходимо вывести имена всех учеников из списка с новой строки names = ['Оля', 'Петя', 'Вася', 'Маша'] -# ??? +for name in names: + print(name) + +print() # Задание 2 @@ -12,8 +15,10 @@ # Петя: 4 names = ['Оля', 'Петя', 'Вася', 'Маша'] -# ??? +for name in names: + print(f"{name}: {len(name)}") +print() # Задание 3 # Необходимо вывести имена всех учеников из списка, рядом с именем вывести пол ученика @@ -25,8 +30,14 @@ 'Маша': False, } names = ['Оля', 'Петя', 'Вася', 'Маша'] -# ??? +for name in names: + if is_male[name] == False: #обращение к значению ключа + gender = ("жениский") + else: + gender = ("мужской") + print(f"{name}: пол {gender}") +print() # Задание 4 # Даны группу учеников. Нужно вывести количество групп и для каждой группы – количество учеников в ней @@ -40,8 +51,15 @@ ['Вася', 'Маша', 'Саша', 'Женя'], ['Оля', 'Петя', 'Гриша'], ] -# ??? +groups_count = 0 #объявляем счетчик групп +all_groups = len(groups) #определяем количество списков в списке +print(f"Всего {all_groups} группы") +for group in groups: #исполняем для каждого списка в списке + groups_count += 1 + group_size = len(group) #считаем длину списка в списке + print(f"Группа {groups_count}: {group_size} учеников") +print() # Задание 5 # Для каждой пары учеников нужно с новой строки перечислить учеников, которые в неё входят @@ -54,4 +72,9 @@ ['Оля', 'Петя', 'Гриша'], ['Вася', 'Маша', 'Саша', 'Женя'], ] -# ??? \ No newline at end of file +for i, group in enumerate(groups, 1): #перебираем группы с индексом, начиная с 1 + group_list = '' + for name in group: #каждое имя в списке + group_list += name #формируем перечень имен + group_list += ', ' + print(f"Группа {i}: {group_list}") \ No newline at end of file diff --git a/for_dict_challenges.py b/for_dict_challenges.py index fd86d344..fc4cf761 100644 --- a/for_dict_challenges.py +++ b/for_dict_challenges.py @@ -12,8 +12,16 @@ {'first_name': 'Маша'}, {'first_name': 'Петя'}, ] -# ??? +name_count = {} # Словарь для подсчета имен + +for student in students: + name = student['first_name'] + name_count[name] = name_count.get(name, 0) + 1 # Увеличиваем счетчик имени + +# Выводим результат +for name, count in name_count.items(): + print(f"{name}: {count}") # Задание 2 # Дан список учеников, нужно вывести самое часто повторящееся имя @@ -26,7 +34,17 @@ {'first_name': 'Маша'}, {'first_name': 'Оля'}, ] -# ??? + +name_count = {} #Словарь для подсчета имен + +for student in students: + name = student['first_name'] + name_count[name] = name_count.get(name, 0) + 1 # Увеличиваем счетчик имени + +most_common_name = max(name_count, key=name_count.get) + +print(f'Самое частое имя среди учеников: {most_common_name}') + # Задание 3 @@ -51,8 +69,15 @@ {'first_name': 'Саша'}, ], ] -# ??? +for i, students in enumerate(school_students, 1): + name_count = {} + for student in students: + name = student['first_name'] + name_count[name] = name_count.get(name, 0) + 1 + most_common_name = max(name_count, key = name_count.get) + print(f'Самое частое имя в классе {i}: {most_common_name}') +print() # Задание 4 # Для каждого класса нужно вывести количество девочек и мальчиков в нём. @@ -72,8 +97,21 @@ 'Миша': True, 'Даша': False, } -# ??? +for class_info in school: + class_name = class_info['class'] #название класса + boys = 0 + girls = 0 + + for student in class_info['students']: + if is_male[student['first_name']]: + boys += 1 + else: + girls += 1 + + print(f'Класс {class_name}: девочки {girls}, мальчики {boys}') + +print() # Задание 5 # По информации о учениках разных классов нужно найти класс, в котором больше всего девочек и больше всего мальчиков @@ -91,5 +129,30 @@ 'Олег': True, 'Миша': True, } -# ??? +max_boys = 0 +max_girls = 0 +class_with_most_boys = '' +class_with_most_girls = '' + +for class_info in school: + class_name = class_info['class'] #название класса + boys = 0 + girls = 0 + + for student in class_info['students']: + if is_male[student['first_name']]: + boys += 1 + + else: + girls += 1 + + if boys > max_boys: + max_boys = boys + class_with_most_boys = class_name + + if girls > max_girls: + max_girls = girls + class_with_most_girls = class_name +print(f'Больше всего мальчиков в классе {class_with_most_boys}') +print(f'Больше всего девочек в классе {class_with_most_girls}') \ No newline at end of file diff --git a/string_challenges.py b/string_challenges.py index 856add2d..95aa6d12 100644 --- a/string_challenges.py +++ b/string_challenges.py @@ -1,28 +1,45 @@ # Вывести последнюю букву в слове word = 'Архангельск' -# ??? +letters = list(word) +print(f'Последняя буква в слове Архангельск: {letters[-1]}') +print() # Вывести количество букв "а" в слове word = 'Архангельск' -# ??? +word = word.lower() +count_a = word.count('а') +#count_a = word.lower().count('а') +print(f'Количество букв "a" в слове Архангельск = {count_a}') +print() # Вывести количество гласных букв в слове word = 'Архангельск' -# ??? - +gls = 'аеёиоуыэюяАЕЁИОУЫЭЮЯ' +count = 0 +for letter in word: + if letter in gls: + count += 1 +#count = sum(1 for letter in word if letter in gls) #альтернативная запись +print(f'Количество гласных букв в слове Архангельск = {count}') +print() # Вывести количество слов в предложении sentence = 'Мы приехали в гости' -# ??? - +word_count = len(sentence.split()) +print(f'Количество слов = {word_count}') +print() # Вывести первую букву каждого слова на отдельной строке sentence = 'Мы приехали в гости' -# ??? - +for word in sentence.split(): + print(word[0]) +print() # Вывести усреднённую длину слова в предложении sentence = 'Мы приехали в гости' -# ??? \ No newline at end of file +count_letter = 0 +for word in sentence.split(): + count_letter += len(word.split()) +print(f'Средняя длина слова = {count_letter / len(sentence)}') \ No newline at end of file