Skip to content

Commit b3ba249

Browse files
author
Alexey Chernykh
committed
company.py fixed, add additional tasks
1 parent c63c919 commit b3ba249

File tree

2 files changed

+69
-18
lines changed

2 files changed

+69
-18
lines changed

company.py

Lines changed: 65 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,14 @@
77
4. Вывести имена всех сотрудников компании, которые получают больше 100к.
88
5. Вывести позиции, на которых люди получают меньше 80к (можно с повторениями).
99
6. Посчитать, сколько денег в месяц уходит на каждый отдел – и вывести вместе с названием отдела
10+
11+
Второй уровень:
12+
7. Вывести названия отделов с указанием минимальной зарплаты в нём.
13+
8. Вывести названия отделов с указанием минимальной, средней и максимальной зарплаты в нём.
14+
9. Вывести среднюю зарплату по всей компании.
15+
10. Вывести названия должностей, которые получают больше 90к без повторений.
16+
11. Посчитать среднюю зарплату по каждому отделу среди девушек (их зовут Мишель, Николь, Кристина и Кейтлин).
17+
12. Вывести без повторений имена людей, чьи фамилии заканчиваются на гласную букву.
1018
"""
1119

1220
departments = [
@@ -30,29 +38,75 @@
3038
},
3139
]
3240

33-
for department in departments:
41+
for department in departments: # task 1
3442
print(department['title'])
3543

36-
for department in departments:
44+
for department in departments: # task 2
3745
for employer in department['employers']:
3846
print(employer['first_name'])
3947

40-
for department in departments:
48+
for department in departments: # task 3
4149
for employer in department['employers']:
4250
print(f'{employer["first_name"]} работает в {department["title"]}')
4351

44-
for department in departments:
52+
for department in departments: # task 4
4553
for employer in department['employers']:
46-
if employer.get('salary_rub') > 100000:
54+
if employer['salary_rub'] > 100000:
4755
print(f'Заработная плата {employer["first_name"]} превышает 100К')
4856

49-
for department in departments:
57+
for department in departments: # task 5
5058
for employer in department['employers']:
51-
if employer.get('salary_rub') < 80000:
52-
print(f'Заработная плата {employer["first_name"]} ниже 80К')
59+
if employer['salary_rub'] < 80000:
60+
print(f'Заработная плата {employer["position"]} ниже 80К')
5361

54-
for department in departments:
62+
for department in departments: # task 6
5563
department_salary = 0
5664
for employer in department['employers']:
57-
department_salary += employer.get('salary_rub')
58-
print(f'Заработная плата {department["title"]} в месяц составляет {department_salary}')
65+
department_salary += employer['salary_rub']
66+
print(f'Заработная плата {department["title"]} в месяц составляет {department_salary}')
67+
68+
for department in departments: # task 7
69+
department_salary = []
70+
for employer in department['employers']:
71+
department_salary.append(employer['salary_rub'])
72+
print(f'Отдел {department["title"]}, минимальная зарплата {sorted(department_salary)[0]}')
73+
74+
for department in departments: # task 8
75+
department_salary = []
76+
avg_salary = 0
77+
for employer in department['employers']:
78+
department_salary.append(employer['salary_rub'])
79+
avg_salary = sum(department_salary) / len(department_salary)
80+
print(f'Отдел {department["title"]}: минимальная зарплата {sorted(department_salary)[0]}, cредняя зарплата '
81+
f'{int(avg_salary)}, максимальная зарплата {sorted(department_salary)[-1]}')
82+
83+
avg_salary = 0 # task 9
84+
department_salary = []
85+
for department in departments:
86+
for employer in department['employers']:
87+
department_salary.append(employer['salary_rub'])
88+
avg_salary = sum(department_salary) / len(department_salary)
89+
print(f'Средняя зарплата {avg_salary}')
90+
91+
for department in departments: # task 10
92+
for employer in department['employers']:
93+
if employer['salary_rub'] > 90000:
94+
print(f'{employer["position"]} получает больше 90К')
95+
96+
for department in departments: # task 11
97+
avg_girls_salary = 0
98+
girl_salary = []
99+
for employer in department['employers']:
100+
if employer['first_name'] == 'Michelle' or employer['first_name'] == 'Nicole' or employer['first_name'] == \
101+
'Christina' or employer['first_name'] == 'Caitlin':
102+
girl_salary.append(employer['salary_rub'])
103+
avg_girls_salary = sum(girl_salary) / len(girl_salary)
104+
print(f'Средняя зарплата девушек по {department["title"]} составляет: {int(avg_girls_salary)}')
105+
106+
for department in departments: # task 12
107+
for employer in department['employers']:
108+
if employer['last_name'][-1] in 'aeiouy':
109+
print(f'Фамилия сотрудника {employer["first_name"]} заканчивается на гласную букву')
110+
111+
112+

for_dict_challenges.py

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,11 @@
1313
{'first_name': 'Петя'},
1414
]
1515
name_of_students = [students[name]['first_name'] for name in range(len(students))]
16-
uniq_name = []
16+
uniq_name_set = set(name_of_students)
17+
uniq_name_list = list(uniq_name_set)
1718

18-
for name in name_of_students:
19-
if name not in uniq_name:
20-
uniq_name.append(name)
21-
22-
for name in range(len(uniq_name)):
23-
print(f'{uniq_name[name]}: {name_of_students.count(students[name]["first_name"])}')
19+
for name in range(len(uniq_name_list)):
20+
print(f'{uniq_name_list[name]}: {name_of_students.count(students[name]["first_name"])}')
2421

2522
# Задание 2
2623
# Дан список учеников, нужно вывести самое часто повторящееся имя

0 commit comments

Comments
 (0)