Aprenda a programar em Python este verão (Parte V)
Atualmente são muitas as linguagens de programação ao dispor dos programadores e curiosos pela “arte” de programar. No entanto, segundo o ranking das mais populares, o Python é a mais popular. Este verão vamos publicar alguns tutoriais para começar a aprender esta poderosa linguagem.
Hoje vamos falar de mais capacidades básicas da programação: A capacidade de repetir uma operação várias vezes e a capacidade de tomar uma decisão baseada nas mudanças das condições dos dados apresentados ao programa.
numero=float(input(“Introduza um número”)) if = is_prime==True: print(“O número é primo”) else: print(“O número não é primo”) |
Para isso hoje vamos apresentar os ciclos while e for do Python (aproveitando para mencionar a função range(k,i,j)) e os elementos if, elif e else.
Começando por estes últimos:
If, elif, else:
Quando fazemos um programa há recorrentemente a necessidade de mudar o comportamento do programa consoante os dados introduzidos. Considere-se o seguinte problema: dada uma função is_prime(n) que retorna True se n for um número primo ou False caso contrário, queremos que o nosso programa nos pergunte por um número e nos diga se ele é primo ou não. Isso pode ser feito com recurso ao seguinte programa:
Com este pequeno programa se percebe o uso básico do if e do else. O if serve para verificar se uma determinada comparação é verificada e executar algum código nesse caso. O código associado ao else é executado caso a comparação em if não se verifique.
Agora subindo a fasquia: a função is_prime(n) foi modificada e caso o número introduzido não for passível de ser avaliado como primo (isto é se for introduzido um 0, um número negativo ou um número decimal) a função retorna o valor None. Isto leva a que a função possa retornar tanto True, False ou None. Como podemos agora fazer com o que programa escolha o print correto para cada retorno da função? Existem várias respostas. A mais simples é recorrendo ao elif:
numero=float(input(“Introduza um número”)) if = is_prime==None: print(“O número não pode ser avaliado como primo ou não-primo”) elif is_prime==False: print(“O número não é primo”) else: print(“O número é primo”) |
O número de elif que podem estar presentes num if-statement (nome dado ao bloco de instruções if+elif+else) é ilimitado, tal como é o número de if.
A diferença entre usar um if, vários elif e um else ou usar vários if e um else é que no primeiro caso só é executado o primeiro a ter uma comparação verdadeira, enquanto que numa série de if, todos o que forem verdadeiros são executados.
Ciclo for e função range(j,k,l):
O ciclo for é das maneiras mais simples em Python de repetir uma instrução n vezes. Isto leva a função incluída no Python range(j,k,l). Pedindo “ajuda” ao Python sobre o assunto:
>>> help(range) Help on class range in module builtins: class range(object) | range(stop) -> range object | range(start, stop[, step]) -> range object | | Returns a virtual sequence of numbers from start to stop by step. |
Os objetos desta função podem ser equiparados a listas. Por exemplo:
Portanto, vamos supor que queremos avaliar quais dos números entre 1 e 10 são primos. Podemos fazê-lo com o seguinte código (só corre em Python 3.x):
for number in range(1,11): #Note-se que para termos todos os números de 1 a 10 o limite superior da função range tem de ser 11 if is_prime(number)==True: print("O número %s é primo" % (number)) else: print("O número %s não é primo" % (number)) |
Que é equivalente a este:
for number in [1,2,3,4,5,6,7,8,9,10]: if is_prime(number)==True: print("O número %s é primo" % (number)) else: print("O número %s não é primo" % (number)) |
Ciclos while:
Os ciclos while são mais rudimentares que os ciclos for. Os ciclos while exigem uma sintaxe mais complexa.
A sintaxe básica de um ciclo while pode ser verificada no exemplo que se segue, que não é mais que todo o problema anterior reescrito para usar um ciclo while em vez de for.
num=1 #Inicialização da variável de contagem while num<=10: if is_prime(num)==True: print("O número %s é primo" % (num)) else: print("O número %s não é primo" % (num)) num+=1 #Atualização da variável de contagem - equivalente a escrever num+=1 |
As restantes potencialidades destes ciclos podem e devem ser exploradas pelos leitores, pois não há nada melhor para aprender do que experimentar.





















Obrigado por estes tutoriais, são fantásticos!