Ir ao conteúdo

Python desenvolvimento exercício simples de tratamento de exceção


Ir à solução Resolvido por Midori,

Posts recomendados

Postado

1916179590_questao2lista8.png.ad79adeca05210aaa3c33752319700e4.png

def questao2(lista1,lista2):
  medias = []
  media = 0
  pos = 0
  try:
    media = (lista1[pos]+lista2[pos])/2
    medias.append(media)
    pos+=1
  except TypeError:
    return -1
  except IndexError:
    break
  else:
    return medias

ta dando erro ''break outside loop'

gostaria de tb saber se meu código ta fazendo sentido

Postado

então pra eu interromper o laço de repetição como a questão diz, eu devo só repetir o return medias por ex no lugar no break? ou eu tenho que acrescentar um for ou um while antes ? não entendi como esse try funciona direito

gostaria de saber tb como faço p pegar mais uma media separada por vírgulas. no meu caso tá pegando só a média da pos0 das duas listas. 

Eu esqueci como fazer isso

Postado
2 minutos atrás, Felipe2719 disse:

então pra eu interromper o laço de repetição como a questão diz, eu devo só repetir o return medias por ex no lugar no break?

São dois tipos de erros. Com o break o laço será interrompido para continuar na função até o fim dela onde terá o return da lista. No outro caso de erro é apenas return -1 que vai sair da função nesse ponto e retornar o valor.

 

9 minutos atrás, Felipe2719 disse:

gostaria de saber tb como faço p pegar mais uma media separada por vírgulas. no meu caso tá pegando só a média da pos0 das duas listas.

Só está pegando a primeira porque sua função não tem o loop para percorrer os elementos da lista assim,

while pos < len(lista1):
    ...
    pos += 1

 

  • Curtir 1
Postado

@Midori 

while pos<len(lista1):
  try:
    media = (lista1[pos]+lista2[pos])/2
    medias.append(media)
    pos+=1
    ...
    

desse jeito ? ele continua retornando apenas a media da pos0 dos dois

em relação ao loop eu realmente viajei, pensei que o try era outra espécie de laço de repetição

Postado

@Midori

def questao(lista1,lista2):
  medias = []
  media = 0
  pos = 0
  while pos<len(lista1):
    try:
      media = (lista1[pos]+lista2[pos])/2
      medias.append(media)
      pos+=1
    except TypeError:
      return -1
    except IndexError:
      break
    else:
      return medias
    
print(questao([1,2,3],[3,4,5]))
      
    
  

o valor de retorno pra essas entradas no caso é [2.0 , 3.0, 4.0]

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...