Ir para conteúdo
Fórum Script Brasil
  • 0

Questão de python para iniciantes


Lukinh4s

Pergunta

Empaquei nessa questão eu gostaria de saber se alguém pode me ajudar a termina-la.

Conteúdo do exercício

  1. Faça um programa que lê 6 números reais em uma matriz 3x2, calcula e exibe:

     

    • A média dos números positivos (0,5 pontos);
    • A soma dos números negativos (0,5 pontos);
    • O maior número positivo (0,5 pontos);
    • O maior número positivo da 2ª linha (0,5 pontos);
Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

 

7 minutos atrás, ArteEN disse:

tem que postar seu codigo toda vez que for pedir ajuda

Aqui está:

nums =  [
           [0, 0, 0],
           [0, 0, 0]
        ]
mai = 0
neg = 0
media = 0
for linha in range(0,2):
    for coluna in range(0,2):
        nums[linha][coluna] = int(input(f"Digite um valor para [{linha}, {coluna}]:"))
for linha in range(0,2):
    for coluna in range(0,2):
        
        print(f"[{nums[linha][coluna]:^5}]", end=" ")
        if nums[linha][coluna] > 0:
            media = nums[linha][coluna]/4
    print()
    
print(f"A média dos números positivos é {media}")
for linha in range(0,2):
    for coluna in range(0,2):
        if nums[linha][coluna] < 0:
            neg += 1
print(f"A soma dos números negativos é {som}.")
for linha in range(0,1):
    for coluna in range(0,2):
        if nums[1][coluna] > 0:
            if nums[1][coluna]:
               mai = nums[1][coluna]
            elif nums[1][coluna] > mai:
                mai = nums[1][coluna]
print(f"O maior número da 2ª linha é: {mai}.")
            
        

 

Link para o comentário
Compartilhar em outros sites

  • 0
  1 nums =  [
  2            [0, 0, 0],
  3            [0, 0, 0]
  4         ]
  5 mai = 0
  6 neg = 0
  7 media = 0
  8 soma = 0
  9 
 10 for linha in range(0,2):
 11     for coluna in range(0,2):
 12         nums[linha][coluna] = int(input(f"Digite um valor para [{linha},             {coluna}]:"))
 13 
 14 contador = 0
 15 for linha in range(0,2):
 16     for coluna in range(0,2):
 17 
 18         print(f"[{nums[linha][coluna]:^5}]", end=" ")
 19         if nums[linha][coluna] > 0:
 20             #media = nums[linha][coluna]/4
 21             soma += nums[linha][coluna]
 22             contador += 1
 23     print()
 24 media = soma/contador
 25 print(f"A média dos números positivos é {media}")
 26 
 27 for linha in range(0,2):
 28     for coluna in range(0,2):
 29         if nums[linha][coluna] < 0:
 30             neg += nums[linha][coluna]
 31 print(f"A soma dos números negativos é {neg}.")
 32 
 33 for linha in range(0,1):
 34     for coluna in range(0,2):
 35         if nums[1][coluna] > 0:
 36             if nums[1][coluna]:
 37                mai = nums[1][coluna]
 38             elif nums[1][coluna] > mai:
 39                 mai = nums[1][coluna]
 40 print(f"O maior número da 2ª linha é: {mai}.")

achei dois erros que eram o calculo da media e o print da variavel neg

 

recomendo você ver como usar compreessão de lista para filtrar, isso vai diminuir muitas linhas no seu codigo

Editado por ArteEN
Link para o comentário
Compartilhar em outros sites

  • 0

não, compreensão de lista é para criar lista, append é para acrescentar na lista existente

vou dar um exemplo

lista = []
for i in range(10):
  lista.append(i)
  
lista2 = [i for i in range(10)]

 

  1 #defino o valores já na matriz para não perder tempo com input
  2 #se o input for nessessario eu deixo para fazer por ultimo
  3 matriz =  [[1, 5, -6],
  4            [0, -3, 9]]
  5 
  6 
  7 #esse é um macete que fica bem nesse problema
  8 #usa soma para criar uma nova lista
  9 #assim não precisa repetir linha/coluna
 10 nums = matriz[0] + matriz[1]
 11 
 12 
 13 #uma coisa que pode ajudar muito é compreessão de lista
 14 #é uma forma de empacotar o loop for para filtrar uma lista
 15 #faço o print para conferir se foi filtrado corretamente
 16 positivos = [x for x in nums if x >= 0]
 17 negativos = [x for x in nums if x < 0]
 18 positivos_linha_2 = [x for x in matriz[1] if x >= 0]
 19 
 20 
 21 #agora que esta filtrado basta fazer as operaçoes
 22 media_positivos = sum(positivos)/len(positivos)
 23 soma_negativos = sum(negativos)
 24 maior_positvo = max(positivos)
 25 maior_positvo_linha_2 = max(positivos_linha_2)
 26 
 27 #finaliza com a exibição
 28 print(media_positivos)
 29 print(soma_negativos)
 30 print(maior_positvo)
 31 print(maior_positvo_linha_2)

vou deixar uma versão do seu codigo usando compreensão de lista, você pode apagar os comentarios para comparar

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...