[ Foro de Python ]

Funciones y arreglos

23-Jun-2022 22:54
Invitado (matias)
0 Respuestas

from cmath import e
from tkinter import Y
import numpy as np
def isNum():
   while(True):
       try:
           x=input()
           x=int(x)
           break
       except:
           print("Error, se esperaba un número, reintente")
   return(x)
def showMenu():
   
   print("REGISTRO CIVIL")
   print("----------------------------------------")
   print("1) Ingresar Datos Personales")
   print("2) Buscar Persona por Rut")
   print("3) Imprimir Certificados")
   print("4) SALIR")

def isRut():
   while(True):
       x=input()
       if x==():
           print("Error, campo ingresado vacío, reintente")
       else:
           break
   return(x)

def showPatient(i,j):
   if j==0:
       print("Nombre:",pac[i,j])
   elif j==1:
       print("Rut:",pac[i,j])
   elif j==2:
       print("Edad:",pac[i,j])
   elif j==3:
       print("Fecha de Nacimiento:",pac[i,j])
   elif j==4:
       print("Estado Civil:",pac[i,j])

def showcertifi1(i,j):
   
   print("Certificado de Nacimiento: ")
   print("----------------------------------------")
   if j==0:
       print("Nombre:",pac[i,j])
   elif j==1:
       print("Rut:",pac[i,j])
   elif j==3:
       print("Fecha de Nacimiento:",pac[i,j])

def showcertifi2(i,j):
   
   print("Certificado de Antecedentes: ")
   print("----------------------------------------")
   if j==0:
       print("Nombre:",pac[i,j])
   elif j==1:
       print("Rut:",pac[i,j])
   elif j==2:
       print("Edad:",pac[i,j])
   elif j==4:
       print("Estado Civil:",pac[i,j])
   
   return(x)
     

pac=np.empty([50,6],dtype="object")
f=0

while(True):
   showMenu()
   opt=isNum()
   if opt==1:
       for i in range(0,6):
           if i==0:
               print("Ingrese el nombre: ")
               pac[f,i]=input()
           elif i==1:
               print("Ingrese el rut: ")
               pac[f,i]=isRut()
           elif i==2:
               print("Ingrese la edad: ")
               pac[f,i]=input()
           elif i==3:
               print("Ingrese la fecha de nacimiento: ")
               pac[f,i]=input()
           elif i==4:
               print("Ingrese el Estado Civil: ")
               pac[f,i]=input()
   
       f+=1
       print("Paciente ingresado con éxito")

   elif opt==2:
       print("Ingrese el rut de la persona a buscar:")
       x=input()
       for i in range(0,50):
           if x==pac[i,1]:
               print("Persona encontrado, sus datos son los siguientes:")
               for j in range(0,6):
                   showPatient(i,j)
               break
           else:
               print("Paciente no encontrado")
   elif opt==3:
       print("Escoja el certificado que desea imprimir \t\n1-Nacimiento \t\n2-Antecedentes: ")
       y=input()
       print("Ingrese el rut de la persona a buscar:")
       x=input()

       if y==1:
         for i in range(0,50):  
             if x==pac[i,1]:
               for j in range(0,6):
                   showcertifi1(i,j)
               break
 
             
       elif y==2:
            for i in range(0,50):  
              if x==pac[i,1]:
                print("Persona encontrado, sus datos son los siguientes:")
                for j in range(0,6):
                    showcertifi1(i,j)
                break
                 
       else:
           print("Paciente no encontrado")

       
   elif opt==4:
       break
   else:
       print("Error, ingrese opción válida")

Tengo este código pero al momento de imprimir los certificados no me deja extraer la información donde puede estar mi error y segundo necesito poder validar la edad si esta persona es mayor de edad que aparezca un mensaje diciendo que puede optar a sacar la licencia de conducir




(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)