Ir ao capítulo 1 - Instalando PythonIr ao capítulo 3 - Strings

Tópicos Abordados neste Capítulo

Antes de começarmos a escrever jogos de computador, nós devemos, primeiro, aprender alguns conceitos básicos de programação. Estes conceitos são: valores, operadores, expressões e variáveis. Nós não vamos começar a programar nesse capítulo, mas conhecer estes conceitos e nome das coisas fará com que aprender a programar seja muito mais fácil. Isso porque a maior parte da programação se resume a combinar alguns poucos conceitos simples para formar programas mais avançados.

Vamos começar aprendendo como usar o console interativo do Python.

Algumas coisas simples de matemática

Para abrir o IDLE no Windows, clique em Iniciar, depois em Programas, depois em Python 3.1 e, finalmente, em IDLE (Python GUI). Com o IDLE aberto, vamos fazer um pouco de matemática básica com Python. O console interativo pode funcionar como se fosse uma calculadora. Digite 2+2 no console e aperte a tecla Enter do seu teclado (em alguns teclados, ela pode se chamar Return ou Retorno). Como você pode ver na figura 2-1, o computador deve respoder com o número 4; a soma de 2+2.


Figura 2-1: Digite 2+2 no console.

Como você pode ver, nós podemos usar o console interativo do Python exatamente como se fosse uma calculadora. Isso ainda não é um programa porque nós ainda estamos aprendendo o básico nesse momento. O sinal de + diz ao computador para somar os números 2 e 2. Para subtrair números use o sinal de -, e para multiplicar use um asterisco (*), assim:

Tabela 2-1: Os vários operadores matemáticos do Python.
2+2adição
2-2subtração
2*2multiplicação
2/2divisão

Quando usados dessa forma, +, -, *, e / são chamados de operadores porque eles dizem ao computador realizar a operação escolhida nos números quem estão em volta dele.

Números Inteiros e de Ponto Flutuante

Em programação (e também na matemática), números como 4, 0 e 99 são chamados de inteiros. Números com fração ou casas decimais (como 3,5 e 42,1 e 5,0) não são inteiros. Em Python, o número 5 é um inteiro, mas se nós escrevermos ele como 5.0 ele não será mais um inteiro. Números com casas decimais são chamados números de ponto flutuante. Na matemática, 5,0 ainda é considerado um inteiro e é igual ao número 5, mas em programação o computador considera qualquer número com casa decimal como um número não inteiro.

Não use vírgula nos números

O console interativo do Python é útil para resolver problemas matemáticos rapidamente. Por exemple, tente executar 2.063 * 0.3581.

Quando eu digo "executar" eu quero dizer digite alguma coisa no IDLE e então aperte a tecla Enter ou Retorno (Return) do seu teclado. O resulta será algo do tipo:

>>> 2.063 * 0.3581
0.7387603
>>>

Isso foi muito mais rápido do que resolvar não mão! Resolver contas rapidamente foi o motivo pelo qual os computadores foram criados. Mas para que o Python entendo que conta nós queremos fazer, nós devemos escreve-lás em um formato específico.

Em Python, nós não usamos vírgula nos números. Nós escrevemos 2.063 ao invés de 2,063. O computador pode fazer o que você pedir para ele rapidamente, mas ele precisa que você diga a ele em um formato específico. Programar um computador é escrever instruções precisas para fazer com que o computador faça exatamente o que você quer porque, na realidade, computadore são burros. Nós precisamos dizer a eles exatamente o que queremos fazer.

Expressões

Tente digitar alguns destes probelmas matemáticos no console, apertando a tecla Enter depois de cada um deles.

2+2+2+2+2
8*6
10-5+6
2  +       2

Figura 2-2 mostra como o console interativo no IDLE irá ficar depois que você digitar as instruções acima.


Figura 2-2: Como a janela do IDLE ficará depois de executar as instruções.


Figura 2-3: Uma expressão é formada por valores e operadores.

