Mandar um café pro programador

Pode me ajudar a transformar cafeína em código?

Variáveis em Python

No tutorial anterior, falamos sobre os tipos de dados, onde enfatizamos o estudos dos números, strings e booleanos.

Agora vamos ver onde e como armazenamos esses dados, estudando as variáveis em Python.

Leia também:

Eu quero obter certificado Python Progressivo e Entrar no Mercado de Trabalho!


Armazenando dados na memória

Quando você liga seu computador e abre seu e-mail ou Facebook, provavelmente ele já faz o login diretamente. Mas, como eles sabem qual sua conta? Seu e-mail e senha?

Simples: estas informações estavam guardadas em algum lugar.

Tem algum aplicativo de música no celular ou rádio no carro?
Se você desligar um dia e tiver em uma música do Rush, nos 21min e 12s, quando ligar novamente, vai abrir naquela música, naquele tempo da música.

Mágica? Bruxaria? Sorte?
Óbvio que não, aquela informação foi guardada em algum lugar.

E o carrinho de compras dos sites?
Você entra, escolhe uns livros de Python pra comprar...desiste de comprar.
Quando voltar no site, vai estar lá ainda as opções que queria.

Como isso acontece?
Certamente isso ficou guardado em algum lugar, essa informação. Concorda ?

É aí que entram as variáveis.



Variável em Python

A maneira na qual vamos armazenar informações, dados, através da programação Python, é usando variáveis.

Variável nada mais é que um nome que vamos dar a um determinado bloco de memória. Quando o computador quer salvar, por exemplo, o número de IP de um usuário no bloco de memória 0xH2112 , é muito ruim para um humano (programador), ter que ficar usando esses números, são difíceis de decorar e manipular.

Ao invés disso, criamos uma variável, por exemplo, de nome 'ip_usuario', e pronto, sempre que quisermos usar esse dado, usamos a variável 'ip_usuario', ao invés de ter que usar diretamente o bloco de memória onde esses dados estão armazenados.

Um pouco teórico, não é? Vamos deixar de papo e partir pra prática.

Como usar variáveis em Python

Para criarmos uma variável em Python, temos simplesmente que fazer uma declaração de atribuição.

Vamos criar, por exemplo, uma variável que vai armazenar um número, sua idade, por exemplo. O nome dela vai ser 'idade' (uau, que original).

Vamos declarar essa variável (dizer ao Python: 'ei, se liga, é uma variável, ok?') e vamos atribuir a ela um valor, no caso, um número inteiro positivo.

Se você tem 18 anos e quer atribuir esse valor a uma variável chamada 'idade', basta fazer:

idade = 18

Sim, só isso. O Python vai entender que 'idade', é uma variável, é algo seu, que você programador criou. Vai alocar (reservar) um espaço na memória (um espaço localizado no endereço 0xFFF4h , por exemplo), e lá vai guardar o valor 18.

Sempre que quiser imprimir essa idade, usar em um programa pra saber se pode dirigir, se pode votar etc etc, não precisa decorar o endereço 0xFFF4h de memória, apenas use a variável 'idade', ela automaticamente vai ser uma referência para aquele endereço de memória.



Imprimindo variáveis na tela

Vamos criar uma variável que, dessa vez, armazenar uma string.
Essa variável vai se chamar 'texto', e vamos colocar lá a string 'Curso Python Progressivo'.

Basta fazermos isso em nosso código Python:

texto='Curso Python Progressivo' 

Se escrever essa linha e rodar, parece que não acontece nada. Mas acontece: o Python vai armazenar um espaço de memória e lá vai guardar o texto Curso Python Progressivo, depois vai encerrar o programa, pois é só isso que seu código faz.

Não é porque não apareceu nada na tela que nada ocorreu. Ocorreu, mas por trás dos panos, ok?

Mas como dissemos antes, a função print serve para imprimir (exibir) na tela alguma coisa (texto, número, booleano etc). Mas a variável 'texto' armazena uma string...

...então, para imprimir ela, basta programar o seguinte código:

texto='Curso Python Progressivo'
print texto

Veja como fica o código (janela de cima) e o resultado no interpretador Python (janela de baixo):

Curso de Python online grátis

Imprimindo mais de uma variável

A função print do Python é bem mais poderosa e versátil do que já estudamos.
Podemos, por exemplo, imprimir mais de um dado no mesmo comando, basta separarmos por vírgula.

O programa a seguir armazena sua idade em uma variável e seu nome em outra. Em seguida, imprime tudo numa mesma printada violenta:

nome='Maria Joaquina de Amaral Pereira Goes'
idade=18
print nome,idade

Faça e veja o resultado.

Note que a variável idade armazena um número, e não uma string, porém, a função print mostra ela do mesmo jeito.
Porém, saiu tudo na mesma linha, um nome e um número.

Ficou um pouco feio, vamos embelezar um pouco.
Digite e rode o seguinte código:

idade=18
nome='Maria Joaquina de Amaral Pereira Goes'
print('Nome:', nome)
print('Idade:', idade)

