hola que tal..soy nuevo en la programacion con python y necesito alguna mano para arrancar con un programa que estoy haciendo..necesito ingresar por teclado la cantidad de filas y de columnas de una matriz..y tratar de lograr que cuando termine de poner los valores de la matriz me tire los valores de las diagonales en caso de que sea una matriz cuadrada..
quedaria algo asi
Ej. de caso particular. Cumple con la condicion de ser distintos de
cero.
Ingrese la cantidad de filas y columnas: 3 3
Valor[0][0]=3
Valor[0][1]=6
Valor[0][2]=9
Valor[1][0]=12
Valor[1][1]=15
Valor[1][2]=18
Valor[2][0]=1
Valor[2][1]=1
Valor[2][2]=1
Resultados
162
3240
1
(estos resultados vienen del producto de los valores de cada fila..la primera fila es 3, 6, 9 y si los multipliamos da 162..lo mismo para las otrsa filas..)
La diagonal secundaria es
9
15
1
desde ya agradezco alguna mano para guiarme un poco..!
Podría ser así,
# @ Matriz declaration
sMatriz = [[3,6,9], [12,15,18], [1,1,1]]
def getMain(pMatriz): # Matriz is params
for i in range(0,3):
sReturn = 1
for j in range(0,3):
sReturn = sReturn * pMatriz[i][j]
print " ", sReturn
def getSecondary(pMatriz): # Matriz is params
for i in range(0,3):
sReturn = 1
for j in range(0,3):
if (i + j == 1 + 1):
print " ", pMatriz[i][j]
print "Main"
getMain(sMatriz)
print ""
print "Secondary"
getSecondary(sMatriz)
alex@shellroot:~/Escritorio$ python PoC.py
Main
162
3240
1
Secondary
9
15
1
Sólo porque no tengo nada que hacer, aquí esta lo que podrías necesitar
Suerte, comenta si te sirve
(solo copia y pega esto en un editor de python y listo)
#! /usr/bin/python
#-*- coding: utf-8 -*-
#----------------------------------------------------------------------
def Pedir_Tamanio():
filas=raw_input("Cantidad de filas: ")
columnas=raw_input("Cantidad de columnas: ")
fila=int(filas)
columna=int(columnas)
return fila, columna
#----------------------------------------------------------------------
def Producto_lista(lista):
contador=0
producto=1.0
while contador<len(lista):
producto*=float(lista[contador])
contador+=1
return producto
########################################################################
class Trabajar_con_matriz:
""""""
#----------------------------------------------------------------------
def __init__(self, fila, columna):
self.fila=fila
self.columna=columna
#----------------------------------------------------------------------
def Llenar_matriz(self):
self.matriz=[]
i=0
while i<self.fila:
inter_matriz=[]
j=0
while j<self.columna:
valor=raw_input("Valor [%d][%d]: " %(i, j))
inter_matriz.append(float(valor))
j+=1
i+=1
self.matriz.append(inter_matriz)
return True
#----------------------------------------------------------------------
def Calcular_productos_por_fila(self):
i=0
while i<self.fila:
producto=Producto_lista(self.matriz[i])
print "Producto fila %d: %f" %(i+1, producto)
i+=1
return True
#----------------------------------------------------------------------
def Optener_diagonal_secundaria(self):
if self.fila==self.columna:
j=self.columna-1
i=0
print "Diagonal inversa:"
while j>=0:
print self.matriz[i][j]
i+=1
j-=1
return True
else:
print "No es una matriz cuadrada"
return False
fila, columna =Pedir_Tamanio()
Matriz=Trabajar_con_matriz(fila, columna)
Matriz.Llenar_matriz()
print "\n\n"
Matriz.Calcular_productos_por_fila()
print "\n\n"
Matriz.Optener_diagonal_secundaria()
raw_input()