Hay que verificar que el usuario no introduzca una fila que no exista y que sea un dato válido.
Verificar que la opción sea válida.
Para ello, se utilizará la función def pedir_datos(mensaje, limite):
En función de la opción elegida por el usario, va a verificar la información. en donde:
mensaje, va a ser lo que pida al usuario en pantalla.
limite, los valores que son válidos, por ejemplo no puede introducir una fila que no esté en la matriz, len(matriz[0])
Código de la función
def pedir_datos(mensaje, limite):
cierto=True
while cierto:
try:
numero=int(input(mensaje))
if numero >=0 and numero<limite:
cierto=False
else:
print("Haste tecleado un número fuera del límite")
except:
print("Has introducido una letra")
return numero
Código completo
def pedir_datos(mensaje, limite):
cierto=True
while cierto:
try:
numero=int(input(mensaje))
if numero >=0 and numero<limite:
cierto=False
else:
print("Haste tecleado un número fuera del límite")
except:
print("Has introducido una letra")
return numero
print("inicio de programa")
matriz= [[4,1,2],
[3,3,2],
[1,5,1]]
det=1
opcion=1
while opcion!=5:
print(matriz)
opcion=pedir_datos("Menú \n1.Multiplicar \n2.Sumar \n3.Intercambiar \n4.Diagonal \n5.Salir ",6)
if opcion==1:
# multiplicar fila por valor
fila=pedir_datos(" Dame la Fila: ", len(matriz[0]))
valor=pedir_datos("Dame el valor a sumar a esa fila:" , 1000)
for j in range(len(matriz[fila])):
matriz[fila][j]*=valor
elif opcion==2:
# suma fila fila 1 to fila 2
fila1=pedir_datos("Dame el valor de la fila 1: ", len(matriz[0]))
fila2=pedir_datos("Dame el valor de la fila a sumar: ",2000)
for j in range(len(matriz[fila2])):
matriz[fila2][j]+=matriz[fila1][j]
elif opcion==3:
# intercambiar la fila 1 por la fila 2
fila1=pedir_datos("Dame el valor de la fila 1 a cambiar: " , len(matriz[0]))
fila2=pedir_datos("Dame el valor de la fila 2 a cambiar: " , len(matriz[0]))
det*=-1
for j in range(len(matriz[fila2])):
matriz[fila2][j],matriz[fila1][j] = matriz[fila1][j],matriz[fila2][j]
elif opcion==4:
#Cálculo del determinante
for i in range(len(matriz)):
det*=matriz[i][i]
print("El determinante es {}".format(det))
elif opcion==5:
print("Opción salir")
else:
print("Valor incorrecto del menú")
print("Fin de programa")