diff --git a/for_challenges.py b/for_challenges.py index 997754da..167b94a3 100644 --- a/for_challenges.py +++ b/for_challenges.py @@ -2,8 +2,8 @@ # Необходимо вывести имена всех учеников из списка с новой строки names = ['Оля', 'Петя', 'Вася', 'Маша'] -# ??? - +for name in names: + print(name) # Задание 2 # Необходимо вывести имена всех учеников из списка, рядом с именем показать количество букв в нём @@ -12,7 +12,8 @@ # Петя: 4 names = ['Оля', 'Петя', 'Вася', 'Маша'] -# ??? +for name in names: + print(f'{name}: {len(name)}') # Задание 3 @@ -25,8 +26,12 @@ 'Маша': False, } names = ['Оля', 'Петя', 'Вася', 'Маша'] -# ??? +for name in names: + if is_male[name] is False: + print(f'{name}: Ж') + else: + print(f'{name}: М') # Задание 4 # Даны группу учеников. Нужно вывести количество групп и для каждой группы – количество учеников в ней @@ -40,13 +45,16 @@ ['Вася', 'Маша', 'Саша', 'Женя'], ['Оля', 'Петя', 'Гриша'], ] -# ??? +print(f'Всего {len(groups)} группы') +for index, name in enumerate(groups, start=1): + print(f'Группа {index}: {len(name)} ученика') + # Задание 5 # Для каждой пары учеников нужно с новой строки перечислить учеников, которые в неё входят # Пример вывода: -# Группа 1: Вася, Маша +#Группа 1: Вася, Маша # Группа 2: Оля, Петя, Гриша groups = [ @@ -54,4 +62,8 @@ ['Оля', 'Петя', 'Гриша'], ['Вася', 'Маша', 'Саша', 'Женя'], ] -# ??? \ No newline at end of file + + +for index, names in enumerate(groups, start=1): + names = ', '.join(names) + print(f'Группа {index}: {names}') \ No newline at end of file diff --git a/for_dict_challenges.py b/for_dict_challenges.py index fd86d344..bc491df3 100644 --- a/for_dict_challenges.py +++ b/for_dict_challenges.py @@ -12,7 +12,16 @@ {'first_name': 'Маша'}, {'first_name': 'Петя'}, ] -# ??? +count_student = {} +for student_dict in students: + for key, name in student_dict.items(): + if name in count_student: + count_student[name] += 1 + else: + count_student[name] = 1 +for name, count in count_student.items(): + print(f'{name}: {count}') + # Задание 2 @@ -26,8 +35,15 @@ {'first_name': 'Маша'}, {'first_name': 'Оля'}, ] -# ??? - +counter_student_name_max = {} +for students_dict in students: + for key, name in students_dict.items(): + if name in counter_student_name_max: + counter_student_name_max[name] += 1 + else: + counter_student_name_max[name] = 1 +name = sorted(counter_student_name_max.items(), key=lambda item: item[1], reverse=True) +print(f'Самое частое имя среди учеников: {name[0][0]}') # Задание 3 # Есть список учеников в нескольких классах, нужно вывести самое частое имя в каждом классе. @@ -51,7 +67,24 @@ {'first_name': 'Саша'}, ], ] -# ??? + +def max_count_name(arg, arg2): + counter_student_name_max = {} + for students_dict in arg: + for key, name in students_dict.items(): + if name in counter_student_name_max: + counter_student_name_max[name] += 1 + else: + counter_student_name_max[name] = 1 + name_student = sorted(counter_student_name_max.items(), key=lambda item: item[1], reverse=True) + + return f'Самое частое имя в классе {arg2}: {name_student[0][0]}' + + +number_class = 0 +for school_class in school_students: + number_class += 1 + print(max_count_name(school_class, number_class)) # Задание 4 @@ -72,7 +105,26 @@ 'Миша': True, 'Даша': False, } -# ??? + +def student_counting(val, numb): + counter_gender_student = {'men': 0, 'female': 0} + for student_dict in val: + for key, name in student_dict.items(): + if is_male[name] is True: + counter_gender_student['men'] += 1 + else: + counter_gender_student['female'] += 1 + return f'Класс {numb}: девочки {counter_gender_student["female"]}, мальчики {counter_gender_student["men"]}' + + + +for classes in school: + for key, value in classes.items(): + if type(value) is type(list()): + value_list = value + else: + number_class = value + print(student_counting(value_list, number_class)) # Задание 5 @@ -91,5 +143,26 @@ 'Олег': True, 'Миша': True, } -# ??? +def student_counting(val, numb): + counter_gender_student = {'men': 0, 'female': 0} + for student_dict in val: + for key, name in student_dict.items(): + if is_male[name] is True: + counter_gender_student['men'] += 1 + else: + counter_gender_student['female'] += 1 + if counter_gender_student['men'] > counter_gender_student['female']: + return f'Больше всего мальчиков в классе {numb}' + else: + return f'Больше всего девочек в классе {numb}' + + + +for classes in school: + for key, value in classes.items(): + if type(value) is type(list()): + value_list = value + else: + number_class = value + print(student_counting(value_list, number_class)) diff --git a/string_challenges.py b/string_challenges.py index 856add2d..1b37db6c 100644 --- a/string_challenges.py +++ b/string_challenges.py @@ -1,28 +1,38 @@ # Вывести последнюю букву в слове word = 'Архангельск' -# ??? +print(word[-1]) # Вывести количество букв "а" в слове word = 'Архангельск' -# ??? +print(word.lower().count('а')) # Вывести количество гласных букв в слове word = 'Архангельск' -# ??? +count = 0 +for i in word.lower(): + if i in 'ауоыяюёие': + count += 1 +print(count) # Вывести количество слов в предложении sentence = 'Мы приехали в гости' -# ??? +print(len(sentence.split())) # Вывести первую букву каждого слова на отдельной строке sentence = 'Мы приехали в гости' -# ??? +for i in sentence.split(): + print(i[0]) # Вывести усреднённую длину слова в предложении sentence = 'Мы приехали в гости' -# ??? \ No newline at end of file +count_word = len(sentence.split()) +count_letter = 0 +for i in sentence: + if i.isalpha(): + count_letter += 1 +print(count_letter / count_word) \ No newline at end of file