Simulador de Cálculo de Salários
Explorando SQL com Python - 2/2
Descrição
Neste desafio, você será responsável por implementar um simulador de cálculo de salários para uma lista de funcionários. Cada funcionário tem um nome, o número de horas trabalhadas e o valor que ele recebe por hora. Sua tarefa é calcular o salário de cada funcionário multiplicando as horas trabalhadas pelo valor da hora.
Você receberá primeiro um número que indica a quantidade de funcionários, seguido por uma lista de dicionários contendo as informações de cada funcionário. A função deve retornar uma lista de strings, onde cada string apresenta o nome do funcionário seguido do seu salário calculado.
Entrada
A entrada será composta por:
- Um número inteiro n que representa a quantidade de funcionários.
- Uma lista de n dicionários. Cada dicionário conterá três chaves:
- "nome": uma string representando o nome do funcionário.
- "horas_trabalhadas": um número inteiro representando as horas que o funcionário trabalhou.
- "valor_hora": um número decimal representando o valor pago por hora trabalhada.
Saída
A saída deverá ser uma lista de strings. Cada string deverá seguir o formato:
- "Nome: Salário", onde:
- Nome é o nome do funcionário.
- Salário é o resultado do cálculo das horas trabalhadas multiplicadas pelo valor por hora, formatado com duas casas decimais.
Exemplos
A tabela abaixo apresenta exemplos com alguns dados de entrada e suas respectivas saídas esperadas. Certifique-se de testar seu programa com esses exemplos e com outros casos possíveis.
Entrada | Saída |
---|---|
2 | Ana: 1000.0 |
Ana | Pedro: 1050.0 |
40 | |
25 | |
Pedro | |
35 | |
30 |
Entrada | Saída |
---|---|
1 | Maria: 900.0 |
Maria | |
45 | |
20 |
Entrada | Saída |
---|---|
3 | João: 450.0 |
João | Luiza: 450.0 |
30 | Carlos: 440.0 |
15 | |
Luiza | |
25 | |
18 | |
Carlos | |
20 | |
22 |
Resolução
def calcular_salarios(funcionarios):
# Retorna uma lista de strings formatadas com o nome e o salário de cada funcionário
salarios = [f"{funcionario['nome']}: {funcionario['horas_trabalhadas'] * funcionario['valor_hora']}" for funcionario in funcionarios]
return salarios
# Função para entrada do usuário
def main_salario():
# Recebe o número de funcionários
n = int(input())
funcionarios = []
# Recebe os dados de cada funcionário
for _ in range(n):
nome = input()
horas_trabalhadas = int(input())
valor_hora = float(input())
# Adiciona um dicionário com as informações do funcionário à lista 'funcionarios'
funcionarios.append({
"nome": nome,
"horas_trabalhadas": horas_trabalhadas,
"valor_hora": valor_hora
})
# Calcula os salários e exibe o resultado formatado
resultado = calcular_salários(funcionarios)
for salario in resultado:
print(salario)
# Executando a função principal
main_salario()
Para encontrar outras soluções, verifique aqui.
Caso encontre algum erro ou tenha sugestões, clique aqui e abra uma issue no Github.