Jump to content
Fórum Script Brasil
  • 0

Questão de python para iniciantes


Question

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 to post
Share on other sites

6 answers to this question

Recommended Posts

  • 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 to post
Share on other 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

Edited by ArteEN
Link to post
Share on other sites
  • 0

Valeu brother! Muito obrigado.

2 horas atrás, ArteEN disse:

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

você que dizer o uso do append, n é mesmo?

Link to post
Share on other 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 to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      148911
    • Total Posts
      645016
×
×
  • Create New...