Python - Decisões e repetições

Métodos numéricos dependem de testes e repetições. Usamos testes para decidir qual intervalo manter, quando parar um cálculo e se uma aproximação já atingiu a tolerância desejada.

Comparações

Operador Significado
== Igual a
!= Diferente de
< Menor que
> Maior que
<= Menor ou igual a
>= Maior ou igual a

Comando if

O comando if executa um bloco apenas se uma condição for verdadeira:

erro = 0.0008
tolerancia = 0.001

if erro < tolerancia:
    print("Parar o método")
else:
    print("Continuar calculando")

Indentação

Em Python, os espaços no início da linha indicam quais comandos pertencem ao bloco. No exemplo anterior, os comandos print estão dentro do if ou do else porque estão indentados.

Laço for

O laço for é usado quando sabemos quantas repetições serão feitas:

for i in range(5):
    print(i)

O comando range(5) gera os valores 0, 1, 2, 3 e 4.

for i in range(1, 6):
    print(i)

O comando range(1, 6) gera os valores 1, 2, 3, 4 e 5.

Laço while

O laço while é usado quando repetimos até uma condição mudar:

erro = 1
tolerancia = 0.001
iteracao = 0

while erro > tolerancia:
    iteracao = iteracao + 1
    erro = erro / 10
    print(iteracao, erro)

Exemplo: teste de sinal

Um teste comum no cálculo de zeros de funções é verificar se \(f(a)\cdot f(b)\) é negativo:

def f(x):
    return x**2 - 4

a = 1
b = 3

if f(a) * f(b) < 0:
    print("Existe raiz no intervalo")
else:
    print("Não houve mudança de sinal")

Atividade

Crie um laço while que comece com erro = 1 e divida o erro por 2 até que ele fique menor que 0.01.