Diga o que são objectos mutáveis e exemplifique.
Resposta: São objectos que podem ter o seu valor alterado sem alterar a sua identidade. As listas são um exemplo.
b) Analise a listagem seguinte e diga, justificando, o que vai aparecer no lugar dos pontos de interrogação.
>>> x_2 = ([1,2,3],[4,5,6]) >>> x_2[0][1] = 'b' >>> x_2 ??? --> ([1,'b',3],[4,5,6]) >>> x_2[0] = (7,8,9) ??? --> Dá erro de atribuição. Não se pode alterar, por atribuição, o valor de um tuploPergunta 2
Pretendia-se obter o valor aproximado da função geo(r) igual ao somatório com i a variar de 0 até infinito de 1/(r^i). Valorizava-se a consideração da precisão.
Versão sem precisão (soma de n termos):
def geo(r,n): res = 0 for i in range(n): res += 1/pow(r,i) return resAgora uma versão com a precisão a ser definida.
def geo_b(r,prec): erro = 1 res = 0 n = 0 while erro > prec: aux = res res += 1/pow(r,n) erro = abs(aux - res) n += 1 return resEsta solução funciona com base na consideração da diferença de dois valores consecutivos. Para este tipo de séries infinitas isso não causa problema. Podemos mesmo usar outra solução:
def geo_c(r,prec): i = 1 termo = res = 1 while termo > prec: termo = 1/pow(r,i) res += termo i += 1 return resPergunta 3
Pedia-se para transformar uma imagem a preto e branco, representada por uma lista de listas de uns (preto) e zeros (branco), na sua imagem no espelho, sem destruir a imagem original. Uma pequena reflexão diz-nos que é suficiente inverter a imagem, linha a linha.
def espelho(imagem): nova_imagem = [] for linha in imagem: nova_linha = linha[:] nova_linha.reverse() nova_imagem.append(nova_linha) return nova_imagem
Sem comentários:
Enviar um comentário