Instituto Federal de Mato Grosso do SulMarço/2024
04. Variáveis
Construção de Algoritmos
Prof. Rodrigo Duran
Nesta aula vamos:
-
Aprender a trabalhar com variáveis de dados em Python
Hoje nós vamos aprender o que são variáveis e como armazenar valores em variáveis usando uma atribuição. Vamos aprender sobre os tipos de variáveis, como nomear variáveis e alterar valores de variáveis.
Variáveis
Relembrando...
Até agora, os nossos programas eram essencialmente concretos. As expressões não eram dinâmicas pois seu resultado era sempre determinado estaticamente.
Mais do que isso, essas expressões não eram capazes de generalizar um modelo, e lidavam apenas com o caso específico.
Geralmente, em fórmulas matemáticas é comum armazenarmos os resultados parciais de um cálculo em um local. Isso possui duas vantagens:
- Isola elementos e nos permite calculá-los em separado. Pense no Delta na equação de Bhaskara \begin{gather} {\textstyle \ \frac{-b\ \pm \ {\textstyle \sqrt{\Delta }}}{2a}} \notag\\ \Delta \ =\ b^{2} \ -\ 4ac \end{gather}
- Ao nomear algo, damos sentido (implícito) a isso. Ao ler a equação sabemos o que Delta significa devido ao contexto. Mas o nome Delta, por si só, não tem esse poder. O contexto deve ser confirmado pelo comportamento do programa.
Regra #11: Uma variável é um local na memória do computador que tem um nome. Você pode criar e nomear variáveis no código.
Imagine o programa para calcular as seguintes funções aritméticas:
- O cubo do número 7, ou seja 7 3.
- O fatorial do número 7, ou seja 7!
- O fatorial do número 7, ao cubo, ou seja: 7! 3
7*7*7
7*6*5*4*3*2*1
(7*6*5*4*3*2*1)*(7*6*5*4*3*2*1)*(7*6*5*4*3*2*1)
Regra #12: Uma variável deve ser inicializada ao ser criada! Uma variável nunca fica vazia!
Regra #13: Você pode atribuir algo a uma variável para armazenar um valor na memória.
Regra #14: Uma variável só pode armazenar um valor em um determinado momento.
Em Python não existe uma palavra reservada para criar uma variável. A variável é criada no momento que você atribui um valor a ela usando o identificador =
Regra #15: O computador faz a atribuição resolvendo a expressão ("do lado direito") e armazenando um valor na variável destino.
cubo = 7*7*7
print(cubo)
fatorial = 7*6*5*4*3*2*1
print(fatorial)
cuboFatorial = fatorial*fatorial*fatorial
print(cuboFatorial)
Regra #16: O nome de uma variável é uma expressão.
pi = 3.141516
print(pi)
Regra #17: O computador executa os comandos em sequência.
nome = "Fulano de Tal"
nome = "Ciclano de Tal"
print(nome)
a = 10
b = a
print(a, b)
b = 20
print(a, b)
Regra #18: Quando o nome de uma variável aparece como uma expressão, ela é avaliada com o conteúdo daquela variável naquele momento.
Em Python, as atribuições não são resolvidas como equações matemáticas "de uma vez". Siga a Regra #15!
valor = 20outroValor = valor + 10outroValor = outroValor*2 print("O valor final é " + outroValor)
Nomeando Variáveis
Programas são feitos para serem lidos por humanos!
Portanto, use nomes de variáveis representativos. Apesar do nome da variável não atribuir diretamente uma função à variável (o programa é responsável por isso) é uma boa ideia usar nomes que nos ajudem a entender o que a variável deveria representar.
Apesar de não ser obrigatório, existe uma convenção de nomenclatura chamada camelCase que nos ajuda a nomear as variáveis: variáveis sempre iniciam com letras minúsculas e quando possuem um nome composto, a primeira letra do nome é capitalizada.
nome = "Rodrigo"segundoNome = "Duran"- Não use espaços nos nomes das variáveis. Underline (_) é possível, mas evitamos no camelCase.
- Números são permitidos, mas o nome da variável não pode iniciar com um número.
- Não use caracteres especiais (# $ ?)
- Variáveis não podem ter o mesmo nome que palavras reservadas do Python
- Caracteres maiúsculos são diferentes de caracteres minúsculos em Python (case sensitive)
minha idade = 23minha_idade = 231variavel = 13variavel1 = 13pass = "ifms2023"a = "José"A = "João"print(a, A)Tipos de Variáveis
Python é uma linguagem dinamicamente tipada. Ou seja, o tipo da variável é o mesmo do valor que ela armazena.
meunome = "José"
print(type(meunome))minhaIdade = 23
print(type(minhaIdade))O valor das variáveis pode ser atualizado a qualquer momento ...
Inclusive a variável pode ser atualizada com o seu próprio valor...
Mas nunca, jamais, sob hipótese alguma, "reaproveite" uma variável para servir a outro propósito dentro do código!
a = "José"
print(a, type(a))
a = 13
print(a, type(a))Posfácio
Relembrando ...
Um caso concreto...
print("Metade de 100 é ", 100/2)
Um caso "abstrato"?
valor = 100
frase = "Metade de " + valor + " é " + valor / 2
Nós definimos programas como dinâmicos pois seu resultado era definido pela interação de seu procedimento (algoritmo) com suas entradas.
As variáveis concedem um elemento de dinamicidade pois saem do caso concreto (um literal) para uma abstração do tipo (qualquer valor)
Entretanto, ao rodar o programa anterior, infinitas vezes, ele sempre apresentará o mesmo resultado : ele tem sempre a mesma entrada e executa o mesmo processo → logo terá sempre a mesma saída!
Nós (programadores) precisamos de algo que permita os usuários alterarem as entradas (valores) para que o programa possa efetivamente generalizar seus resultados (o modelo já está generalizado no algoritmo).
