Skip to content
35 changes: 30 additions & 5 deletions for_challenges.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@
# Необходимо вывести имена всех учеников из списка с новой строки

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


# Задание 2
Expand All @@ -12,7 +13,11 @@
# Петя: 4

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





# Задание 3
Expand All @@ -25,7 +30,20 @@
'Маша': 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
Expand All @@ -40,7 +58,11 @@
['Вася', 'Маша', 'Саша', 'Женя'],
['Оля', 'Петя', 'Гриша'],
]
# ???

for index, group in enumerate(groups, start=1):
print(f' Группа {index} : {len(group)} ученика')

>


# Задание 5
Expand All @@ -54,4 +76,7 @@
['Оля', 'Петя', 'Гриша'],
['Вася', 'Маша', 'Саша', 'Женя'],
]
# ???
for index, group in enumerate(groups, start=1):
print(f' Группа {index} : {group}')


134 changes: 126 additions & 8 deletions for_dict_challenges.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@
# Вася: 1
# Маша: 2
# Петя: 2
from collections import Counter


students = [
{'first_name': 'Вася'},
Expand All @@ -12,21 +14,45 @@
{'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': 'Маша'},
{'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)
print("Самое частое имя среди учеников:")
for name, counter in count_final.items():
if counter == max_val:
print(name)



# Задание 3
Expand All @@ -53,9 +79,25 @@
]
# ???

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())
for name, counter in count_final.items():
if counter == max_val:
print(f'Самое частое имя в классе {index}')
print(name)






# Задание 4
# Для каждого класса нужно вывести количество девочек и мальчиков в нём.
#Задание 4. Для каждого класса нужно вывести количество девочек и мальчиков в нём.
# Пример вывода:
# Класс 2a: девочки 2, мальчики 0
# Класс 2б: девочки 0, мальчики 2
Expand All @@ -72,9 +114,21 @@
'Миша': True,
'Даша': False,
}
# ???


for lists in school:
count_boys = 0
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
# По информации о учениках разных классов нужно найти класс, в котором больше всего девочек и больше всего мальчиков
# Пример вывода:
Expand All @@ -91,5 +145,69 @@
'Олег': 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}''')






35 changes: 29 additions & 6 deletions string_challenges.py
Original file line number Diff line number Diff line change
@@ -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 = 'Мы приехали в гости'
# ???
s= sentence.split(' ')
length_count = 0
for word in s:
count = len(word)
length_count = length_count + count
print(length_count/len(s))