Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Impresión en pantalla Python
#1
hola buenas tardes me piden:
Realice el informe (impresion en pantalla) de analisis realizados por cada profesional. Este informe debe tener el siguiente formato:

Profesional : 1

Analisis 1 : 252

Analisis 2 : 12

Analisis 3 : 52

....

Total de Analisis realizados 1525

Profesional : 2 .....


la estructura es la siguiente:


Descripción de la Estructura: Son los datos de los análisis de laboratorio hechos a una serie de productos



Codigo : Código de producto analizado



Nombre : Nombre del producto analizado



Analisis: Es el análisis realizado (codificados con un número del 1 al 8)



Legajo : Es el legajo del profesional que realizó el análisis



Valor: el valor que dio como resultado el análisis


Umbral: el valor máximo esperado para ese análisis



y esto es lo que yo hice pero no resuelve lo que me piden si me pueden orientar :

Código:
from pyrecord import Record
import numpy as np
import random

# Estructura
Analisis = Record.create_type("Analisis","codigo","nombre", "analisis","legajo","valor","umbral",
                    codigo = 0,nombre = '',analisis = 0,legajo = 0, valor = 0, umbral = 0)

# Procedimientos y Funciones Accesorias
def imprimir_vector(vector, elementos):
    print('{0:>4s} {1:10s} {2:25s} {3:>6s} {4:>6s} {5:>12s} {6:>10s}'.format("#","Codigo","Nombre", "Analisis","Legajo","Valor","Umbral"))
    print('     ----------------------------------------------------------------------------')
    for i in range(elementos):
        print('{0:4d} {1:10d} {2:25s} {3:6d} {4:6d} {5:12d} {6:10d}'.format(i + 1, vector[i].codigo,vector[i].nombre,vector[i].analisis,
                                                                 vector[i].legajo,vector[i].valor,vector[i].umbral))

#Generar datos aleatorios
def cargar_datos(vector,cantidad):
    registro = 0
    analisis = [8,5,6,4,1,3,2,7]
    for i in range(cantidad):
        codigo = int(random.random() * 100000000) + 75100000000
        nombre = "Producto " + str(codigo)
        for p in range(random.randint(3,8)):
            vector[registro] = Analisis()
            vector[registro].codigo = codigo
            vector[registro].nombre = nombre
            vector[registro].analisis = analisis[p]
            vector[registro].legajo = random.randint(1,10)
            vector[registro].valor = random.randint(1,150) * analisis[p]
            vector[registro].umbral = random.randint(1,150) * analisis[p]
            registro += 1
    return registro

# ------ INSERTAR AQUI SU RESOLUCION --------

def informe(vector,cantidad_de_registros):
    i = 0
    while (i < cantidad_de_registros):
        total_legajo = 0
        analisis = vector[i].analisis
        legajo = vector[i].legajo
        valor = vector[i].valor
        cantidad_legajo = 0
        while  (i < cantidad_de_registros and vector[i].legajo == legajo and vector[i].analisis == analisis and vector[i].valor == valor):
            cantidad_legajo += 1
            total_legajo += cantidad_legajo
            i += 1
            print("- Profesional : ",legajo,"|analisis:",analisis,"|valor: ",valor, "|cantidad :",cantidad_legajo)
        print("|Total de analisis realizados:",total_legajo)



# -------------------------------------------

# Procedimiento Principal
def main():
    max_elementos = 1000
    control = np.empty([max_elementos,], dtype=Analisis)
    cant_real = cargar_datos(control,30)
    imprimir_vector(control,10)
    # ------ INSERTAR AQUI LOS LLAMADOS A SU RESOLUCION ---


    informe(control,cant_real)


    # -----------------------------------------------------

if __name__ == "__main__":
    main()
Responder
#2
Hola, bienvenido.

Específicamente, ¿qué problema tenés? Lo mejor es que detectes el problema, lo aísles en un código pequeño y lo pegues aquí para que lo podamos probar.

Voy a mover este mensaje a la sección General.

Saludos
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)