Variáveis em Python3
1 dez, 2017 por tavares
O que é uma variável?
U ma variável é uma área de memória onde armazenamos um valor qualquer.
Esta área é associada a um nome ou identificador. Acessamos a área de memória através
deste nome.
Se você já tem conhecimento de outras linguagens como o “C” ou “basic”, deve-se
lembrar que no caso destas linguagens as variáveis devem ser declaradas antes de serem
utilizadas, e que nesta declaração você já definia o tipo da variável. Python simplificou
o tratamento das variáveis para o desenvolvedor. Com o Python você não precisa
declarar nem o tipo nem o nome da variável antes de utilizá-la. No Python isto ocorre
automaticamente na primeira atribuição.
Os experimentos aqui realizados utilizaram o Python 3.5, sistema operacional Mint
18.1. Foram executados em um ambiente virtual onde o Python “default” é p Python
3.5. Todos os scripts completos e “prontos para usar” podem ser obtidos na
página [Link]
configuracao/, sob o nome [Link].
Tipos de variáveis em Python
A linguagem Python possui os seguintes tipos de variáveis:
Números
Booleanos
Strings
Lista
Tupla
Dicionário
Os números podem ser dos seguintes tipos
int :inteiros com sinal. Podem ser de qualquer tamanho
float :valores reais em ponto flutuante
complex : Números complexos
Os números sem ponto decimal serão considerados inteiros e os números com ponto
decimal serão considerados ponto flutuante.
Variáveis do tipo inteiro
Observe no trecho do script a seguir como podemos instanciar variáveis com valores
inteiros, ponto flutuante e números complexos.
1 .Experimentos com tipos numéricos
2 def main(args):
3
4 numeroInteiro = 5 # a variável "numero inteiro" é do tipo inteiro
# e tem o valor 5
5
6
7
numeroInteiroBemGrande = 234987456123098
8
9
10 numeroPontoFlutuante = 34.874
11
12
13
14 print ("Valor da variável de nome <numeroInteiro> =
15 ",numeroInteiro)
16
17 print("Valor da variável de nome <numeroInteiroBemGrande> = "
18 numeroInteiroBemGrande)
19
print("Valor da variável de nome <numeroPontoFlutuante> = ",
20
21
22 #números complexos são comuns na área de ciências exatas. Se você não
23 # teve contato com números complexos, pode pular esta parte, pois
24 # certamente não precisará de utilizá-los
25
26
27 numeroComplexo= 5 + 4J # 4 é a parte imaginária do número
28
29 print("Valor da variável de nome <numeroComplexo> = ", numero
30
31
32 return 0
O resultado deste script é o seguinte:
Operando com variáveis numéricas
Variáveis do tipo Booleano
As variáveis do tipo booleano só podem assumir dois estados. True , (verdade) , e False
(falso). Veja no exemplo a seguir:
1 .Experimentos com booleanos
def main(args):
2
3
variavelBooleana =True # à variavel "variavel booleana é atribuido True
4
5 print ("Valor da variável de nome <variavelBooleana> =
6 ",variavelBooleana)
7
8
9 return 0
O resultado deste script é o seguinte:
Operando com variáveis booleanas
Variáveis do tipo string
Uma variável string em Python é delimitada por <“> ou <‘>. Se você iniciou com <“>
deve terminar com <“>, e se iniciou com <‘> deve terminar com <‘>. Você pode
acessar um subconjunto da string através do operador [:]. Um único elemento da string
pode ser acessado através do operador []. String podem ser concatenadas com o
operador +.Para as situações nas quais a string deve ocupar mais de linha,
utilizamos “””.
Um exemplo de uso da variável string é apresentado a seguir:
1 .Experimentos com strings
def main(args):
2
3
variavelString = "Este é um exemplo de variável string"
4
5 variavelStringAdicional= ", como se vê, com estudo tudo fica fácil!"
6
7 print (variavelString) # mostra toda a variavel
8
9 print(variavelString[3]) # mostra o caracter na posição 3 da string
10 # contagem inicia em zero
11
12 print(variavelString[7:18]) # mostra a sub string entre posições 7 e
11
13
14
15 stringCompleta= variavelString + variavelStringAdicional
16
17
18
print (stringCompleta)
19
20
21 return 0
22
O resultado deste script é o seguinte:
Operando com strings
Variáveis que serão descritas a seguir, do tipo lista, tupla e dicionários são
estruturas de dados complexas e merecem ter um capítulo só para elas. A apresentação
agora realizada é apenas para “marcar lugar” na listagem de tipos de variáveis Python.
Variáveis do tipo lista
As listas são conjuntos de itens separados por virgulas e delimitados por colchetes. São
similares aos vetores da linguagem “C”, com a diferença é que no caso da lista os itens
podem ser de tipos diferentes. Similarmente às strings, acessamos os itens de uma lista
através dos operadores [] e [:] , e o operador + concatena duas listas.
1 .Experimentos com strings
2
def main(args):
3
4
listaPerguntas = ["Quem descobriu o Brazil?",
5
6
7 "Em que ano?",
8 "Qual o regime político do Brasil hoje?",
"Qual o principal problema do Brasil hoje?",
9 "Qual é a maior cidade brasileira?"]
10
11 listaRespostas = ["Pedro Álvares Cabral",
12 "1500",
13 "Democracia",
14 "Educação de qualidade",
"São Paulo"]
15
16
17 print (listaPerguntas[0], " Foi " , listaRespostas[0] , "!")
18
19 print (listaRespostas)
20
21
22 print (listaPerguntas[3:5])
23 print (listaRespostas[3:5])
24
25
26 return 0
27
O resultado deste script é o seguinte:
Operando com listas
Variáveis do tipo tupla
Tuplas são muito parecidas com listas, porém ao contrário destas são apenas para
leitura, Não se pode modificar nenhum elemento de uma tupla. Os elementos de uma
tupla são também separados por vírgulas, porém são delimitadas por parenteses,
diferentes das lista, que são delimitadas por colchetes.
Observe um exemplo de acesso a tupla no script a seguir. Atenção, embora o exemplo
mostre apenas componentes da tupla constituídos de variáveis tipo string, a tupla pode
conter qualquer tipo de dado.
1
2 .Experimentos com strings
3
4 def main(args):
5
6 tuplaEstado = ("Rio de Janeiro",
7 "São Paulo",
"Minas Gerais",
8 "Bahia",
9 "Amazonas")
10
11 tuplaCapital = ("Rio de Janeiro",
12 "São Paulo",
"Belo Horizonte",
13
"Salvador",
14 "Manaus")
15
16
17 print (tuplaEstado)
18
19 print (tuplaCapital)
20
21
22 print (tuplaEstado[2])
23 print (tuplaCapital[2])
24
25
return 0
26
27
O resultado deste script é o seguinte:
Operando com tuplas
Variável do tipo dicionário
Os dicionários Python são estruturas de dados nas quais é realizada uma associação
entre uma chave (key) e um valor correspondente (value). A chave é geralmente uma
string ou inteiro, e os valores podem ser qualquer tipo de objeto Python. Os conjuntos
chave-valor que formam um dicionario são separados por :, e cada par é separado do
outro por ,. Os elementos de um dicionário são delimitados por {}.
Observe o exemplo a seguir:
1 .Experimentos com strings
2
def main(args):
3
4
dicionarioProva= {"Rio de Janeiro":"Rio de Janeiro",
5 "São Paulo":"São Paulo",
6 "Minas Gerais": "Belo Horizonte",
7 "Bahia":"Salvador",
8 "Amazonas":"Manaus"}
9
10
print(" A capital de Rio de Janeiro é ", dicionarioProva["Rio de Janeiro"])
11
12
print(" Lista de estados: ", list([Link]()))
13
14 print(" Lista de capitais: ", list([Link]()))
15
16 return 0
17
18
19 if __name__ == '__main__':
20 import sys
21 [Link](main([Link]))
22
O resultado deste script é o seguinte:
Operando com dicionários
Convertendo um tipo em outro
Uma vez instanciada uma variável, ela assume um determinado tipo. Mas podemos
converter um tipo em outro. Veja os exemplos:
Inteiro para ponto flutuante
varInt= 50 # a variável varInt é um inteiro
floatVar= float(varInt) # se imprimirmos flatVar teremos como resultado 50.0
Ponto flutuante para inteiro
varInt= int(varFloat)
Nesta conversão o valor após a virgula é desprezado. NÃO é arredondado.
Número resultante de uma divisão de inteiros
Qaundo você divide dois inteiros, o resultado pode ser automaticamente convertido em
ponto flutuante, como no exemplo a seguir.
div = 7/2 = 3.5
Inteiro para string
varStr= str(varInteiro)
Número flutuante para string
varStr= str(varNumeroFlutuante)
String para inteiro
varInt= str(varString)
String para ponto flutuante
varFloat= str(varString)
Lista para tupla
varList= [1,4,5,8,9]
varTuple tuple(varList)
Tuplas para lista
varTupla = (1,4,7,9,10)
varList= list(varTupla)
Escopo das variáveis. Variáveis
globais e locais.
Uma variável pode ser reconhecida por todas as funções ou métodos do programa, ou
seja pode ser uma variável global , ou reconhecida apenas dentro de um bloco de
código, neste caso teremos uma variável local.
Variáveis globais são geralmente uma fonte de problemas, pois podem ser alteradas
facilmente por muitos trechos do programa, o que dificulta a depuração. Porém as vezes
permitem simplificar a implementação do programa. Basicamente, use com cuidado.
Toda variável instanciada dentro de um bloco de código é considerada local a este
bloco. Variáveis instanciadas fora de qualquer bloco de código são variáveis globais.
Veja no exemplo a seguir: Atenção, os exemplos a seguir tem como objetivo demostrar
de maneira simples as diferenças entre os escopos local e global. Existem formas mais
“pitônicas” de se listar o conjunto de perguntas e respostas.
1 .Experimentos com variáveis globais
2
#variaveis globais
3
indice = 0
4
5
6 tuplaEstado = ("Rio de Janeiro",
7 "São Paulo",
8 "Minas Gerais",
9
10
11 "Bahia",
"Amazonas")
12
13 tuplaCapital = ("Rio de Janeiro",
14 "São Paulo",
15 "Belo Horizonte",
16 "Salvador",
17 "Manaus")
18
19
20
def main(args):
21
22 global indice
23 for index in range(0,4):
24 indice= indice + 1 #altera uma variável global
25 mostraCapital()
26
27 return 0
28
29
30
31 def mostraCapital():
global indice
32 estado= tuplaEstado[indice] #acessa uma variável global
33 capital= tuplaCapital[indice]
34
35 print (" A capital de ",estado, " é ", capital)
36
37
O resultado é:
Variáveis globais
Variáveis locais x globais
Observe que , dentro dos blocos das funções, as
variáveis indice, tuplaEstado e tuplaCapital foram declaradas como globais. Isto faz
com que o interpretador Python busque a variável global, ao invés de criar uma nova
variável local. Veja o que acontece se retirarmos a expressão global indice no bloco
main:
1 .Faltando com a declaração global
2
#variaveis globais
3
indice = 0
4
5
6 tuplaEstado = ("Rio de Janeiro",
7 "São Paulo",
8 "Minas Gerais",
9 "Bahia",
"Amazonas")
10
11 tuplaCapital = ("Rio de Janeiro",
12 "São Paulo",
13 "Belo Horizonte",
14 "Salvador",
15 "Manaus")
16
17
18
19
20
def main(args):
21
22
#retiramos a declaração da varaivel global
23 for index in range(0,4):
24 indice= indice + 1 #altera uma variavel global
25 mostraCapital()
26
27 return 0
28
29
30
31 def mostraCapital():
32 global indice
estado= tuplaEstado[indice] #acessa uma varaivel global
33 capital= tuplaCapital[indice]
34
35 print (" A capital de ",estado, " é ", capital)
36
37
O resultado é:
Erro com variável local
O que aconteceu? Simples, o interpretador considerou a variável indice como local.
Como não tinha sido atribuído nenhum valor a esta variável, perde o sentido somarmos
mais um(1) a uma variável que não tinha um valor. Daí a mensagem de erro.
Toda vez que uma nova variável é criada dentro de um bloco de programa, esta é uma
variável local. O mesmo nome pode ser utilizado em variáveis definidas em diferentes
blocos. Um bloco não pode alterar a variável local a outro bloco.
Se você precisa utilizar uma variável global, instancie a variável fora de qualquer trecho
de código , E informe ao interpretador para usar esta variável global. (expressão: global
nomeVariavel). Se você esquecer disto o interpretador irá criar uma variável local com
o mesmo nome!