Python - Ayuda con un problema

 
Vista:
sin imagen de perfil
Val: 43
Ha disminuido su posición en 2 puestos en Python (en relación al último mes)
Gráfica de Python

Ayuda con un problema

Publicado por El turco (17 intervenciones) el 18/08/2018 22:02:14
Se debe escribir un programa que solicite el ingreso de dos listas de N elementos con los datos necesarios para calcular el sueldo total de los empleados de una empresa X.La
lista 1 contiene la cantidad de horas trabajadas por cada empleado, y la lista 2 contiene el valor que se le paga por hora a cada empleado.
Se debe generar una tercer lista donde cada elemento se corresponde al sueldo total calculado y este cálculo debe ser realizado por una definicion. El calculo es: hasta 160 hs trabajadas el sueldo es (hs * valor de la hora). Pero si las horas son mas de 160, el exedente a esas horas hay que calcularle un 50% mas. Ejemplos
Caso 1: 150 horas trabajadas. Valor de la hora: $100
Sueldo calculado: (150 * 100) = $ 15000
Caso 2: 170 horas trabajadas. Valor de la hora: $100
Sueldo calculado: (160 hs * $100) + (10 hs * $150) = $ 17500
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
-1
Responder
sin imagen de perfil
Val: 765
Bronce
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Ayuda con un problema

Publicado por dario (185 intervenciones) el 19/08/2018 08:05:55
A ver si esto te ayuda.
Salu2.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
horas = [160,184,174,190,173]
valorHora = [100,110,100,100,120]
sueldoTotal =[]
 
for i in range(len(valorHora)):
  if horas[i] <= 160:
    sueldo = horas[i] * valorHora[i]
    sueldoTotal.append(sueldo)
  else:
    h = horas[i] - 160
    sueldo = (160 * 100) + (h * 150)
    sueldoTotal.append(sueldo)
 
print(sueldoTotal)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
Imágen de perfil de abzerox
Val: 425
Bronce
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Ayuda con un problema

Publicado por abzerox (109 intervenciones) el 20/08/2018 04:57:17
Hola, te comparto una pequeña solución:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
horas = []
valor_hora = []
msg_error = 'El valor ingresado no es valido'
while True:
    while True:
        try:
            hora = int(input('Ingresa las horas trabajadas: '))
        except ValueError as e:
            print(msg_error)
        else:
            break
    while True:
        try:
            valor = int(input('Ingresa el valor de la hora: '))
        except ValueError as e:
            print(msg_error)
        else:
            break
    horas.append(hora)
    valor_hora.append(valor)
 
    if input('Desea finalizar y realizar el calculo [s/n]: ').lower() in ['s', 'si']:
        break
 
sueldo_total = [
    hora * valor if hora <= 160 else (160 * 100 + ((hora - 160) * 150))
    for (hora, valor) in zip(horas, valor_hora)
]
 
print(sueldo_total)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil
Val: 8
Ha disminuido su posición en 9 puestos en Python (en relación al último mes)
Gráfica de Python

Ayuda con un problema

Publicado por antonio (4 intervenciones) el 25/08/2018 05:39:33
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
lista1=[("Antonio",12),("Pedro",20),("Juan",190),("Mario",220),("Alejandro",20),("Jose",20),("Manuel",120)]
lista2=[("Antonio",10),("Pedro",20),("Juan",35),("Mario",20),("Alejandro",10),("Jose",30),("Manuel",20)]
lista3=[]
 
 
class empleado():
	nombre=""
	horas_trabajadas=0
	precio_hora=0
	recibir=0
 
def precioHora(ht,ph):
    recibir1=0
    if ht>160:
        recibir1=((ht-160)*(ph+ph/2))+(160*ph)
    else:
        recibir1=(ht*ph)
    return recibir1
 
for i in lista1:
	e=empleado()
	e.nombre=i[0]
	e.horas_trabajadas=i[1]
	for s in lista2:
		if(e.nombre == s[0]):
			e.precio_hora=s[1]
 
	hora=precioHora(e.horas_trabajadas,e.precio_hora)
	e.recibir=hora
	lista3.append(e)
 
for j in lista3:
	print(j.nombre, j.horas_trabajadas, j.precio_hora, j.recibir)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar