diff --git a/for_challenges.py b/for_challenges.py index 997754da..05de849d 100644 --- a/for_challenges.py +++ b/for_challenges.py @@ -1,9 +1,14 @@ # Задание 1 -# Необходимо вывести имена всех учеников из списка с новой строки names = ['Оля', 'Петя', 'Вася', 'Маша'] -# ??? +print(names[0]) +print(names[1]) +print(names[2]) +print(names[3]) +names = ['Оля', 'Петя', 'Вася', 'Маша'] +for name in names: + print(name) # Задание 2 # Необходимо вывести имена всех учеников из списка, рядом с именем показать количество букв в нём @@ -12,7 +17,11 @@ # Петя: 4 names = ['Оля', 'Петя', 'Вася', 'Маша'] -# ??? +for i in names: + print(f'{i}: {len(i)}') + + + # Задание 3 @@ -25,7 +34,8 @@ 'Маша': False, } names = ['Оля', 'Петя', 'Вася', 'Маша'] -# ??? +for i in is_male: + print(f'{i}: {is_male[i]}') # Задание 4 @@ -40,8 +50,9 @@ ['Вася', 'Маша', 'Саша', 'Женя'], ['Оля', 'Петя', 'Гриша'], ] -# ??? - +for index, name in enumerate(groups, start=1): + print(f'Группа {index}: {len(name)} ученика') +""""" # Задание 5 # Для каждой пары учеников нужно с новой строки перечислить учеников, которые в неё входят @@ -54,4 +65,7 @@ ['Оля', 'Петя', 'Гриша'], ['Вася', 'Маша', 'Саша', 'Женя'], ] -# ??? \ No newline at end of file +for i in range(len(groups)): + print(f'Группа {i+1}: {", ".join(groups[i])}') + + diff --git a/for_dict_challenges.py b/for_dict_challenges.py index fd86d344..659902ce 100644 --- a/for_dict_challenges.py +++ b/for_dict_challenges.py @@ -1,10 +1,11 @@ +from collections import Counter # Задание 1 # Дан список учеников, нужно посчитать количество повторений каждого имени ученика # Пример вывода: # Вася: 1 # Маша: 2 # Петя: 2 - +''''' students = [ {'first_name': 'Вася'}, {'first_name': 'Петя'}, @@ -12,13 +13,21 @@ {'first_name': 'Маша'}, {'first_name': 'Петя'}, ] -# ??? - +dict_name = {} +for i in students: + name = i['first_name'] + if name in dict_name: + dict_name[name] += 1 + else: + dict_name[name] = 1 +for name in dict_name: + print(f'{name}: {dict_name[name]}') # Задание 2 # Дан список учеников, нужно вывести самое часто повторящееся имя # Пример вывода: # Самое частое имя среди учеников: Маша +''''' students = [ {'first_name': 'Вася'}, {'first_name': 'Петя'}, @@ -26,10 +35,17 @@ {'first_name': 'Маша'}, {'first_name': 'Оля'}, ] -# ??? - +famous_name = () +famous_name_count = 0 +i = [name['first_name'] for name in students] +for name in i: + if i.count(name) > famous_name_count: + famous_name_count = i.count(name) + famous_name = name +print(f'Самое частое имя среди учеников: {famous_name}') -# Задание 3 +''''' + # Задание 3 # Есть список учеников в нескольких классах, нужно вывести самое частое имя в каждом классе. # Пример вывода: # Самое частое имя в классе 1: Вася @@ -51,7 +67,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,7 +101,16 @@ 'Миша': True, 'Даша': False, } -# ??? +for school_class in school: + girls_count = 0 + boys_count = 0 + for students in school_class['students']: + for name in students.values(): + if is_male[name]: + boys_count += 1 + else: + girls_count += 1 + print(f"Класс {school_class['class']}: девочки {girls_count}, мальчики {boys_count}") # Задание 5 @@ -91,5 +129,30 @@ 'Олег': True, 'Миша': True, } -# ??? - +girls = 0 +boys = 0 +class_school = '' +result_boys = {} +result_girls = {} +for i in school: + for j in i['students']: + class_school = i['class'] + if j['first_name'] in is_male: + if is_male[j['first_name']] == True: + boys += 1 + else: + girls += 1 + result_boys[class_school]= boys + result_girls[class_school] = girls + for q in result_boys: + pass + for w in result_girls: + pass + if result_girls[w] > result_boys[q]: + print(f"Больше всего девочек в классе {w}") + else: + print(f"Больше всего мальчиков в классе {q}") + girls = 0 + boys = 0 + +''''' \ No newline at end of file diff --git a/string_challenges.py b/string_challenges.py index 856add2d..97405de7 100644 --- a/string_challenges.py +++ b/string_challenges.py @@ -1,28 +1,36 @@ # Вывести последнюю букву в слове word = 'Архангельск' -# ??? - +print(word[-1]) # Вывести количество букв "а" в слове word = 'Архангельск' -# ??? - +print(word.count('а')) + # Вывести количество гласных букв в слове word = 'Архангельск' -# ??? - +wovels = 'а у о ы э я ю ё и е' +count = 0 +for i in word: + if i.lower() in wovels: + count += 1 +print(count) +print() # Вывести количество слов в предложении sentence = 'Мы приехали в гости' -# ??? +print(len(sentence.split())) # Вывести первую букву каждого слова на отдельной строке sentence = 'Мы приехали в гости' -# ??? - +for i in sentence.split(): + print(i[0]) # Вывести усреднённую длину слова в предложении sentence = 'Мы приехали в гости' -# ??? \ No newline at end of file +a = sentence.split() +b = 0 +for i in a: + b+=len(i) +print(b/len(a))