Ir para o conteúdo

Regras e Erros

Os computadores são muito exigentes quanto às regras gramaticais e erros de digitação.

Olhe para:

print 5*0.6 - 0.5*9.81*0.6**2
write 5*0,6 - 0,5*9,81*0,6^2

Você consideraria essas duas linhas iguais?

  • Humanos dirão sim, computadores não;
  • A segunda linha não tem sentido dentro de um programa Python;
  • write não é uma palavra reservada em Python, a vírgula tem outro sentido diferente do matemático e o acento circunflexo não é exponenciação;
  • Precisamos ser extremamente precisos quando vamos escrever programas computacionais!
  • Toma tempo e experiência aprender isso.

A programação abre novas perspectivas...

People only become computer programmers if they're obsessive about details, crave power over machines, and can bear to be told day after day exactly how stupid they are.

G. J. E. Rawlins associate professor of computer science at Indiana University, Bloomington.

As pessoas só se tornam programadores de computador se eles são obsessivos com detalhes, anseiam poder sobre máquinas e podem suportar ser informados dia após dia exatamente como eles são estúpidos.

Gregory J. E. Rawlins

Variáveis

Guarde números em variáveis para fazer um programa mais legível. Na matemática nós estamos acostumados às variáveis, ou seja:

Nós podemos usar variáveis em um programa também, e isso torna o programa mais fácil de ser lido e entendido:

v0 = 5
g = 9.81
t = 0.6
y = v0*t - 0.5*g*t**2
print y

Esse programa abrange várias linhas de texto e usa variáveis, mesmo assim o programa executa os mesmos cálculos e dá a mesma saída que o programa anterior.

Existe grande flexibilidade para a escolha dos nomes das variáveis:

  • Na matemática nós normalmente usamos uma letra para a variável;
  • O nome da variável em um programa pode conter letras de a-z ou A-Z, símbolo de sublinhado \"_\" e dígitos de 0-9, mas não pode iniciar com um dígito;
  • Não se utilizam caracteres especiais em nomes de variáveis, como ã, é, $, &, etc;
  • Os nomes das variáveis são \"case-sensitive\" (ou seja, a é diferente de A).
velocidade_inicial = 5
acel_gravidade = 9.81
TEMPO = 0.6
PosicaoVerticalDaBola = velocidade_inicial*TEMPO - \ 
                         0.5*acel_gravidade*TEMPO**2
print PosicaoVerticalDaBola

Dica

Bons nomes para variáveis tornam um programa fácil de entender!

Palavras Reservadas

Algumas palavras em inglês são reservadas para o uso do Python. Certas palavras possuem um significado especial em Python e não podem ser usadas como nome de variáveis.

São elas:

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, with, while, yield.

Comentários

Comentários são uma forma útil de se explicar um programa.

Programa com comentários:

# programa para calcular a altura de uma bola
# em movimento vertical
v0 = 5    # velocidade inicial
g = 9.81  # aceleração da gravidade
t = 0.6   # tempo
y = v0*t - 0.5*g*t**2  # posição vertical
print y

Notas:

  • Tudo após o símbolo # em uma linha é um comentário e é ignorado pelo Python;
  • Comentários são utilizados para explicar o que as instruções do código significam, o que as variáveis significam, como o programador raciocinou quando escrever o programa, etc.
  • Comentários ruins não dizem nada a mais que o código:\ a = 5 # definir a como 5

Porém, os comentários não são sempre ignorados, como veremos mais adiante.

Caracteres e acentuação

Regra padrão: Programas Python, exceto os comentários e textos (strings), podem somente possuir caracteres do alfabeto inglês.

Mas, por questões de boas práticas e por generalizar a leitura do código, normalmente todo o programa, inclusive os comentários são escritos em inglês!

Algumas vezes mesmo caracteres especiais colocados em textos ou comentários podem gerar um erro no programa:

verdade = 'Não é não!'  # ã e é são permitidos em uma string?
print verdade

Pode gerar o erro:

SyntaxError: Non-ASCII character ...

A solução para esse tipo de erro e acrescentar na primeira linha do seu programa a codificação na qual você está escrevendo o código, para Linux e Mac:

# -*- coding: utf-8 -*-

E para windows:

# -*- coding: cp-1252 -*-

Formatação da saída

O comando printf nós dá grande flexibilidade formantando texto com números.

O resultado de cálculos normalmente contém números com algum significado, por exemplo:

Em t = 0.6s, y é 1.23m

É interessante controlar a formatação dos números como: quantidade de decimais, estilo (0,6 ou 6e-01), entre outros.

O comando interno do Python (ou palavra reservada) printf é útil para esse propósito:

t = 0.6
y = 1.2342
print 'Em t=%g s, y é %.2f m.' % (t, y)

O comando printf possui "espaços" onde as variáveis listadas ao final são acrescentadas ao texto formatado:
%g $ \leftarrow $ t, %.2f $ \leftarrow $ y

Exemplos de diferentes formatações com o printf:

%g         #formato mais compacto de um número real
%f         #notação decimal (-34.674)
%10.3f     #notação decimal com 3 decimais e 10 dígitos inteiros
%.3f       #notação decimal com 3 decimais e mínimo tamanho
%e         #notação científica (1.42e-02 ou 1.42E-02)
%E         #também vale como notação científica (1.42e-02 ou 1.42E-02)
%9.2e      #notação científica com 2 decimais e 9 dígitos inteiros
%d         #inteiro
%5d        #inteiro com 5 dígitos
%s         #string (texto)
%-20s      #string, com 20 caracteres, alinhado à esquerda
%%         #símbolo de porcentagem %

Se for necessária uma saída mais completa, textos (strings) com triplas aspas (""" ou ''') podem ser utilizados para saídas em múltiplas linhas que, ainda, podem ser combinadas com uma formatação do comando printf:

v0 = 5
g = 9.81
t = 0.6
y = v0*t - 0.5*g*t**2

print """
Em t=%f s, uma bola com
velocidade inicial v0=%.3E m/s
está posicionada na altura de %.2f m.
""" % (t, v0, y)

Salve como um arquivo do python (ex. saida_formatada.py) e rode o programa:

Terminal> python saida_formatada.py

Termos em Computação Científica

Alguns termos comumente usados em computação científica:

  • Programa, código ou aplicação (Program or code or application);
  • Código fonte (Source code, é o \"texto\" do programa)
  • Fragmento ou parte de Código/programa (Code/program snippet);
  • Executar ou rodar um programa (Execute or run a program);
  • Algoritmo (Algorithm, é a \"receita\" para um programa);
  • Implementação (Implementation, o ato de escrever o programa);
  • Verificação (Verification, o programa funciona como esperado?);
  • Erros e depuração (Bugs and debugging);

O significado de alguns termos em computação científica é geralmente diferente do significado do "dicionário".