From e460165513cc61c3d2a6b2e0fea50f67b6dd7c3c Mon Sep 17 00:00:00 2001 From: Nikolay Olta Date: Sun, 26 Nov 2023 20:30:04 +0600 Subject: [PATCH 1/5] =?UTF-8?q?=D0=B7=D0=B0=D0=B4=D0=B0=D0=BD=D0=B8=D0=B5?= =?UTF-8?q?=20=D0=BF=D0=BE=20for=20=D0=B3=D0=BE=D1=82=D0=BE=D0=B2=D0=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- for_challenges.py | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/for_challenges.py b/for_challenges.py index 997754da..cafcee46 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] == False: + print(f'{name}: Ж') + else: + print(f'{name}: М') # Задание 4 # Даны группу учеников. Нужно вывести количество групп и для каждой группы – количество учеников в ней @@ -40,7 +45,12 @@ ['Вася', 'Маша', 'Саша', 'Женя'], ['Оля', 'Петя', 'Гриша'], ] -# ??? +print(f'Всего {len(groups)} группы') +number_group = 1 +for number_persons in groups: + print(f'Группа {number_group}: {len(number_persons)} ученика') + number_group += 1 + # Задание 5 @@ -54,4 +64,8 @@ ['Оля', 'Петя', 'Гриша'], ['Вася', 'Маша', 'Саша', 'Женя'], ] -# ??? \ No newline at end of file +number_group = 1 +for names in groups: + names_str = ', '.join(names) + print(f'Группа {number_group}: {names_str}') + number_group += 1 From 444c01ab385d266667270ccae64f5963a13b674c Mon Sep 17 00:00:00 2001 From: Nikolay Olta Date: Sun, 26 Nov 2023 20:42:25 +0600 Subject: [PATCH 2/5] =?UTF-8?q?=D0=B3=D0=BE=D1=82=D0=BE=D0=B2=D0=BE=D0=B5?= =?UTF-8?q?=20=D0=B7=D0=B0=D0=B4=D0=B0=D0=BD=D0=B8=D0=B5=20=D0=BF=D0=BE=20?= =?UTF-8?q?for?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- for_challenges.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/for_challenges.py b/for_challenges.py index cafcee46..914e27e5 100644 --- a/for_challenges.py +++ b/for_challenges.py @@ -56,7 +56,7 @@ # Задание 5 # Для каждой пары учеников нужно с новой строки перечислить учеников, которые в неё входят # Пример вывода: -# Группа 1: Вася, Маша +#Группа 1: Вася, Маша # Группа 2: Оля, Петя, Гриша groups = [ From c771b87ffd89a4bcd5c0886583f89c4d358c9fce Mon Sep 17 00:00:00 2001 From: Nikolay Olta Date: Mon, 27 Nov 2023 17:04:22 +0600 Subject: [PATCH 3/5] =?UTF-8?q?=D0=B8=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=B8?= =?UTF-8?q?=D0=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- for_challenges.py | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/for_challenges.py b/for_challenges.py index 914e27e5..167b94a3 100644 --- a/for_challenges.py +++ b/for_challenges.py @@ -28,7 +28,7 @@ names = ['Оля', 'Петя', 'Вася', 'Маша'] for name in names: - if is_male[name] == False: + if is_male[name] is False: print(f'{name}: Ж') else: print(f'{name}: М') @@ -46,10 +46,8 @@ ['Оля', 'Петя', 'Гриша'], ] print(f'Всего {len(groups)} группы') -number_group = 1 -for number_persons in groups: - print(f'Группа {number_group}: {len(number_persons)} ученика') - number_group += 1 +for index, name in enumerate(groups, start=1): + print(f'Группа {index}: {len(name)} ученика') @@ -64,8 +62,8 @@ ['Оля', 'Петя', 'Гриша'], ['Вася', 'Маша', 'Саша', 'Женя'], ] -number_group = 1 -for names in groups: - names_str = ', '.join(names) - print(f'Группа {number_group}: {names_str}') - number_group += 1 + + +for index, names in enumerate(groups, start=1): + names = ', '.join(names) + print(f'Группа {index}: {names}') \ No newline at end of file From 2ddd780773f9a98b2b7d07899458d59cfcfeaecb Mon Sep 17 00:00:00 2001 From: Nikolay Olta Date: Mon, 27 Nov 2023 20:25:59 +0600 Subject: [PATCH 4/5] done --- string_challenges.py | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) 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 From aac6808f07c34bc6ec663948496d92c593a42765 Mon Sep 17 00:00:00 2001 From: Nikolay Olta Date: Thu, 30 Nov 2023 00:03:45 +0600 Subject: [PATCH 5/5] done' --- for_dict_challenges.py | 85 +++++++++++++++++++++++++++++++++++++++--- 1 file changed, 79 insertions(+), 6 deletions(-) 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))