-1
I am making a program in Python and need to implement a function. The function receives as input two parameters: A dictionary containing as key the name of an employee and as value a list containing email , basic salary and position of that employee. The name of an official.
The function must return as a result the employee’s net salary. The salary is calculated according to rules for each position.
- Developer, 15% discount if salary >= 2000, otherwise discount 5%.
- Analyst, discount of 20%, if salary >= 3500, if not discount of 10%.
- Manager, 25% discount if salary >= 4000, otherwise 15% discount% .
However when I implement the code I and run the test file, it returns me a single result: Function Result: 2550.0
How do I get it to return the expected result for each function and not just 2550.0?
Function I implemented
def calcular_salario(dicionario, nome):
for nome in dicionario:
if dicionario[nome][2] == 'DESENVOLVEDOR':
if dicionario[nome][1] >= 2000:
resultado = dicionario[nome][1] - (dicionario[nome][1] * .15)
else:
resultado = dicionario[nome][1] - (dicionario[nome][1] * 0.05)
if dicionario[nome][2] == 'ANALISTA':
if dicionario[nome][1] >= 3500:
resultado = dicionario[nome][1] - (dicionario[nome][1] * .20)
else:
resultado = dicionario[nome][1] - (dicionario[nome][1] * .10)
if dicionario[nome][2] == 'GERENTE':
if dicionario[nome][1] >= 4000:
resultado = dicionario[nome][1] - (dicionario[nome][1] * .25)
else:
resultado = dicionario[nome][1] - (dicionario[nome][1] * .15)
return resultado
Test file - I can’t change
from ac02 import calcular_salario
dicionario = {'marcilio': ['[email protected]', 5000.00, 'DESENVOLVEDOR'],
'pedro': ['[email protected]', 2000.00, 'DESENVOLVEDOR'],
'carlos': ['[email protected]', 1000.00, 'DESENVOLVEDOR'],
'roberto': ['[email protected]', 5000.00, 'ANALISTA'],
'renata': ['[email protected]', 3500.00, 'ANALISTA'],
'angelica': ['[email protected]', 1000.00, 'ANALISTA'],
'amanda': ['[email protected]', 8000.00, 'GERENTE'],
'ricardo': ['[email protected]', 4000.00, 'GERENTE'],
'fernanda': ['[email protected]', 3000.00, 'GERENTE'],
'marcos': ['[email protected]', 800.00, 'ESTAGIARIO']}
try:
resultado = calcular_salario(dicionario, 'marcilio')
assert resultado == 4250.0
print('CORRETO')
except AssertionError:
print('ERRO:')
print(' Resultado esperado: 4250.0')
print(' Resultado da Função:', resultado)
try:
resultado = calcular_salario(dicionario, 'pedro')
assert resultado == 1700.0
print('CORRETO')
except AssertionError:
print('ERRO:')
print(' Resultado esperado: 1700.0')
print(' Resultado da Função:', resultado)
try:
resultado = calcular_salario(dicionario, 'carlos')
assert resultado == 950.0
print('CORRETO')
except AssertionError:
print('ERRO:')
print(' Resultado esperado: 950.0')
print(' Resultado da Função:', resultado)
try:
resultado = calcular_salario(dicionario, 'roberto')
assert resultado == 4000.0
print('CORRETO')
except AssertionError:
print('ERRO:')
print(' Resultado esperado: 4000.0')
print(' Resultado da Função:', resultado)
try:
resultado = calcular_salario(dicionario, 'renata')
assert resultado == 2800.0
print('CORRETO')
except AssertionError:
print('ERRO:')
print(' Resultado esperado: 2800.0')
print(' Resultado da Função:', resultado)
try:
resultado = calcular_salario(dicionario, 'angelica')
assert resultado == 900.0
print('CORRETO')
except AssertionError:
print('ERRO:')
print(' Resultado esperado: 900.0')
print(' Resultado da Função:', resultado)
try:
resultado = calcular_salario(dicionario, 'amanda')
assert resultado == 6000.0
print('CORRETO')
except AssertionError:
print('ERRO:')
print(' Resultado esperado: 6000.0')
print(' Resultado da Função:', resultado)
try:
resultado = calcular_salario(dicionario, 'ricardo')
assert resultado == 3000.0
print('CORRETO')
except AssertionError:
print('ERRO:')
print(' Resultado esperado: 3000.0')
print(' Resultado da Função:', resultado)
try:
resultado = calcular_salario(dicionario, 'fernanda')
assert resultado == 2550.0
print('CORRETO')
except AssertionError:
print('ERRO:')
print(' Resultado esperado: 2550.0')
print(' Resultado da Função:', resultado)