Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #58 da revista programar. Faz já o download aqui!

Maçãs

strings/tuplos

Mensagens Recomendadas

Maçãs    0
Maçãs

boas pessoal, alguém consegue ajudar-me a resolver este problema

resposta_elemento : resposta x N0 -> tuplo(string; coordenada)

resposta_elemento(res; n) devolve o enésimo elemento da resposta res.

Caso n seja menor que 0 ou maior ou igual que o número de elementos da

resposta erro, o seletor deve gerar um erro de valor (ValueError) com a seguinte

mensagem:

resposta_elemento: argumentos inválidos

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Maçãs    0
Maçãs

vou tentar pq estou com problemas de interpretação do enunciado.

Pelo que percebi o res é uma lista de tuplos que é composta por uma palavra(string) e uma coordenada (p.ex. (0,0,'N')).

O que é pretendido com o resposta_elemento(res, n), em que n é o enésimo, é que se retire do res, que pode ter mais que uma (string,coordenada) , o correspondente ao n, pelo que eu entendi é isto.

p.ex.

([ ('OLA',(0,0,'S')], [('ADEUS',(1,1,'N')]) devolvendo depois o n que ou será [ ('OLA',(0,0,'S')] ou [('ADEUS',(1,1,'N')], se o n não corresponder a nenhum deve gerar o ValueError

É esta a minha interpretação do problema

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
thoga31    611
thoga31

Que raio de enunciado para uma coisa tão simples...

Vamos lá então organizar as ideias. ;)

Para começar, como está dito no enunciado, este é o protótipo da função a construir:

def resposta_elemento(res, n):
   pass

Tu tens então res que é uma lista de tuplos, tuplos estes que são resultados. Tu procuras o enésimo resultado da lista. A questão que se coloca é: como acedes e devolves o enésimo elemento de uma lista?

Depois disto, vamos à questão do n fora dos limites aceites.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Maçãs    0
Maçãs

sim exactamente foi isto que fiz mas dá errado nos testes

def resposta_elemento (res,n):
   if 0 < n <= len(res):
       return res[n]
   else:
       raise ValueError('resposta_elemento: argumentos invalidos')

Editado por thoga31
GeSHi

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
thoga31    611
thoga31

Que erros? Eu não adivinho.

Btw, não estás a cumprir o enunciado na íntegra. Vê lá esse if.

Editado por thoga31

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora


×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade