Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 28 additions & 5 deletions for_challenges.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,10 @@
# Необходимо вывести имена всех учеников из списка с новой строки

names = ['Оля', 'Петя', 'Вася', 'Маша']
# ???
for name in names:
print(name)

print()


# Задание 2
Expand All @@ -12,8 +15,10 @@
# Петя: 4

names = ['Оля', 'Петя', 'Вася', 'Маша']
# ???
for name in names:
print(f"{name}: {len(name)}")

print()

# Задание 3
# Необходимо вывести имена всех учеников из списка, рядом с именем вывести пол ученика
Expand All @@ -25,8 +30,14 @@
'Маша': False,
}
names = ['Оля', 'Петя', 'Вася', 'Маша']
# ???
for name in names:
if is_male[name] == False: #обращение к значению ключа
gender = ("жениский")
else:
gender = ("мужской")
print(f"{name}: пол {gender}")

print()

# Задание 4
# Даны группу учеников. Нужно вывести количество групп и для каждой группы – количество учеников в ней
Expand All @@ -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
# Для каждой пары учеников нужно с новой строки перечислить учеников, которые в неё входят
Expand All @@ -54,4 +72,9 @@
['Оля', 'Петя', 'Гриша'],
['Вася', 'Маша', 'Саша', 'Женя'],
]
# ???
for i, group in enumerate(groups, 1): #перебираем группы с индексом, начиная с 1
group_list = ''
for name in group: #каждое имя в списке
group_list += name #формируем перечень имен
group_list += ', '
print(f"Группа {i}: {group_list}")
73 changes: 68 additions & 5 deletions for_dict_challenges.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
# Дан список учеников, нужно вывести самое часто повторящееся имя
Expand All @@ -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
Expand All @@ -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
# Для каждого класса нужно вывести количество девочек и мальчиков в нём.
Expand All @@ -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
# По информации о учениках разных классов нужно найти класс, в котором больше всего девочек и больше всего мальчиков
Expand All @@ -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}')
35 changes: 26 additions & 9 deletions string_challenges.py
Original file line number Diff line number Diff line change
@@ -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 = 'Мы приехали в гости'
# ???
count_letter = 0
for word in sentence.split():
count_letter += len(word.split())
print(f'Средняя длина слова = {count_letter / len(sentence)}')