Estes problemas matemáticos são chamados expressões. Computadores podem resolver milhÕes destes problemas em segundos. Expressões são formadas por valores (os números) conectados por operadores (os símbolos matemáticos). Vamos aprender exatamente o que valores e operadores são.

Como você pode ver nas últimas expressões do exemplo acima, você pode colocar quantos espaços você quiser entre os inteiros e estes operadores (mas tenha certeza de sempre começar no início da linha, sem espaços em branco na frente).

Números são um tipo de valor. Inteiros são um tipo de número. Mas, embora inteiros sejam números, nem todos os números são inteiros (por exemplo, frações e números com casas decimais como 2.5 são números que não são inteiros).

Isso é como um gato é um tipo de animal de estimação, mas nem todos os animais de estimação são gatos. Alguém poderia ter como animal de estimação um cachorro ou um carangueijo ermitão. Uma expressão é formada por valores (como os inteiros 8 e 6) conectados por um operador (como o símbolo de multiplicação *). Um único valor sozinho também é considerado uma expressão.

No próximo capítulo, nós vamos aprender como trabahar com texto nas expressões. Python não é limitado apenas à números. É muito mais do que uma calculadora rebuscada!

Avaliando Expressões

Quando um computador resolve a expressão 10 + 5 e encontra o valor 15, nós dizemos que ele avaliou a expressão. Avaliar uma expressão reduz a expressão a um único valor, da mesma forma que resolver um problema matemático reduz o problema a um único número: a resposta.

As expressões 10 + 5 e 10 + 3 + 2 possuem o mesmo valor, pois as duas são avaliadas em 15. Até mesmo valores únicos são considerados expressões: a expressão 15 é avaliada para o valor 15.

Entretanto, se nós apenas digitarmos 5 + no console interativo, você receberá uma mensagem de erro.

>>> 5 +
SyntaxError: invalid syntax

Esse erro ocorreu pois 5 + não é uma expressão. Expressões possum valores conectados por operadores, mas o operador + sempre espera conectar duas coisas em Python. Nós demos a ele apenas um. Por isso a mensagem de erro apareceu. Um erro de sintaxe significa que o computador não entende a instrução que você deu a ele porque você a digitou incorretamente. Python sempre irá mostrar uma mensagem de erro se você enviar uma instrução que ele não consegue entender.

Isso pode não parecer importante, mas grande parte da programação de computadores não é apenas dizer ao computador o que ele deve fazer, mas também saber exatamente como dizer isso ao computador.

Expressões Dentro de Outras Expressões

Expressões também podem conter outras expressões. Por exemplo, nas expressões 2 + 5 + 8, a parte 2 + 5 é uma expressão. Python avalia 2 + 5 em 7, então a expressão original se transforma em 7 + 8. Python então avalia essa expressão em 15.

Pense em uma expressão como se fosse uma pilha de panquecas. Se você colocar duas pilhas de panquecas juntas, você ainda terá uma pilha de panquecas. E uma grande pilha de panquecas pode ser formada de pilhas menores de panquecas que foram colocadas juntas. Da mesma forma, expressões podem ser combinadas para formar expressões maiores. Mas não importa o quão grande uma expressão é, ela também será avaliada em uma única resposta, exatamente como 2 + 5 + 8 é avaliada em 15.

Guardando Valores em Variáveis

Quando nós programamos, frequentemente nós iremos querer salvar os valores em que as nossas expressões são avaliadas para que nós possamos utilizá-los mais tarde em nosso programa. Nós podemos guardar valores em variáveis.

Pense nas variáveis como uma caixa que pode guardar valores. Você pode guardar valores dentro de variáveis com o símbolo = (chamado de operador de atribuição). Por exemplo, para guardar o valor 15 em uma variável chamada "spam", digite spam = 15 no console:

>>> spam = 15
>>>


Figura 2-4: Variáveis são como caixas que podem guardar valores dentro delas.

Você pode pensar em uma variável como uma caixa com o valor 15 dentro dela (como mostrada na Figura 2-4). O nome da variável "spam" é a etiqueta na caixa (para que nós possamos diferenciar uma variável da outra) e o valor armazenado dentro dela é como se fosse um bilhete dentro da caixa.

Quando você apertar Enter, você não verá nada como resposta, exceto uma linha em branco. A menos que você veja uma mensagem de erro, você pode assumir que a execução da instrução foi bem sucedida. O próximo >>> irá aparecer para que você possa digitar a próxima instrução.

Essa instrução (chamada de declaração de atribuição) cria uma variável spam e guarda o valor 15 nela. Diferentemente das expressões, declarações são instruções que não são avaliadas a nenhum valor, por isso que nenhum valor é exibido na próxima linha do console.

Pode ser confuso saber quais instruções são expressões e quais são declarações. Apenas lembre-se que se uma instrução for avaliada em único valor, é uma expressão. Caso contrário, é uma declaração.

Uma declaração de atribuição é escrito como uma variável, seguida de um símbolo de igual =, seguida de uma expressão. O valor em que a expressão é avaliada é aramzenada dentro da variável. O valor 15 por si só é uma expressão. Expressões formadas por um único valor são fáceis de se avaliar. Estar expressões são avaliadas apenas em seu próprio valor. Por exemplo, a expressão 15 é avaliada em 15!

Lembre-se, variáveis guardam valores, não expressões. Por exemple, se nós tivéssemos a declaração, spam = 10 + 5, então a expressão 10 + 5 seria primeiro avaliada em 15 e então o valor 15 seria armazenado na variável spam.

A primeira vez que você armazenar um valor em uma variável usando uma declaração de atribuição, Python irá criar essa variável. Todas as vezes depois disso, uma declaração de atribuição irá apenas substituir o valor aramzenado naquela variável.

Agora vamos ver se nós criamos a nossa variável corretamente. Se nós digitarmos apenas spam no console, deveremos ver que valor está armezenado dentro desta variável spam.

>>> spam = 15
>>> spam
15
>>>

Agora, spam é avaliado para o valor armazenado dentro da variável, 15.

E aqui está uma mudança interessante. Se nós agora digitarmos spam + 5 no console, nós recebemos o inteiro 20, assim.

>>> spam = 15
>>> spam + 5
20
>>>

Isso pode parecer estranho mas faz todo o sentido quando nós lembramos que nós associamos o valor de spam para 15. Como nós associamos o valor da variável spam para 15, escrevendo spam + 5 é como escrever a expressão 15 + 5.

Se você tentar usar uma variável antes de criá-la, Python lhe dará um erro porque nenhuma variável com aquele nome foi criada ainda. Isso também acontece se você digitar o nome errado de uma variável

Nós podemos mudar o valor armazenado em uma variável executando uma outra declaração de associação. Por exemplo, tente o seguinte:

>>> spam = 15
>>> spam + 5
20
>>> spam = 3
>>> spam + 5
8
>>>

Na primeira vez em que executamos spam + 5, a expressão é avaliada em 20, pois nós armazenamos o valor 15 dentro da variável spam. Mas quando nós executamos spam = 3, o valor 15 é substituído, ou sobrescrito, com o valor 3. Agora, quando nós executamos spam + 5, a expressão é avaliada em 8 porque o valor de spam agora é 3.

Para descobrir qual o valor atual armazenado em uma variável, apenas digite o nome da variável no console e aperte Enter.

Agora aqui está algo interessanto. Como uma variável é apenas um nome para um valor, nós podemos escrever expressões com variáveis dessa forma:

>>> spam = 15
>>> spam + spam
30
>>> spam - spam
0
>>>

Quando a variável spam tem o valor inteiro 15 armezenado nela, executando spam + spam é o mesmo que executar 15 + 15, que é avaliado em 30. E spam - spam é o mesmo que 15 - 15, que é avaliado em 0. As expressões acima usam a variável spam duas vezes. Você pode usar variáveis quantas vezes você quiser em expressões. Lembre-se que o Python irá avaliar o nome da variável ao valor que está armazenado dentro da variável, todas as vezes que a variável é utilizada.

