Escrever uma série de instruções que altere o conteúdo de duas variáveis.
É importante compreender corretamente a questão colocada. Para tal, o melhor é usar um exemplo.
Vamos imaginar que dois envelopes contêm uma certa quantia de dinheiro: um envelope azul contém uma nota de 20 euros e um envelope vermelho contém uma nota de 50 euros.
Podemos definir imediatamente duas variáveis indicando a quantia do envelope azul e a quantia do envelope vermelho.
azul = 20
vermelho = 50
Assim, vamos guardar o valor 20 na variável azul
e o valor 50 na variável vermelho
.
Desejamos agora trocar o conteúdo dos dois envelopes. A nota de 50 euros estará, portanto, no envelope azul e a nota de 20 euros no envelope vermelho.
A ideia é escrever em Python as instruções que realizam esta operação.
Temos então duas variáveis azul
e vermelho
cujo conteúdo queremos trocar.
Como sabemos a a atribuição de variáveis é feita com o sinal =
, é muito tentador escrever:
vermelho = azul
azul = vermelho
Estamos no interpretador interativo.
O resultado não é o esperado pois o conteúdo de azul
ainda é 20…
O que aconteceu?
Uma vez que escrevemos vermelho = azul
, o conteúdo de azul
, 20, foi armazenado em vermelho
. O novo conteúdo de vermelho
é então 20. Estamos perante o seguinte:
>>> azul
20
>>> vermelho
20
Assim que escrevemos azul = vermelho
, o conteúdo de vermelho
, que é agora 20, é armazenado em azul
. O novo conteúdo de azul
é então 20. Estamos perante o seguinte:
>>> azul
20
>>> vermelho
20
Este método não funciona, portanto, uma vez que a primeira instrução foi gravada por cima do conteúdo da segunda variável. Portanto, a ideia é armazenar o conteúdo da segunda variável algures antes de gravar por cima alguma coisa.
Assim, vamos, em primeiro lugar, armazenar o conteúdo da segunda variável numa terceira variável, a que daremos o nome de stock
, para evitar perder a informação. Um pouco como se tivéssemos um terceiro envelope vazio no qual mantivéssemos a nota de 50 euros temporariamente.
Instrução 1 :
stock = vermelho
Agora que a informação está guardada, podemos colocar o conteúdo da primeira variável na segunda variável. No nosso exemplo, colocamos a nota de 20 euros no envelope vermelho (agora vazio).
Instrução 2 :
vermelho = azul
Só falta colocar a nota de 50 euros no envelope azul, ou seja, o conteúdo de stock
na primeira variável.
Instrução 3 :
azul = stock
No fim destas instruções, o conteúdo dos dois envelopes deverá estar trocado.
De facto, a linguagem Python permite evitar passar por outra variável. É possível fazer a atribuição de duas variáveis na mesma instrução.
a,b = 2,3
Esta instrução permite armazenar 2 em a
e 3 em b
.
No nosso exemplo era então possível escrever o seguinte: azul,vermelho=vermelho,azul
. Como as atribuições são feitas na mesma variável, o conteúdo de vermelho
não é apagado, e o conteúdo das duas variáveis é trocado.
Escreva uma função media
que tome uma lista de valores como argumento e que devolva a média aritmética desses valores.
Este exercício mostra a utilização prática de variáveis concretas dentro de uma função.
Uma lista de números é uma sequência de números entre parênteses rectos separados por vírgulas. Assim, no script irá escrever:
A função len
permite calcular o comprimento de uma lista (número de elementos).
A função sum
é utilizado para calcular a soma dos elementos de uma lista, neste caso a soma dos valores introduzidos.