Já vimos dois desses controles de estruturana parte II dessa série sobre experimentos com Python: os laços de repetição for e while. O laço for executa os comandos no bloco indentado tantas vezes quantas for o número dado por um contador de eventos. Com este laço for podemos, por exemplo, executar um mesmo bloco de comandos de acordo com o valor armazenado numa variável enviada por um sensor; e depois seguir o fluxo normal do programa.
O laço while não tem contador, ele toma sua decisão de executar um bloco de comandos baseado no resultado de uma expressão e as variáveis nela contida: enquanto as variáveis mantiverem o resultado da expressão verdadeiro, o laço while fica executando repetidamente o bloco indentado; quando falso, interrompe a execução e deixa o fluxo do programa seguir seu caminho. Por exemplo: Vá incrementando a variável var_1 enquanto var_2 > var_3.
Mais tarde, talvez possamos fazer experimentos com o quanto evoluímos desse comportamento para as máquinas aprenderem sozinhas, com dados e matemática. Seguindo em frente nessa parte III, vamos ver com mais detalhes o controle de estrutura if…else em Python, que vimos en passant na parte II.
Ainda na parte II, conhecemos a plataforma on-line Google Colaboratory (Colab) para testarmos nossos scripts em Python cada vez maiores. Vamos continuar com essa plataforma nos experimentos dessa parte III. Por fim, falamos dos operadores matemáticos, dos de comparação e dos lógicos. Os primeiros dão como resultado números inteiros ou fracionários. Os outros dois dão saídas booleanas: verdadeiro ou falso (‘1’ ou ‘0’). Existe também no Python o operador de números complexos, do tipo: z = 3 + 2j.
O CONTROLE DE ESTRUTURA IF…ELSE
O controle de estrutura if é parecido com o controle while visto antes; só que, aqui, se uma dada condição for atendida (for verdadeira) o bloco de comandos indentado vai ser executado uma única vez; depois o fluxo do programa segue normalmente. No while o bloco fica sendo executado enquanto essa condição for verdadeira: o fluxo do programa fica retido pelo controle de estrutura. Parece sutil a diferença, não? Se o resultado for falso, em ambos os controles, o bloco ou deixa de ser executado ou é interrompido. A sintaxe desse controle de estrutura if tem o seguinte formato:
if <expressão>:
<comando_1>
<comando_2>
<comando_3>