Tipos de Variáveis
Variáveis são um conceito de extrema importância nas linguagens de programação.
Variáveis são usadas para armazenar informações a serem referenciadas e manipuladas em um programa de computador. Elas também fornecem uma maneira de rotular dados com um nome descritivo, para que nossos programas possam ser entendidos mais claramente pelo leitor e por nós mesmos. É útil pensar nas variáveis como contêineres que contêm informações. Seu único objetivo é rotular e armazenar dados na memória. Esses dados podem ser usados em todo o seu programa.
Atribuindo Valores às Variáveis
As variáveis em Python não precisam declaração explícita para reservar espaço em memória, a declaração ocorre automaticamente quando você atribui um valor à variável. O sinal de (=) é usado para fazer a atribuição de valores.
Por exemplo:
nome = 'Gabriel' # Uma stringidade = 33 # Um valor inteiroaltura = 1.75 # Um valor em ponto flutuanteprint(nome) # Gabrielprint(idade) # 33print(altura) # 1.71
Também é possível atribuir múltiplos valores para múltiplas variáveis:
a, b, c = 5, 3.1, "Hello"print(a) # 5print(b) # 3.1print(c) # Hello
Um detalhe importante que não podemos esquecer é que devemos dar nomes que façam sentido as nossas variáveis, existem também notações que são usadas por programadores, por exemplo camelCase, onde a variável começa com uma letra em lowercase, por exemplo:
meuNome = "Gabriel"minhaIdade = 33meuEndereco = "Avenida Castelo"
Letras capitalizadas podem ser usadas para declarar constantes, valores que não variam, exemplo:
PI = 3.14GRAVIDADE = 9.8
Tipos de Variáveis em Python
Em muitas linguagens de programação, as variáveis são statically typed. Isso significa que uma variável é inicialmente declarada como tendo um tipo de dados específico e qualquer valor atribuído a ela durante sua vida útil deve sempre ter esse tipo.
Variáveis em Python não estão sujeitas a esta restrição. No Python, uma variável pode ser atribuída a um valor de um tipo e, posteriormente, re-atribuída a um valor de um tipo diferente:
v = 100print(v) # 100v = 'agora sou uma string'print(v) # agora sou uma string
Referências a Objetos
Python é uma linguagem orientada a objetos. De fato, praticamente todos os itens de dados em um programa Python são objetos de um tipo ou classe específica.
Consideramos agora o seguinte código
print(33)
Ao apresentarmos o interpretador o seguinte statement print(33)
, ele executará as seguintes ações:
- Criará um objeto inteiro
- Dará a ele o valor 33
- Apresentará ele no console
Podemos usar a função construída type() para confirmarmos
type(33) # <class 'int'>
Uma variável Python é um nome simbólico que é uma referência ou ponteiro para um objeto. Uma vez que um objeto é atribuído a uma variável, você pode se referir ao objeto com esse nome. Mas os dados em si ainda estão contidos no objeto.
Consideramos o seguinte exemplo:
x = 33
Esta atribuição cria um objeto integer com o valor 33
e atribui a variável x
para apontar para este objeto
Agora vamos considerar o seguinte statement
y = x
Ao executarmos ele, Python não criará outro objeto, ele simplesmente criará um nome simbólico ou referência y
, no qual aponta para o mesmo objeto que aponta para x
.
Imagine agora que façamos essa alteração
y = 13
Dessa vez, Python criará um novo objeto integer com o valor 13
, e y
se tornará uma referência para ele.
Agora imagine que venhamos a executar o seguinte statement
x = 'e'
Python criará um objeto string com o valor 'e'
e fará de x
uma referência a ele.
Como podemos observar, não há mais referência ao objeto integer 33
. Quando o número de referências a um objeto cai para zero, ele não está mais acessível. Nesse ponto, sua vida acabou. O Python eventualmente perceberá que é inacessível e recuperará a memória alocada para que possa ser usada para outra coisa. Esse processo é chamado de garbage collection.
Identidade dos Objetos
No Python, todo objeto criado recebe um número que o identifica exclusivamente. É garantido que dois objetos não terão o mesmo identificador durante qualquer período em que sua vida útil se sobreponha.
A função construída id() retorna o identificador inteiro de um objeto. Utilizando a função id() podemos verificar se duas variáveis realmente apontam para o mesmo objeto:
k = 100t = kid(k) # 94320283578208id(t) # 94320283578208
Perceba que ambas possuem o mesmo número identificador, uma vez que elas apontam para o mesmo objeto. Caso façamos uma alteração em t
, ele passará a apontar para outro objeto, ganhando assim um id diferente.
t = 50id(t) # 94320283576608
Deletando uma Variável
O comando del nos permite deletar variáveis.
No exemplo abaixo, declaramos uma variável chamada de numero e atribuímos um valor ponto flutuante a ela, em seguida, utilizamos o comando del para deletá-la.
numero = 12.5del numero
Se eventualmente tentarmos imprimí-la no console com o comando print()
nos será retornado um erro: NameError: name 'numero' is not defined
, nos indicando que ela não está mais definida.
Nomes de Variáveis
Uma variável pode ter um nome curto (como por exemplo x ou y) e ou nome mais descritivo (nome, idade, resultado).
Veja as regras para as variáveis
- Uma variável deve iniciar com uma letra ou um caracter underscore (_)
- Uma variável não pode começar com um número
- O nome de uma variável pode conter apenas caracteres alpha-numéricos e underscores (A-z, 0-9, e _)
- Nomes de variáveis são case sensitive (idade, Idade e IDADE são três variáveis diferentes)
Variáveis Globais
Em Python, uma variável declarada fora da função ou no escopo global é conhecida como variável global. Isso significa que uma variável global pode ser acessada dentro ou fora da função.
Vejamos um exemplo de como uma variável global é criada em Python:
x = 'global'def imprimir():print(f'{x} na função imprimir()')imprimir()print(f'{x} fora da função')
No código acima, criamos x como uma variável global e definimos imprimir()
para imprimir a variável global x. Finalmente, chamamos o imprimir()
que imprimirá o valor de x, além disso, usamos o comando print()
que também irá imprimir x.
E se desejarmos alterar o valor de x dentro de uma função?
x = 3def add():x = x + 5print(x)add()
Nos será retornado o seguinte erro:
UnboundLocalError: local variable 'x' referenced before assignment
O output apresenta um erro porque o Python trata x como uma variável local e x também não está definido dentro da função add()
.
Para solucionar este problema, podemos criar uma variável global dentro de uma função, para isso usamos a palavra-chave global:
x = 3def add():global xx = x + 5print(x)add() # 8
Observe que dessa vez a função tem acesso à variável x, tornando assim possível adicionarmos o número 5.
Agora que você já consegue armazenar valores em variáveis, vamos ver os tipos de dados que existem em Python e suas aplicações!