Nós podemos até usar o valor amrmazenado na variável spam para associar à spam um novo valor:

>>> spam = 15
>>> spam = spam + 5
20
>>>

A declaração de associação spam = spam + 5 é como dizer, "o novo valor da variável spam será o valor atual de spam mais cinco." Lembre-se que a variável do lado esquerdo do símbolo = será associado ao valor que a expressão do lado direito é avaliada. Nós podemos inclusive continuar aumentando o valor armazenado em spam em 5 várias vezes:

>>> spam = 15
>>> spam = spam + 5
>>> spam = spam + 5
>>> spam = spam + 5
>>> spam
30
>>>

Usando Mais de Uma Variável

Quando nós programamos, nós nem sempre iremos querer nos limitarmos à apenas uma única variável. Frequentemente nós iremos precisar usar diversas variáveis.

Por exemplo, vamos associar valores diferentes a duas variáveis chamadas ovos e assobio For example, let's assign different values to two variables named ovos and assobio, assim:

>>> assobio = 10
>>> ovos = 15

Agora a variável assobio tem 10 armazenado nela, e ovos tem 15 dentro dela.


Figura 2-5: As variáveis "assobio" e "ovos" possuem valores armazenados dentro delas.

Sem mudar o calor em nossa variável spam, vamos tentar armazenar um novo valor para a variável spam. Execute spam = assobio + ovos no console e em seguida execute spam no console para ver o novo valor de spam. Você consegue imaginar qual será?

>>> assobio = 10
>>> ovos = 15
>>> spam = assobio + ovos
>>> spam
25
>>>

O valor em spam é agora 25 pois quando nós somamos assobio e ovos nós estamos somando os valores armazenados dentro de assobio e ovos.

Sobrescrevendo Variáveis

Mudar o valor armazenado dentro de uma variável é simples. Apenas execute outra declaração de associação com a mesma variável. Veja o que acontece quando você executa o seguinte comando no console interativo:

>>> spam = 42
>>> print(spam)
42
>>> spam = 'Oi'
>>> print(spam)
Oi

Inicialmente, a variável spam tinha um inteiro 42 guardado dentro dela. Por isso que o primeiro print(spam) imprime 42. Mas quando nós executamos spam = 'Oi', o valor 42 é jogado fora da variável e esquecido pois o novo valor da string 'Oi' é armazenada dentro da variável spam.

Substituindo o valor de uma variável com um novo calor é chamado sobrescrever o valor. É importante saber que o valor antigo é permanentemente esquecido. Se você quiser lembrar esse valor para poder usá-lo mais tarde no seu programa, guarde-o em uma variável diferente antes de sobrescrever o valor:

>>> spam = 42
>>> print(spam)
42
>>> oldSpam = spam
>>> spam = 'Oi'
>>> print(spam)
Oi
>>> print(oldSpam)
42

No exemplo acima, antes de sobrescrever o valor em spam, nós copiamos esse valor em uma variável chamada oldSpam. Nesse momento, tanto spam quanto oldSpam guardam o valor 42. Na linha seguinte, a string 'Oi' é armazenada em spam mas oldSpam permanece igual.

Sumário

Neste capítulo você aprendeu o básico sobre escrever instruções em Python. Python precisa que você diga a ele exatamente o que fazer em uma forma expecífica, pois computadores não tem bom senso e entende apenas instruções muito simples. Você aprendeu que Python pode avaliar expressões (ou seja, reduzir a expressão em um único valor), e que expressões são valores (tais como 2 ou 5) combinados com operadores (tais como + or -). Você também aprendeu que você pode armazenar valores dentro de variáveis para que o seu programa possa se lembrar delas e possa utilizá-las mais tarde.

No próximo capítulo, nós iremos cobrir mais alguns conceitos básicos, e você irá escrever o seu primeiro programa!

Ir para o capítulo 1 - Instalando PythonIr para o capítulo 3 - Strings