From 9f411b618debf6456067c55fea43211ac481381b Mon Sep 17 00:00:00 2001 From: Shirikova Aleksandra Date: Sun, 3 Dec 2023 22:15:29 +0300 Subject: [PATCH 1/7] 1st version --- for_challenges.py | 31 +++++++++++++++++++++++++------ 1 file changed, 25 insertions(+), 6 deletions(-) diff --git a/for_challenges.py b/for_challenges.py index 997754da..87e32a5d 100644 --- a/for_challenges.py +++ b/for_challenges.py @@ -2,8 +2,8 @@ # Необходимо вывести имена всех учеников из списка с новой строки names = ['Оля', 'Петя', 'Вася', 'Маша'] -# ??? - +for name in names: + print(f'{name}\n') # Задание 2 # Необходимо вывести имена всех учеников из списка, рядом с именем показать количество букв в нём @@ -12,7 +12,8 @@ # Петя: 4 names = ['Оля', 'Петя', 'Вася', 'Маша'] -# ??? +for name in names: + print(f'{name}: {len((name))}') # Задание 3 @@ -24,8 +25,19 @@ 'Вася': True, 'Маша': False, } + names = ['Оля', 'Петя', 'Вася', 'Маша'] -# ??? + + +def gender_reveal(name): + if is_male[name] is False: + return ('Женский') + else: + return ('Мужской') + + +for name in names: + print(f'{name} : {gender_reveal(name)}') # Задание 4 @@ -40,7 +52,10 @@ ['Вася', 'Маша', 'Саша', 'Женя'], ['Оля', 'Петя', 'Гриша'], ] -# ??? +count = 0 +for group in groups: + print(f' Группа {count+1} : {len(group)}') + count += 1 # Задание 5 @@ -54,4 +69,8 @@ ['Оля', 'Петя', 'Гриша'], ['Вася', 'Маша', 'Саша', 'Женя'], ] -# ??? \ No newline at end of file +count = 0 +for group in groups: + listik = groups[count] + print(f' Группа {count+1} : {listik}') + count += 1 \ No newline at end of file From af2c51402f2b3181b2fdcd8061a9fa125eab7f5e Mon Sep 17 00:00:00 2001 From: Shirikova Aleksandra Date: Mon, 4 Dec 2023 20:43:43 +0300 Subject: [PATCH 2/7] 1-3 ex --- for_dict_challenges.py | 92 +++++++++++++++++++++++------------------- 1 file changed, 50 insertions(+), 42 deletions(-) diff --git a/for_dict_challenges.py b/for_dict_challenges.py index fd86d344..d7ed7b4a 100644 --- a/for_dict_challenges.py +++ b/for_dict_challenges.py @@ -12,21 +12,52 @@ {'first_name': 'Маша'}, {'first_name': 'Петя'}, ] -# ??? +list_names = list() +for dicts in students: + new_name = (dicts['first_name']) + list_names.append(new_name) + +for li in set(list_names): + list_count = list_names.count(li) + print(f'{li}:{list_count}') + + # Задание 2 # Дан список учеников, нужно вывести самое часто повторящееся имя # Пример вывода: # Самое частое имя среди учеников: Маша -students = [ + + +from collections import Counter + +students_2 = [ {'first_name': 'Вася'}, {'first_name': 'Петя'}, {'first_name': 'Маша'}, {'first_name': 'Маша'}, {'first_name': 'Оля'}, ] -# ??? +list_names = list() +for dicts in students_2: + new_name = dicts['first_name'] + list_names.append(new_name) +count = Counter(list_names) +count_final = dict(count) +max_val = max(count_final.values()) +final_dict = {k: v for k, v in count_final.items() if v == max_val} +print("Самое частое имя среди учеников:") +print(*final_dict) + + + + + + + + + # Задание 3 @@ -51,45 +82,22 @@ {'first_name': 'Саша'}, ], ] -# ??? +list_names = list() +for index, lists in enumerate(school_students, start=1): + list_names = list() + for dicts in lists: + new_name = dicts['first_name'] + list_names.append(new_name) + count_st = Counter(list_names) + count_final = dict(count_st) + max_val = max(count_final.values()) + final_dict = {k: v for k, v in count_final.items() if v == max_val} + print(f'Самое частое имя в классе {index}') + print(*final_dict) + + -# Задание 4 -# Для каждого класса нужно вывести количество девочек и мальчиков в нём. -# Пример вывода: -# Класс 2a: девочки 2, мальчики 0 -# Класс 2б: девочки 0, мальчики 2 - -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, -} -# ??? - - -# Задание 5 -# По информации о учениках разных классов нужно найти класс, в котором больше всего девочек и больше всего мальчиков -# Пример вывода: -# Больше всего мальчиков в классе 3c -# Больше всего девочек в классе 2a - -school = [ - {'class': '2a', 'students': [{'first_name': 'Маша'}, {'first_name': 'Оля'}]}, - {'class': '3c', 'students': [{'first_name': 'Олег'}, {'first_name': 'Миша'}]}, -] -is_male = { - 'Маша': False, - 'Оля': False, - 'Олег': True, - 'Миша': True, -} -# ??? +# Задание 4 и 5 пока не сделала, хочу сделать после твоих комментариев, так как +# , кажется, я чутка усложняю всё или делаю не тем способом, каким было задумано. From ecf9ab14d418f34d39e7c1c42220e6314c8c4a87 Mon Sep 17 00:00:00 2001 From: SashaLesik <96005942+SashaLesik@users.noreply.github.com> Date: Mon, 4 Dec 2023 20:47:38 +0300 Subject: [PATCH 3/7] Revert "1st version_1-5 Groups" --- for_challenges.py | 31 +++----------- for_dict_challenges.py | 92 +++++++++++++++++++----------------------- 2 files changed, 48 insertions(+), 75 deletions(-) diff --git a/for_challenges.py b/for_challenges.py index 87e32a5d..997754da 100644 --- a/for_challenges.py +++ b/for_challenges.py @@ -2,8 +2,8 @@ # Необходимо вывести имена всех учеников из списка с новой строки names = ['Оля', 'Петя', 'Вася', 'Маша'] -for name in names: - print(f'{name}\n') +# ??? + # Задание 2 # Необходимо вывести имена всех учеников из списка, рядом с именем показать количество букв в нём @@ -12,8 +12,7 @@ # Петя: 4 names = ['Оля', 'Петя', 'Вася', 'Маша'] -for name in names: - print(f'{name}: {len((name))}') +# ??? # Задание 3 @@ -25,19 +24,8 @@ 'Вася': True, 'Маша': False, } - names = ['Оля', 'Петя', 'Вася', 'Маша'] - - -def gender_reveal(name): - if is_male[name] is False: - return ('Женский') - else: - return ('Мужской') - - -for name in names: - print(f'{name} : {gender_reveal(name)}') +# ??? # Задание 4 @@ -52,10 +40,7 @@ def gender_reveal(name): ['Вася', 'Маша', 'Саша', 'Женя'], ['Оля', 'Петя', 'Гриша'], ] -count = 0 -for group in groups: - print(f' Группа {count+1} : {len(group)}') - count += 1 +# ??? # Задание 5 @@ -69,8 +54,4 @@ def gender_reveal(name): ['Оля', 'Петя', 'Гриша'], ['Вася', 'Маша', 'Саша', 'Женя'], ] -count = 0 -for group in groups: - listik = groups[count] - print(f' Группа {count+1} : {listik}') - count += 1 \ No newline at end of file +# ??? \ No newline at end of file diff --git a/for_dict_challenges.py b/for_dict_challenges.py index d7ed7b4a..fd86d344 100644 --- a/for_dict_challenges.py +++ b/for_dict_challenges.py @@ -12,52 +12,21 @@ {'first_name': 'Маша'}, {'first_name': 'Петя'}, ] -list_names = list() -for dicts in students: - new_name = (dicts['first_name']) - list_names.append(new_name) - -for li in set(list_names): - list_count = list_names.count(li) - print(f'{li}:{list_count}') - - +# ??? # Задание 2 # Дан список учеников, нужно вывести самое часто повторящееся имя # Пример вывода: # Самое частое имя среди учеников: Маша - - -from collections import Counter - -students_2 = [ +students = [ {'first_name': 'Вася'}, {'first_name': 'Петя'}, {'first_name': 'Маша'}, {'first_name': 'Маша'}, {'first_name': 'Оля'}, ] -list_names = list() -for dicts in students_2: - new_name = dicts['first_name'] - list_names.append(new_name) -count = Counter(list_names) -count_final = dict(count) -max_val = max(count_final.values()) -final_dict = {k: v for k, v in count_final.items() if v == max_val} -print("Самое частое имя среди учеников:") -print(*final_dict) - - - - - - - - - +# ??? # Задание 3 @@ -82,22 +51,45 @@ {'first_name': 'Саша'}, ], ] -list_names = list() +# ??? -for index, lists in enumerate(school_students, start=1): - list_names = list() - for dicts in lists: - new_name = dicts['first_name'] - list_names.append(new_name) - count_st = Counter(list_names) - count_final = dict(count_st) - max_val = max(count_final.values()) - final_dict = {k: v for k, v in count_final.items() if v == max_val} - print(f'Самое частое имя в классе {index}') - print(*final_dict) - - +# Задание 4 +# Для каждого класса нужно вывести количество девочек и мальчиков в нём. +# Пример вывода: +# Класс 2a: девочки 2, мальчики 0 +# Класс 2б: девочки 0, мальчики 2 + +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, +} +# ??? + + +# Задание 5 +# По информации о учениках разных классов нужно найти класс, в котором больше всего девочек и больше всего мальчиков +# Пример вывода: +# Больше всего мальчиков в классе 3c +# Больше всего девочек в классе 2a + +school = [ + {'class': '2a', 'students': [{'first_name': 'Маша'}, {'first_name': 'Оля'}]}, + {'class': '3c', 'students': [{'first_name': 'Олег'}, {'first_name': 'Миша'}]}, +] +is_male = { + 'Маша': False, + 'Оля': False, + 'Олег': True, + 'Миша': True, +} +# ??? -# Задание 4 и 5 пока не сделала, хочу сделать после твоих комментариев, так как -# , кажется, я чутка усложняю всё или делаю не тем способом, каким было задумано. From 9931aa305dcfd3c24274a810ff00fc1d2bb8e688 Mon Sep 17 00:00:00 2001 From: Shirikova Aleksandra Date: Mon, 4 Dec 2023 21:52:09 +0300 Subject: [PATCH 4/7] final --- for_challenges.py | 20 ++++++++------------ for_dict_challenges.py | 39 +++++++++++++++++++++++++++++++++++++-- 2 files changed, 45 insertions(+), 14 deletions(-) diff --git a/for_challenges.py b/for_challenges.py index 87e32a5d..1c49ddbd 100644 --- a/for_challenges.py +++ b/for_challenges.py @@ -13,7 +13,7 @@ names = ['Оля', 'Петя', 'Вася', 'Маша'] for name in names: - print(f'{name}: {len((name))}') + print(f'{name}: {len(name)}') # Задание 3 @@ -31,9 +31,9 @@ def gender_reveal(name): if is_male[name] is False: - return ('Женский') + return 'Женский' else: - return ('Мужской') + return 'Мужской' for name in names: @@ -52,10 +52,9 @@ def gender_reveal(name): ['Вася', 'Маша', 'Саша', 'Женя'], ['Оля', 'Петя', 'Гриша'], ] -count = 0 -for group in groups: - print(f' Группа {count+1} : {len(group)}') - count += 1 + +for index, group in enumerate(groups, start=1): + print(f' Группа {index} : {len(group)} ученика') # Задание 5 @@ -69,8 +68,5 @@ def gender_reveal(name): ['Оля', 'Петя', 'Гриша'], ['Вася', 'Маша', 'Саша', 'Женя'], ] -count = 0 -for group in groups: - listik = groups[count] - print(f' Группа {count+1} : {listik}') - count += 1 \ No newline at end of file +for index, group in enumerate(groups, start=1): + print(f' Группа {index} : {group}') \ No newline at end of file diff --git a/for_dict_challenges.py b/for_dict_challenges.py index d7ed7b4a..5bc7e80f 100644 --- a/for_dict_challenges.py +++ b/for_dict_challenges.py @@ -99,5 +99,40 @@ -# Задание 4 и 5 пока не сделала, хочу сделать после твоих комментариев, так как -# , кажется, я чутка усложняю всё или делаю не тем способом, каким было задумано. +#Задание 4. Для каждого класса нужно вывести количество девочек и мальчиков в нём. +# Пример вывода: +# Класс 2a: девочки 2, мальчики 0 +# Класс 2б: девочки 0, мальчики 2 + +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, +} +# ??? + + +# Задание 5 +# По информации о учениках разных классов нужно найти класс, в котором больше всего девочек и больше всего мальчиков +# Пример вывода: +# Больше всего мальчиков в классе 3c +# Больше всего девочек в классе 2a + +school = [ + {'class': '2a', 'students': [{'first_name': 'Маша'}, {'first_name': 'Оля'}]}, + {'class': '3c', 'students': [{'first_name': 'Олег'}, {'first_name': 'Миша'}]}, +] +is_male = { + 'Маша': False, + 'Оля': False, + 'Олег': True, + 'Миша': True, +} +# ??? From d7cc4459f499227e25eea22b6db050a30b487c59 Mon Sep 17 00:00:00 2001 From: Shirikova Aleksandra Date: Tue, 5 Dec 2023 15:35:34 +0300 Subject: [PATCH 5/7] made 4th exercise --- for_dict_challenges.py | 33 +++++++++++++++++++++++++++------ 1 file changed, 27 insertions(+), 6 deletions(-) diff --git a/for_dict_challenges.py b/for_dict_challenges.py index 5bc7e80f..ddda6ba7 100644 --- a/for_dict_challenges.py +++ b/for_dict_challenges.py @@ -46,9 +46,13 @@ count = Counter(list_names) count_final = dict(count) max_val = max(count_final.values()) -final_dict = {k: v for k, v in count_final.items() if v == max_val} +#final_dict = {k: v for k, v in count_final.items() if v == max_val} +#print("Самое частое имя среди учеников:") +#print(*final_dict) print("Самое частое имя среди учеников:") -print(*final_dict) +for name, counter in count_final.items(): + if counter == max_val: + print(name) @@ -92,9 +96,10 @@ count_st = Counter(list_names) count_final = dict(count_st) max_val = max(count_final.values()) - final_dict = {k: v for k, v in count_final.items() if v == max_val} - print(f'Самое частое имя в классе {index}') - print(*final_dict) + for name, counter in count_final.items(): + if counter == max_val: + print(f'Самое частое имя в классе {index}') + print(name) @@ -116,7 +121,23 @@ 'Миша': True, 'Даша': False, } -# ??? + +for lists in school: + count_boys = 0 # Вопрос: можно ли здесь использовать enumerate (Если да, то как?) + count_girls = 0 + for dict in lists["students"]: + name = dict['first_name'] + + if is_male[name] is True: + count_boys += 1 + else: + count_girls += 1 + + print(f''' В классе {lists["class"]} мальчики {count_boys}, + девочки {count_girls} ''') + + + # Задание 5 From edb9861cb3edb2fe715e2e78b9a24f643b587c59 Mon Sep 17 00:00:00 2001 From: Shirikova Aleksandra Date: Tue, 5 Dec 2023 17:00:59 +0300 Subject: [PATCH 6/7] string 1st ver --- string_challenges.py | 35 +++++++++++++++++++++++++++++------ 1 file changed, 29 insertions(+), 6 deletions(-) diff --git a/string_challenges.py b/string_challenges.py index 856add2d..e84d5376 100644 --- a/string_challenges.py +++ b/string_challenges.py @@ -1,28 +1,51 @@ # Вывести последнюю букву в слове word = 'Архангельск' -# ??? +print(word[-1]) + # Вывести количество букв "а" в слове word = 'Архангельск' -# ??? +w = word.lower() +print(w.count("а")) +print("---") # Вывести количество гласных букв в слове -word = 'Архангельск' -# ??? +words = 'Архангельск' +vowels = ["а","у","о","и", "э", "ы", "я", "ю", "е","ё"] +count = 0 +for vowel in words: + if vowel.lower() in vowels: + count+=1 +print(count) +print("---") + # Вывести количество слов в предложении sentence = 'Мы приехали в гости' -# ??? +s = sentence.split(' ') +print(len(s)) +print("---") # Вывести первую букву каждого слова на отдельной строке sentence = 'Мы приехали в гости' # ??? +s= sentence.split(' ') +print(s) +for word in s: + print(word[0]) + + # Вывести усреднённую длину слова в предложении sentence = 'Мы приехали в гости' -# ??? \ No newline at end of file +s= sentence.split(' ') +length_count = 0 +for word in s: + count = len(word) + length_count = length_count + count +print(length_count/len(s)) \ No newline at end of file From bb2d581e66f44820a27a8c5a6c27912855b7d9f6 Mon Sep 17 00:00:00 2001 From: Shirikova Aleksandra Date: Thu, 7 Dec 2023 11:06:21 +0300 Subject: [PATCH 7/7] =?UTF-8?q?=D0=BF=D0=BE=D1=81=D0=BB=D0=B5=D0=B4=D0=BD?= =?UTF-8?q?=D1=8F=D1=8F=20=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D0=B0=D1=8E=D1=89?= =?UTF-8?q?=D0=B0=D1=8F=20=D0=B2=D0=B5=D1=80=D1=81=D0=B8=D1=8F=205=D0=B3?= =?UTF-8?q?=D0=BE=20=D0=B7=D0=B0=D0=B4=D0=B0=D0=BD=D0=B8=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- for_dict_challenges.py | 109 ++++++++++++++++++++++++++++++++++++----- 1 file changed, 96 insertions(+), 13 deletions(-) diff --git a/for_dict_challenges.py b/for_dict_challenges.py index 236b61bb..89e5441f 100644 --- a/for_dict_challenges.py +++ b/for_dict_challenges.py @@ -4,6 +4,8 @@ # Вася: 1 # Маша: 2 # Петя: 2 +from collections import Counter + students = [ {'first_name': 'Вася'}, @@ -12,14 +14,22 @@ {'first_name': 'Маша'}, {'first_name': 'Петя'}, ] -# ??? + +list_names = list() +for dicts in students: + new_name = (dicts['first_name']) + list_names.append(new_name) + +for li in set(list_names): + list_count = list_names.count(li) + print(f'{li}:{list_count}') # Задание 2 # Дан список учеников, нужно вывести самое часто повторящееся имя # Пример вывода: # Самое частое имя среди учеников: Маша -students = [ +students_2 = [ {'first_name': 'Вася'}, {'first_name': 'Петя'}, {'first_name': 'Маша'}, @@ -27,6 +37,7 @@ {'first_name': 'Оля'}, ] + list_names = list() for dicts in students_2: new_name = dicts['first_name'] @@ -44,15 +55,6 @@ - - - - - - - - - # Задание 3 # Есть список учеников в нескольких классах, нужно вывести самое частое имя в каждом классе. # Пример вывода: @@ -114,7 +116,7 @@ } for lists in school: - count_boys = 0 # Вопрос: можно ли здесь использовать enumerate (Если да, то как?) + count_boys = 0 count_girls = 0 for dict in lists["students"]: name = dict['first_name'] @@ -127,4 +129,85 @@ print(f''' В классе {lists["class"]} мальчики {count_boys}, девочки {count_girls} ''') - \ No newline at end of file +# Задание 5 +# По информации о учениках разных классов нужно найти класс, в котором больше всего девочек и больше всего мальчиков +# Пример вывода: +# Больше всего мальчиков в классе 3c +# Больше всего девочек в классе 2a + +school = [ + {'class': '2a', 'students': [{'first_name': 'Маша'}, {'first_name': 'Оля'}]}, + {'class': '3c', 'students': [{'first_name': 'Олег'}, {'first_name': 'Миша'}]}, +] +is_male = { + 'Маша': False, + 'Оля': False, + 'Олег': True, + 'Миша': True, +} + +final_dict ={} +for lists in school: + print(lists) + count_boys = 0 + count_girls = 0 + + + for dict in lists["students"]: + print(dict) + name = dict['first_name'] + print(name) + + if is_male[name]: + count_boys += 1 + else: + count_girls += 1 + final_dict[lists["class"]] = (count_boys, count_girls) + + print(count_girls) + print(count_boys) + + +print(final_dict) +items = final_dict.items() +print(items) +class_name_boys, class_data_boys = max(items, key=lambda item: item[1][0]) +class_name_girls, class_data_girls = max(items, key=lambda item: item[1][1]) +print(f'Больше всего мальчиков в классе {class_name_boys}') +print(f'Больше всего девочек в классе {class_name_girls}') + + + + + + + + + + + + + + + + #if (count_boys + number) > (count_girls+number): + #print(f"в классе {class_name} больше мальчиков") + #elif (count_boys + number) == (count_girls+number): + #print(f"в классе {class_name} одинаково мальчиков и девочек") + #else: + #print(f"в классе {class_name} больше девочек") + + #for lists_ in final_list: + # number_1 = lists_1[class_name] + #print(number_1) + + #print(f'''Больше всего девочек{(max_val_girls)} + #в классе: {class_name}, + #Больше всего мальчиков {max(count_boys)} + #в классе{class_name}''') + + + + + +