Variáveis

Willian Pessoa
Reflexão Computacional

--

Dados e representações

Tudo que fazemos com computadores é manipular dados. Os dados, para nós, podem ser apresentados em diferentes formatos: imagens, vídeos, mapas, sons, músicas, modelo 3D de um objeto etc. Todos estes dados que estamos acostumados são, na verdade, uma abstração/representação de um conjunto de dados mais simples.

Já falamos uma vez que tudo que o computador armazena pode ser representado com “zeros” e “uns” (números binários), certo? Essa representação não serve para nós pelo simples fato de ser difícil demais de compreendermos e manipularmos. Vamos trabalhar com a camada intermediária entre a representação de dados por computadores e humanos.

O início dessa camada intermediária contém os números inteiros e racionais, booleanos (True ou False) e as strings (Texto). Antes de manipularmos estes tipos de dados, precisamos saber como armazená-los no computador.

Variáveis - (Nome, valor e tipo)

Variável, como o nome já diz, é algo que varia. Em outras palavras, não possui um valor fixo e, por isso, seu valor pode ser alterado a qualquer momento. E vamos aprender como utilizar as variáveis no Python.

A síntaxe para criar uma variável é bem simples.

<nome_da_variável> = <valor_da_variável>

Para obter o valor de uma variável, basta referenciar/citar/usar o nome da mesma. Vejamos um exemplo realizado diretamente no IDLE em modo interativo.

Declarando variáveis no Interpretador Interativo (shell) do Python.

Variáveis são como caixinhas

Mesmo com o exemplo anterior, sabemos que é complicado assimilar o conceito de variáveis. Então, preste atenção neste próximo exemplo.

Imagine que cada variável que criamos é um caixinha na memória do computador. Essa caixinha tem um nome e dentro dela tem um valor. Essa variável pode ser acessada (obtendo o valor) e alterada (modificando o valor) enquanto nosso programa estiver executando. Para entender melhor, veja este exemplo no Python Tutor.

O Python Tutor é uma IDE online que além de executar códigos Python, também exibe o estado das variáveis na memória do computador durante a execução do programa. Nele, vamos rodar o seguinte código.

Ao clicar em “Visualize Execution” (visualizar execução), o Python tutor me permite rodar este código passo por passo (linha por linha).

O lado esquerdo exibe meu código. As variáveis que forem sendo criadas serão exibidas no lado direito. Ao clicar em “Forward” (adiante), a linha indicada pela seta vermelha é executada.

Perceba que a variável a começou a ser exibida no lado direito e está indicando que seu valor atual é o valor inteiro 10. Vamos dar seguimento ao código.

Agora, a variável de nome b e valor inteiro 20 foi criada. A próxima linha a ser executada irá usar os valores atuais das variáveis a e b, somando ambos, para indicar indicar o valor da variável c.

A variável c foi criada com o valor inteiro 30. A próxima linha irá atualizar o valor da variável a. Será que também atualizará o valor da variável c já que o valor dela foi indicado como sendo a soma de a e b? Veremos…

O valor da variável c não foi alterado. Isso indica que, indepedentemente de alterarmos os valores das variáveis a e b, o valor da variável c não irá mudar neste caso. Tenha em mente que cada linha de código utiliza somente os valores das variáveis naquele momento. Acredito que você já tenha pego o sentimento envolvido. Vamos passar os passos seguintes.

Atualizando o valor de b.
Indicando o valor de c como o produto do valor de a pelo valor de b.

Caso queira executar o exemplo utilizada acima, basta clicar neste link.

Dica: utilize o Python Tutor sempre que estiver tendo dificuldades em entender o que o seu, ou qualquer outro, código está fazendo.

Nome… Ok! Valor… ok! Mas e o tipo?

Repare que em nenhum momento eu precisei especificar o tipo de cada variável. Em Python, a tipificação das variáveis é feita dinamicamente. Em outras palavras, o interpretador detecta o valor que você está atribuindo à variável implicitamente.

No entanto, para declarar uma variável de algum tipo, precisamos obedecer algumas regras:

  • Valores positivos não precisam de inclusão do sinal + (adição), porém os valores negativos precisam do sinal de - (subtração):
>>> num_positivo = 10
>>> num_negativo = -20
  • Valores racionais (float) devem utilizar ponto ao invés de vírgula:
>>> num_racional = 7.821
>>> outro_racional = -4.7412
  • Valores de texto (string) precisam estar entre aspas. Podendo ser simples ou duplas:
# Linhas contendo '#' são comentários e ignoradas pelo interpretador.# Aspas simples
>>> filme_bom = 'Vingadores'
# Aspas duplas - UTILIZEM ESTE MODO!
>>> filme_sensacional = "Vingadores Guerra Infinita"
  • Booleanos devem possuem valor True (1) ou False (0):
>>> este_eh_um_otimo_curso = True
>>> vou_abandonar_o_curso = False
  • Podemos declarar o valor de uma variável baseado no valor de outra:
>>> a = 10
>>> b = a

Só existem estes tipos?

Não! Existem outros tipos mais complexos e compostos da combinação de vários destes e de outros tipos. Por enquanto, só precisamos destes.

Algumas convenções importantes

Existem convenções (guias e regrinhas) que são seguidas a fim de escrever um um bom código Python.

  • Os nomes das variáveis devem ser escritos com letras minúsculas;
  • Se o nome da variável conter mais de uma palavra, essas palavras devem ser separadas por undescore (“_”);
  • As letras que compõem o nome de uma variável não devem ter acentos.
>>> desenho_bom = "Rick and Morty"
>>> desenho_otimo = "Irmão do Jorel"

Existem outras regrinhas, mas que não nos interessam por agora. Se tiver curiosidade em saber, existe um guia de estilo de código na Wiki do Python.org .

Curiosidade

O Python possui diversos comandos embutidos. Estão disponíveis para uso a partir do momento que abrimos o IDLE. Um deles é o comando type(). Este comando nos permite descobrir o tipo de uma variável.

Obtendo a informação do tipo de variáveis com o comando type(<var>).

Exercícios

Pratiquem com o shell do Python tudo que aprenderam até agora! É importantíssimo que vocês se acostumem com as variáveis. Depois de brincarem bastante, tentem resolver o seguinte desafio:

Desafio: Trocando valores de duas variáveis

Preciso trocar o valor de duas variáveis já declaradas, por exemplo:

>>> a = 10
>>> b = 5

E preciso fazer isso apenas utilizando atribuição entre variáveis. Mas quando atribuo o valor de a para b, eu perco o valor que estava armazenado em b.

Quando faço o inverso, atribuo o valor de b para a, perdendo o valor de a.

Lembrando que não podemos “roubar” e fazer algo do tipo:

Pois, desta forma, a gente acaba não realizando a única regra, que é trocar o valor da variável utilizando apenas atribuição entre variáveis.

E aí? Como iremos resolver isso? Use o Python Tutor para te ajudar neste problema!

--

--