08-07-2019, 07:05 PM
Hola, tengo un trabajo para mi universidad y necesito pasar el siguiente código a Arreglo, me podrían ayudar porfavor.
Código:
Fila1st = []
filaVac = []
contador80=[]
contador60=[]
contador50=[]
Fila1=[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]
Fila2=[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]
Fila3=[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]
Fila4=[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]
Fila5=[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]
Fila6=[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]
rutA=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
rutB=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
rutC=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
rutD=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
rutE=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
rutF=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
for i in range(0,48):
Fila1st.append("=")
for i in range(0,48):
filaVac.append(" ")
def Asientos():
print("=",end=' ')
for i in Fila1st:
print(i,end=' ')
print("=")
print("=",end=' ')
print("|F|",end=' ')
for i in Fila6:
if i!=4:
print(i,end=' ')
else:
print(f"{i} ",end=' ')
print("=")
print("=",end=' ')
print("|E|",end=' ')
for i in Fila5:
if i!=4:
print(i,end=' ')
else:
print(f"{i} ",end=' ')
print("=")
print("=",end=' ')
print("|D|",end=' ')
for i in Fila4:
if i!=4:
print(i,end=' ')
else:
print(f"{i} ",end=' ')
print("=")
print("=",end=' ')
for i in filaVac:
print(i,end=' ')
print("=")
print("=",end=' ')
print("|C|",end=' ')
for i in Fila3:
if i!=4:
print(i,end=' ')
else:
print(f"{i} ",end=' ')
print("=")
print("=",end=' ')
print("|B|",end=' ')
for i in Fila2:
if i!=4:
print(i,end=' ')
else:
print(f"{i} ",end=' ')
print("=")
print("=",end=' ')
print("|A|",end=' ')
for i in Fila1:
if i!=4:
print(i,end=' ')
else:
print(f"{i} ",end=' ')
print("=")
print("=",end=' ')
for i in Fila1st:
print(i,end=' ')
print("*")
print("|Asientos De 1-5 y la 18 | Espacio adicional para piernas $80.000")
print("|Asientos De 6-9 y de 19-33 | Común $60.000")
print("|Asientos De 10-17 | No reclinables $50.000")
def menu():
while True:
import os
os.system("clear")
print("========================")
print(" Línea Aérea Flash ")
print("========================")
print("Selecciona una opción")
print("1) Venta")
print("2) Cierre")
while True:
try:
opcion1=int(input("Ingrese una opción: "))
break
except ValueError:
print("Ingrese solo números.")
if opcion1==1:
while True:
os.system("clear")
print("==================================")
print(" Línea Aérea Flash ")
print("==================================")
print("Selecciona una opción")
print("1) Comprar pasajes")
print("2) Ubicaciones disponibles")
print("3) Ver listado de pasajeros")
print("4) Buscar pasajero")
print("5) Reasignar asiento")
print("6) Mostrar ganancias totales")
print("7) Volver a inicio")
while True:
try:
opcion2=int(input("Ingrese una opción: "))
break
except ValueError:
print("Ingrese solo números.")
if opcion2==1:
while True:
try:
pasajes=int(input("Ingrese la cantidad de pasajes a comprar: "))
if (pasajes+len(contador50)+len(contador60)+len(contador80))<=198:
break
else:
print(f"El número seleccionado supera el límite de asientos disponibles por: {(pasajes+len(contador50)+len(contador60)+len(contador80))-198}")
except ValueError:
print("Ingrese solo números.")
contador=0
c50=[]
c60=[]
c80=[]
while contador<pasajes:
os.system("clear")
Asientos()
while True:
fila=input("Ingrese fila: ")
if fila.upper()=='A' or fila.upper()=='a' or fila.upper()=='B' or fila.upper()=='b' or fila.upper()=='C' or fila.upper()=='c' or fila.upper()=='D' or fila.upper()=='d' or fila.upper()=='E' or fila.upper()=='e' or fila.upper()=='F' or fila.upper()=='f':
break
else:
print("Ingrese una fila válida.")
while True:
try:
numeroAsiento=int(input("Ingrese número de asiento: "))
if 0<numeroAsiento<34:
break
else:
print("Ingrese un número de asiento entre 1 y 33.")
except ValueError:
print("Ingrese solo números.")
while True:
rut=input("Ingrese rut del pasajero en formato 11111111-1: ")
if len(rut)>1:
if verificaRut(rut)==rut[-1].upper():
rut=int(rut[:-2])
break
else:
print("Ingrese un rut válido")
if fila.upper() == 'A' and (0 < numeroAsiento < 4 or 4 < numeroAsiento < 10):
if Fila1[numeroAsiento-1] != 'X':
Fila1[numeroAsiento-1] = 'X'
precio(numeroAsiento,c50,c60,c80)
contador += 1
rutA[numeroAsiento-1]=(rut)
else:
input("Asiento no está disponible, escoja otro. Presione Enter para continuar")
elif fila.upper() == 'A' and numeroAsiento == 4:
if Fila1[numeroAsiento-1] != 'X ':
Fila1[numeroAsiento-1] = 'X '
precio(numeroAsiento,c50,c60,c80)
contador += 1
rutA[numeroAsiento-1]=(rut)
else:
input("Asiento no está disponible, escoja otro. Presione Enter para continuar")
elif fila.upper() == 'A' and numeroAsiento > 10:
if Fila1[numeroAsiento-1] != ' X':
Fila1[numeroAsiento-1] = ' X'
precio(numeroAsiento,c50,c60,c80)
contador += 1
rutA[numeroAsiento-1]=(rut)
else:
input("Asiento no está disponible, escoja otro. Presione Enter para continuar")
elif fila.upper() == 'B' and (0 < numeroAsiento < 4 or 4 < numeroAsiento < 10):
if Fila2[numeroAsiento-1] != 'X':
Fila2[numeroAsiento-1] = 'X'
precio(numeroAsiento,c50,c60,c80)
contador += 1
rutB[numeroAsiento-1]=(rut)
else:
input("Asiento no está disponible, escoja otro. Presione Enter para continuar")
elif fila.upper() == 'B' and numeroAsiento == 4:
if Fila2[numeroAsiento-1] != 'X ':
Fila2[numeroAsiento-1] = 'X '
precio(numeroAsiento,c50,c60,c80)
contador += 1
rutB[numeroAsiento-1]=(rut)
else:
input("Asiento no está disponible, escoja otro. Presione Enter para continuar")
elif fila.upper() == 'B' and numeroAsiento > 10:
if Fila2[numeroAsiento-1] != ' X':
Fila2[numeroAsiento-1] = ' X'
precio(numeroAsiento,c50,c60,c80)
contador += 1
rutB[numeroAsiento-1]=(rut)
else:
input("Asiento no está disponible, escoja otro. Presione Enter para continuar")
elif fila.upper() == 'C' and (0 < numeroAsiento < 4 or 4 < numeroAsiento < 10):
if Fila3[numeroAsiento-1] != 'X':
Fila3[numeroAsiento-1] = 'X'
precio(numeroAsiento,c50,c60,c80)
contador += 1
rutC[numeroAsiento-1]=(rut)
else:
input("Asiento no está disponible, escoja otro. Presione Enter para continuar")
elif fila.upper() == 'C' and numeroAsiento == 4:
if Fila3[numeroAsiento-1] != 'X ':
Fila3[numeroAsiento-1] = 'X '
precio(numeroAsiento,c50,c60,c80)
contador += 1
rutC[numeroAsiento-1]=(rut)
else:
input("Asiento no está disponible, escoja otro. Presione Enter para continuar")
elif fila.upper() == 'C' and numeroAsiento > 10:
if Fila3[numeroAsiento-1] != ' X':
Fila3[numeroAsiento-1] = ' X'
precio(numeroAsiento,c50,c60,c80)
contador += 1
rutC[numeroAsiento-1]=(rut)
else:
input("Asiento no está disponible, escoja otro. Presione Enter para continuar")
elif fila.upper() == 'D' and (0 < numeroAsiento < 4 or 4 < numeroAsiento < 10):
if Fila4[numeroAsiento-1] != 'X':
Fila4[numeroAsiento-1] = 'X'
precio(numeroAsiento,c50,c60,c80)
contador += 1
rutD[numeroAsiento-1]=(rut)
else:
input("Asiento no está disponible, escoja otro. Presione Enter para continuar")
elif fila.upper() == 'D' and numeroAsiento == 4:
if Fila4[numeroAsiento-1] != 'X ':
Fila4[numeroAsiento-1] = 'X '
precio(numeroAsiento,c50,c60,c80)
contador += 1
rutD[numeroAsiento-1]=(rut)
else:
input("Asiento no está disponible, escoja otro. Presione Enter para continuar")
elif fila.upper() == 'D' and numeroAsiento > 10:
if Fila4[numeroAsiento-1] != ' X':
Fila4[numeroAsiento-1] = ' X'
precio(numeroAsiento,c50,c60,c80)
contador += 1
rutD[numeroAsiento-1]=(rut)
else:
input("Asiento no está disponible, escoja otro. Presione Enter para continuar")
elif fila.upper() == 'E' and (0 < numeroAsiento < 4 or 4 < numeroAsiento < 10):
if Fila5[numeroAsiento-1] != 'X':
Fila5[numeroAsiento-1] = 'X'
precio(numeroAsiento,c50,c60,c80)
contador += 1
rutE[numeroAsiento-1]=(rut)
else:
input("El asiento no está disponible, por favor escoja otro. Presione Enter para continuar...")
elif fila.upper() == 'E' and numeroAsiento == 4:
if Fila5[numeroAsiento-1] != 'X ':
Fila5[numeroAsiento-1] = 'X '
precio(numeroAsiento,c50,c60,c80)
contador += 1
rutE[numeroAsiento-1]=(rut)
else:
input("El asiento no está disponible, por favor escoja otro. Presione Enter para continuar...")
elif fila.upper() == 'E' and numeroAsiento > 10:
if Fila5[numeroAsiento-1] != ' X':
Fila5[numeroAsiento-1] = ' X'
precio(numeroAsiento,c50,c60,c80)
contador += 1
rutE[numeroAsiento-1]=(rut)
else:
input("El asiento no está disponible, por favor escoja otro. Presione Enter para continuar...")
elif fila.upper() == 'F' and (0 < numeroAsiento < 4 or 4 < numeroAsiento < 10):
if Fila6[numeroAsiento-1] != 'X':
Fila6[numeroAsiento-1] = 'X'
precio(numeroAsiento,c50,c60,c80)
contador += 1
rutF[numeroAsiento-1]=(rut)
else:
input("El asiento no está disponible, por favor escoja otro. Presione Enter para continuar...")
elif fila.upper() == 'F' and numeroAsiento == 4:
if Fila6[numeroAsiento-1] != 'X ':
Fila6[numeroAsiento-1] = 'X '
precio(numeroAsiento,c50,c60,c80)
contador += 1
rutF[numeroAsiento-1]=(rut)
else:
input("El asiento no está disponible, por favor escoja otro. Presione Enter para continuar...")
elif fila.upper() == 'F' and numeroAsiento > 10:
if Fila6[numeroAsiento-1] != ' X':
Fila6[numeroAsiento-1] = ' X'
precio(numeroAsiento,c50,c60,c80)
contador += 1
rutF[numeroAsiento-1]=(rut)
else:
input("El asiento no está disponible, por favor escoja otro. Presione Enter para continuar...")
os.system("cls")
print("******** TOTAL BOLETA ********")
print("El total de pasajes es: ")
print(f"Con espacio adicional: {len(c80)}")
print(f"Común: {len(c60)}")
print(f"No reclinable: {len(c50)}")
print(f"Total de su boleta es: ${(len(c80)*80000)+(len(c60)*60000)+(len(c50)*50000)}")
print("******************************")
input("Presione Enter para continuar...")
elif opcion2==2:
Asientos()
input("Presione Enter para continuar...")
elif opcion2==3:
print("La lista de pasajeros es:")
listaRut=rutA+rutB+rutC+rutD+rutE+rutF
listaRut.sort()
for i in listaRut:
if i!=0:
print(i)
input("Presione Enter para continuar...")
elif opcion2==4:
while True:
rut=input("Ingrese rut del pasajero en formato 11111111-1: ")
if len(rut)>1:
if verificaRut(rut)==rut[-1].upper():
rut=int(rut[:-2])
break
else:
print("Ingrese un rut válido")
contRut=0
listaRut=rutA+rutB+rutC+rutD+rutE+rutF
for i in listaRut:
if i==rut:
contRut+=1
if contRut>0:
print("El rut ingresado existe en la lista de pasajeros.")
input("Presione Enter para continuar...")
else:
print("El rut ingresado no existe en la lista de pasajeros.")
input("Presione Enter para continuar...")
elif opcion2==5:
while True:
rut=input("Ingrese rut del pasajero en formato 11111111-1: ")
if len(rut)>1:
if verificaRut(rut) == rut[-1].upper():
rut = int(rut[:-2])
break
else:
print("Ingrese un rut válido")
listaRut=rutA+rutB+rutC+rutD+rutE+rutF
indices=[i for i, valor in enumerate(listaRut) if valor == rut]
if len(indices)==1:
while True:
nuevoRut=input("Ingrese nuevo rut para ese asiento en formato 11111111-1: ")
if len(nuevoRut)>1:
if verificaRut(nuevoRut)==nuevoRut[-1].upper():
nuevoRut=int(nuevoRut[:-2])
break
else:
print("Ingrese un rut válido")
if -1<indices[0]<33:
rutA[indices[0]]=nuevoRut
print("El rut ha sido reemplazado con éxito.")
input("Presione Enter para continuar...")
elif 32<indices[0]<66:
rutB[indices[0]-33]=nuevoRut
print("El rut ha sido reemplazado con éxito.")
input("Presione Enter para continuar...")
elif 65<indices[0]<99:
rutC[indices[0]-66]=nuevoRut
print("El rut ha sido reemplazado con éxito.")
input("Presione Enter para continuar...")
elif 98<indices[0]<132:
rutD[indices[0]-99]=nuevoRut
print("El rut ha sido reemplazado con éxito.")
input("Presione Enter para continuar...")
elif 131<indices[0]<164:
rutE[indices[0]-132]=nuevoRut
print("El rut ha sido reemplazado con éxito.")
input("Presione Enter para continuar...")
elif 163<indices[0]<198:
rutF[indices[0]-164]=nuevoRut
print("El rut ha sido reemplazado con éxito.")
input("Presione Enter para continuar...")
elif len(indices)>1:
print("Se han encontrado múltiples asientos asignados al rut ingresado.")
print("Se solicita especificar fila y número de asiento que se desea reasignar.")
while True:
while True:
fila=input("Ingrese fila: ")
if fila.upper()=='A' or fila.upper()=='B' or fila.upper()=='C' or fila.upper()=='D' or fila.upper()=='E' or fila.upper()=='F':
break
else:
print("Ingrese una fila válida.")
while True:
try:
numeroAsiento=int(input("Ingrese número de asiento: "))
if 0<numeroAsiento<34:
break
else:
print("Ingrese un número de asiento entre 1 y 33.")
except ValueError:
print("Ingrese solo números.")
if fila.upper() == 'A':
if rutA[numeroAsiento-1] == rut:
while True:
nuevoRut=input("Ingrese nuevo rut para ese asiento en formato 11111111-1: ")
if len(nuevoRut)>1:
if verificaRut(nuevoRut)==nuevoRut[-1].upper():
nuevoRut=int(nuevoRut[:-2])
break
else:
print("Ingrese un rut válido")
rutA[numeroAsiento-1] = nuevoRut
break
else:
input("El asiento no coincide con el rut ingresado, por favor escoja solo los que tenga comprado el rut. Presione Enter para continuar...")
break
if fila.upper() == 'B':
if rutB[numeroAsiento-1] == rut:
while True:
nuevoRut=input("Ingrese nuevo rut para ese asiento en formato 11111111-1: ")
if len(nuevoRut)>1:
if verificaRut(nuevoRut)==nuevoRut[-1].upper():
nuevoRut=int(nuevoRut[:-2])
break
else:
print("Ingrese un rut válido")
rutB[numeroAsiento-1] = nuevoRut
break
else:
input("El asiento no coincide con el rut ingresado, por favor escoja solo los que tenga comprado el rut. Presione Enter para continuar...")
break
if fila.upper() == 'C':
if rutC[numeroAsiento-1] == rut:
while True:
nuevoRut=input("Ingrese nuevo rut para ese asiento en formato 11111111-1: ")
if len(nuevoRut)>1:
if verificaRut(nuevoRut)==nuevoRut[-1].upper():
nuevoRut=int(nuevoRut[:-2])
break
else:
print("Ingrese un rut válido")
rutC[numeroAsiento-1] = nuevoRut
break
else:
input("El asiento no coincide con el rut ingresado, por favor escoja solo los que tenga comprado el rut. Presione Enter para continuar...")
break
if fila.upper() == 'D':
if rutD[numeroAsiento-1] == rut:
while True:
nuevoRut=input("Ingrese nuevo rut para ese asiento en formato 11111111-1: ")
if len(nuevoRut)>1:
if verificaRut(nuevoRut)==nuevoRut[-1].upper():
nuevoRut=int(nuevoRut[:-2])
break
else:
print("Ingrese un rut válido")
rutD[numeroAsiento-1] = nuevoRut
break
else:
input("El asiento no coincide con el rut ingresado, por favor escoja solo los que tenga comprado el rut. Presione Enter para continuar...")
break
if fila.upper() == 'E':
if rutE[numeroAsiento-1] == rut:
while True:
nuevoRut=input("Ingrese nuevo rut para ese asiento en formato 11111111-1: ")
if len(nuevoRut)>1:
if verificaRut(nuevoRut)==nuevoRut[-1].upper():
nuevoRut=int(nuevoRut[:-2])
break
else:
print("Ingrese un rut válido")
rutE[numeroAsiento-1] = nuevoRut
break
else:
input("El asiento no coincide con el rut ingresado, por favor escoja solo los que tenga comprado el rut. Presione Enter para continuar...")
break
if fila.upper() == 'F':
if rutF[numeroAsiento-1] == rut:
while True:
nuevoRut=input("Ingrese nuevo rut para ese asiento en formato 11111111-1: ")
if len(nuevoRut)>1:
if verificaRut(nuevoRut)==nuevoRut[-1].upper():
nuevoRut=int(nuevoRut[:-2])
break
else:
print("Ingrese un rut válido")
rutF[numeroAsiento-1] = nuevoRut
break
else:
input("El asiento no coincide con el rut ingresado, por favor escoja solo los que tenga comprado el rut. Presione Enter para continuar...")
break
else:
print("No hay coincidencias en la lista de pasajeros, por lo tanto no se puede reasignar pasajero.")
input("Presione Enter para continuar...")
elif opcion2==6:
os.system("clear")
print("******** TOTAL GANANCIAS PARCIALES ********")
print("El total de pasajes es: ")
print(f"Con espacio adicional: {len(contador80)}")
print(f"Común: {len(contador60)}")
print(f"No reclinable: {len(contador50)}")
print(f"Total de su boleta es: ${(len(contador80)*80000)+(len(contador60)*60000)+(len(contador50)*50000)}")
print("====================")
input("Presione Enter para continuar...")
elif opcion2==7:
break
else:
print("Seleccione una opción válida.")
elif opcion1==2:
os.system("clear")
print("==================================================================")
print(" GANACIAS DEL DÍA ")
print("==================================================================")
print("Tipo de Asiento Cantidad Total")
print("")
print(f"Asiento Común $60.000 {len(contador60)} ${(len(contador60)*60000)}")
print(f"Espacio para piernas $80.000 {len(contador80)} ${(len(contador80)*80000)}")
print(f"No reclinable $50.000 {len(contador50)} ${(len(contador50)*50000)}")
print("")
print(f"TOTAL {len(contador60)+len(contador80)+len(contador50)} ${(len(contador80)*80000)+(len(contador60)*60000)+(len(contador50)*50000)}")
print("==================================================================")
break
else:
print("Seleccione una opción válida.")
def precio(numeroAsiento,c50,c60,c80):
if 0<numeroAsiento<6 or numeroAsiento==18:
contador80.append(0)
c80.append(0)
elif 5<numeroAsiento<10 or 18<numeroAsiento<34:
contador60.append(0)
c60.append(0)
else:
contador50.append(0)
c50.append(0)
def verificaRut(rut):
serie=2
suma=0
auxrut=rut[:-2]
for i in reversed(auxrut):
if serie<8:
suma+=(int(i)*serie)
serie+=1
else:
serie=2
suma+=(int(i)*serie)
serie+=1
suma=11-(suma%11)
if 1<=suma<=9:
dVer=str(suma)
elif suma==10:
dVer="K"
elif suma==11:
dVer="0"
return dVer
menu()