Aaaaah! Agora sim! Fala sério, ficou bem bonitinho e bem arrumadinho o resultado, vejam:

Apostila de Python completa para download

Exercícios usando variáveis em Python

Exercício 01:

Crie um programa que exiba na tela seu nome completo, sua cidade, estado e data de nascimento.

Para cada dado desse, crie uma variável apropriada. Use nomes que façam sentido ('cidade', 'estado' etc, nada de ficar criando variáveis com nomes 'a', 'b', 'x' ou 'y' - isso é um péssimo hábito entre programadores).

Exiba tudo na tela, bonitinho e organizado.

Exercício 02:

Crie um programa que exiba na tela o texto 'A melhor banda do mundo é [nome da banda] e a melhor música é [nome da música]'.

O nome da banda e o nome da música devem estar declarados em duas variáveis diferentes.

A saída deve estar assim:

Apostila de Python

PS: Se estiver algum problema para rodar o código, pode ser problema para exibir alguns caracteres como 'é' e 'ú' de música.
Para resolver esse problema, adicione o seguinte código no início de seu script:
# encoding: utf-8

Mudando valores de variáveis

Sabe por que se chama variável?
Porque varia.

Como aprender a programar em Python

Aliás, é extremamente normal as variáveis mudarem de valor, no decorrer de um programa.

Vamos dar um exemplo agora usando número decimal.
Inicialmente, vamos dar o valor '0.0' para uma variável, em seguida mudar para 5000.00 por exemplo:

salario=0.0
print('Antes de ser programdor eu ganhava R$',salario,'por mes')

salario=5000.0
print('Agora virei programador Python e ganho R$',salario)

O script vai sempre imprimir o valor que está no endereço de memória apontado pela variável 'salario'.

Inicialmente, lá na memória, tá armazenado o valor 0.0, então o primeiro print imprime 0.0

Em seguida, mudamos o valor lá da memória pra 5000.0
O valor 0.0 já era, mudou, se perdeu, agora tem gravado cinco mil lá no bloco de memória, e como a variável 'salario' aponta pra esse endereço, vai imprimir o que tiver lá, e agora imprime 5000.0

Perfeitamente lógico e simples, não é ?
Isso se chama reatribuir valor a uma variável.

Regras para declarar uma variável

Você não sai escolhendo qualquer nome para uma variável.
Algumas palavras são ditas 'reservadas', pois são de uso da linguagem, que são:

['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']

Outras regras para declarar uma variável:
  • Deve começar com letra ou underscore _ (underline)
  • Após o primeiro caractere, pode usar dígitos
  • Maiúsculo é diferente de minúsculo: a variável 'python_progressivo' é diferente da variável 'Python_Progressivo' ,mudou um caractere qualquer entre maiúsculo e minúsculo, muda tudo. 'teste' é uma coisa e 'Teste' é outra, cuidado com isso!

Outra dica importante, que não é regra, mas mostra que você é um bom programador Python, é usar variáveis que façam sentido.

Se você for contratado para fazer o sistema do Detran, use variáveis de nome 'carro', 'velocidade', 'cnh', 'validade' ao invés de 'a', 'b', 'c'...pois só de passar os olhos no nome das primeiras, você entende que tipo de informação ela está armazenando.

No começo, isso pode parecer inútil. Mas a medida que for criando programas maiores e mais complexos, de centenas de linhas de códigos ou mais, isso é essencial, é uma chamada boa prática de programação.

É bem comum nomes de variáveis terem mais de uma palavra:
pythonprogressivo

Porém, as vezes é ruim de ler. Algumas coisas facilitam, como:
python_progressivo

Ou o camelCase, que é usar a primeira letra da primeira palavra minúscula, e a primeira letra das próximas palavras maiúsculas:
cursoPythonProgressivo

Facilita ler, não é verdade?

Exercício: O seguinte código imprime todas as palavras reservadas (keywords) do Python, rode ele e escreva nos comentários o resultado:

import keyword
print(keyword.kwlist)

8 comentários:

  1. ['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']

    ResponderExcluir
  2. False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']

    ResponderExcluir
  3. Tem como digitar todo o bloco de programa e só depois fazê-lo rodar? Ex.:
    idade=18
    nome='Maria Joaquina de Amaral Pereira Goes'
    print('Nome:', nome)
    print('Idade:', idade)

    ResponderExcluir
    Respostas
    1. Da uma olhada nessa lib https://docs.python.org/3.7/library/functools.html?highlight=partial#functools.partial

      Espero que seja o que tu precisa.

      Excluir
  4. Não, não tem. Tudo deve ser inserido em uma instrução print. Quando formos processar arquivos, ai teremos a oportunidade de escrever um bloco de programa.

    ResponderExcluir
  5. ['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']

    ResponderExcluir

Bora fazer evoluir o ensino da Programação no Brasil ?

Que tal apoiar e fazer crescer o ensino da programação no Brasil ?

Ajudar nosso país a crescer e se desenvolver cada vez mais, tecnologicamente?

Clica abaixo pra saber mais!

Apoiar o Projeto Progressivo