Ir ao conteúdo
  • Cadastre-se

Python Como faço para colocar lista e matriz dentro da função em PYTON<CODE>


Posts recomendados

Criar um programa que:
- Utilize uma sub-rotina para receber os elementos de uma matriz 10x5 de números reais;
- Utilize uma sub-rotina para calcular a soma de todos os elementos localizados abaixo
da sexta linha dessa matriz;
Os resultados deverão ser mostrados no programa principal.

 

def matriz():
  for i in range(10):
        for j in range(5):

Eu não sei como funciona a matriz dentro ou fora da função, quem poder ajudar agradeço! 

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

@Thiagodsantana     enviar a matriz por parâmetro , e na função ou sub-rotina , e uma variável para receber essa matriz enviada , faça os cálculos armazenando em outra variável e retorne esse valor para a Função principal onde precisa de outra variável para receber esse valor retornado e escrever ele, e seu código poderia ser assim  :

def matriz(mat):                   # def é a função com Qualquer nome e
                                   # a variável mat recebe a matriz enviada por parâmetro
    soma = 0                       # iniciaLiza a variável soma com valor zero
    for i in range(10):            # Loop vai de zero até nove
        for j in range(5):         # Loop vai de zero até quatro
            if( i > 5 ):           # se estiver depois da sexta Linha da Matriz
                soma += mat[i][j]  # soma acumulando o valor doconteúdo das
                                   # outras posições da lista de lista
    return soma                    # retorna o valor da soma
# A Função finaliza ao terminar a identação
mat = [[1,2,3,4,5],[1,2,3,4,5],[1,2,3,4,5], # Matriz ou lista de lista
       [1,2,3,4,5],[1,2,3,4,5],[1,2,3,4,5], # com dez linhas e cinco colunas
       [1,2,3,4,5],[1,2,3,4,5],[1,2,3,4,5],
       [1,2,3,4,5]                       ]
soma = matriz(mat)  # chamar a função enviando a matriz por parâmetro
                    # e a variável soma receberá o resultado retornado
print(soma)         # escrever o resultado retornado

 

Link para o comentário
Compartilhar em outros sites

@devair1010

Olha eu tentei, só que da erro . Fala que não defini a matriz. Onde eu coloco meu programa principal? Sua explicação ficou ótima muito obrigado, apenas o programa principal que não consegui colocar!

def matrizsoma(matriz):
    soma = 0
    matriz = []
    for i in range(10):
        matriz.append([])
        for j in range(5):
            print(f'Preencha as linha {i+1} coluna {j+1}')
            if(i > 5):
                soma += matriz[i][j]
    return soma


soma = matrizsoma(matriz)
print(matriz)

 

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

@Thiagodsantana@Thiagodsantana        você vai preencher a matriz lá na função , então seu código poderia ser assim   :

def somaMatriz(mat):               # def é a função com Qualquer nome e
                                   # a variável mat recebe a matriz enviada por parâmetro
    soma = 0                       # iniciaLiza a variável soma com valor zero
    for i in range( 2):            # Loop vai de zero até nove ( coloquei 2 só para testar )
        for j in range(5):         # Loop vai de zero até quatro
            if( i > 0 ):           # se estiver depois da sexta Linha da Matriz ( colquei 0 para testar , depois coloque cinco )
                soma += int(mat[i][j]) # conveter para int pois foram inserido na matriz como string  
                                   # soma acumulando o valor do conteúdo das
                                   # outras posições da lista de lista
                print("mat ",mat[i][j],"val i ",i,"val j ",j) # essa Linha é só para testar , depois remova - a
    return soma                    # retorna o valor da soma
# A Função finaliza ao terminar a identação
  
def lerMatriz():
    matriz = []                               # cria uma variável do tipo Lista simples
    for i in range(2):                        # loop aqui vai de 0 até 1 
        linhas = []                           # cria uma Lista simples
        for j in range(5):                    # Loop vai de zero até 4
            num = input("escreva um numero ") # lê e pega um numero do teclado
            linhas.append(num)                # essa lista recebe o número 
        matriz.append(linhas)                 # adiciona essa lista dentro da outra chamada matriz
    return matriz                             # retorna a matriz preenchida


# daqui para baixo é o programa principal

matriz = lerMatriz()       # cria uma variável nomeada matriz que receberá
                           # a matriz preenchida e retornada da função
soma = somaMatriz(matriz)  # chamar a função enviando a matriz por parâmetro
                           # e a variável soma receberá o resultado retornado
print("A Soma é ",soma)    # escrever o resultado retornado

 

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

@devair1010  Consegui. Muito obrigado!! vou postar meu código caso poder ajudar

def matrizsoma(mat):
    soma = 0
    for i in range(5):
        for j in range(3):
            if(i > 3):
                soma += int(mat[i][j])     
    return soma
def lermatriz():
    matriz = []
    for i in range(5):
        linhas = []
        for j in range(3):
            print(f'Linha {i} e coluna {j}')
            num = input('Escreva um número: ')
            linhas.append(num)
        matriz.append(linhas)
    return matriz
        
matriz = lermatriz()
soma = matrizsoma(matriz)
print(matriz)
print(f'A soma foi {soma}')
            

Ficou assim meu Código! 

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...