PROGRAMAÇÃO -
PYTHON
ESTRUTURAS DE CONTROLO
ESTRUTURAS DE CONTROLO
• As estruturas de controlo avaliam o desenrolar das instruções de um programa. Estas
subdividem-se em:
– sequencial;
– de decisão ou seleção;
– de repetição ou ciclos.
ESTRUTURA SEQUENCIAL
• Neste tipo de estrutura, as instruções de um programa são executadas numa determinada
sequência sem que esta possa sofrer alterações através dos dados de entrada.
Pseudocódigo
Algoritmo Total_produto;
Variável quantidade: inteiro;
total, preco: real;
designa: texto;
Início
Escrever ("Digite a designação do produto");
Ler (designa);
Escrever ("Digite a quantidade do produto");
Ler (quantidade);
Escrever ("Digite o preço por unidade do produto");
Ler (preco);
total ← quantidade * preco;
Escrever ("O valor total do produto ", designa," é ",total);
Fim.
Programa Resultado
ESTRUTURAS DE DECISÃO OU
SELEÇÃO
• As estruturas de decisão ou seleção permitem escolher uma opção, de entre as exis-
tentes, para o desenvolvimento de um programa, executando sequências alternativas de acordo
com os dados de entrada.
• Este tipo de estrutura, no Python, subdivide-se em estruturas de seleção:
– simples;
– composta;
– encadeada;
– múltipla.
• No Python, a implementação de estruturas de decisão ou seleção, e de repetição ou ciclos,
implica a criação de blocos de instruções, ou seja, conjuntos de instruções a serem executadas,
uma após a outra, de cima para baixo, da esquerda para a direita.
• Obriga à utilização de (:) e de indentação, em que os dois pontos (:) definem o início de um
bloco de instruções e a indentação corresponde ao recuo das instruções em relação à sua
margem, sendo definida através da utilização de espaços em branco ou de tabulações.
• Através da criação de vários níveis de indentação, é possível definir diferentes blocos de
instruções.
ESTRUTURA DE SELEÇÃO SIMPLES
• Através da utilização da estrutura de seleção simples, as instruções apenas são executadas
quando a condição de seleção for avaliada com o valor lógico True; caso contrário, com o
valor lógico False, o programa continua a execução das instruções fora desta estrutura.
• Exemplo de um algoritmo em pseudocódigo e em fluxograma, que calcula a diferença entre
dois pesos, se o peso introduzido pelo utilizador for inferior a 70 kg, e o apresenta o
respetivo programa em linguagem Python.
• De notar que, neste caso, não aparecem as palavras Senão e Else, porque não é necessário
desenvolver o ramo False da estrutura.
Sintaxe Fluxograma
…
Se <expressão> Então
…
FimSe
…
Programa
Algoritmo peso_inf_70;
Variável dif, peso: real;
nome: texto;
Início
Escrever ("Digite o seu nome");
Ler (nome);
Escrever ("Digite o seu peso");
Ler (peso);
Se peso <70 Então
dif ← 70−peso;
Escrever (nome, "falta-lhe",dif," kg para atingir os 70 kg");
FimSe;
Escrever ("O programa vai terminar");
Fim.
Sintaxe Resultado
…
if <expressão>:
< bloco de instruções>
…
Programa
ESTRUTURA DE SELEÇÃO COMPOSTA
• Através da utilização da estrutura de seleção composta, podem existir duas opções
possíveis para o desenrolar das instruções do programa, que são selecionadas de acordo com
o valor lógico resultante da avaliação de uma condição ou expressão.
• Exemplo de um algoritmo em pseudocódigo e em fluxograma, que determina o maior de
dois números, e o apresenta o respetivo programa em linguagem Python.
Sintaxe Programa Fluxograma
… Algoritmo maior_de_2;
Se <expressão> Então Variável maior, num1, num2: inteiro;
… Início
Senão Escrever ("Digite um número inteiro");
… Ler (num1);
FimSe Escrever ("Digite um número inteiro diferente
… do anterior");
Programa Ler (num2);
Se num1 > num2 então
maior ← num1
Senão
maior ← num2;
FimSe;
Escrever ("O maior dos dois números é ",
maior);
Fim.
Sintaxe Resultado
…
if <expressão>:
< bloco de instruções>
else:
< bloco de instruções>
…
Programa
ESTRUTURA DE SELEÇÃO ENCADEADA
• Numa estrutura de seleção encadeada, podem existir várias opções encadeadas para o
desenrolar das instruções do programa. Cada uma destas opções pode ser selecionada de
acordo com o valor lógico, resultante da avaliação da sua condição ou expressão.
• Exemplo de um algoritmo em pseudocódigo e em fluxograma, que determina se dois
números são iguais entre si ou qual é o maior deles, e o respetivo programa em
linguagem Python.
Sintaxe Programa Fluxograma
… Algoritmo Maior_Igual_2;
Se <expressão> Então Variável num1, num2: inteiro;
… Início
Senão Se <expressão> Então Escrever ("Digite um número inteiro");
… Ler (num1);
Senão Escrever ("Digite outro número inteiro");
… Ler (num2);
FimSe Se num1 = num2 Então
FimSe Escrever ("Os números são iguais")
… Senão Se num1 > num2 Então
Escrever ("O maior é ",num1)
Senão Escrever ("O maior é ",num2);
FimSe;
FimSe;
Fim.
Sintaxe Resultado
…
if(expressão):
<bloco de instruções>
elif(expressão):
<bloco de instruções>
else:
<bloco de instruções>
…
Programa
ESTRUTURA DE SELEÇÃO MÚLTIPLA
• Numa estrutura de seleção múltipla, é possível selecionar uma de múltiplas opções para o
desenrolar das instruções do programa, de acordo com o valor de uma variável.
• Exemplo de um algoritmo em pseudocódigo e em fluxograma, que determina o dia da semana
de acordo com o valor inserido, e o respetivo programa em linguagem Python.
Sintaxe Programa
… Algoritmo Designa_dias;
Selecionar Caso <variável> Variáveis dia: inteiro;
<valor1>:… Início
… Escrever ("Insira um número inteiro de 1 a 7");
<valorn>: … Ler (dia);
Senão … Selecionar Caso Dia
FimSelecionarCaso 1: Escrever ("Segunda-feira");
… 2: Escrever ("Terça-feira");
3: Escrever ("Quarta-feira");
4: Escrever ("Quinta-feira");
5: Escrever ("Sexta-feira");
6: Escrever ("Sábado");
7: Escrever ("Domingo")
Senão Escrever ("Inseriu um número inválido");
FimSelecionarCaso;
Fim.
Fluxograma
Sintaxe Programa
…
match variável:
case 1: <bloco de instruções>
case 2: <bloco de instruções>
…
case _: <bloco de instruções>
…
Resultado
ESTRUTURAS DE REPETIÇÃO OU
CICLOS
• As estruturas de repetição ou ciclos permitem a iteração, ou seja, a repetição da execução
de um conjunto de instruções ou bloco de instruções de um programa.
• No Python, este tipo de estruturas subdivide-se em:
– ciclo While (Enquanto);
– ciclo For (Para).
De relembrar que, no Python, é obrigatória a utilização de indentação para a criação
de blocos de instruções, também na implementação de estruturas de repetição ou
ciclos, bem como na criação das estruturas de decisão ou seleção e nas funções
definidas pelo utilizador.
CICLO WHILE (ENQUANTO)
• O ciclo While é um tipo de estrutura de repetição em que o número de vezes a repetir a
execução do bloco de instruções é controlado pelo resultado da avaliação de uma condição ou
expressão lógica. Se o resultado da avaliação for True (Verdadeiro), o bloco de instruções é
executado. Se na primeira avaliação, como a condição ou expressão lógica é avaliada no início
da estrutura, o resultado for False (Falso), o bloco de instruções não chega a ser executado
uma única vez.
CICLO WHILE (ENQUANTO)
• Este ciclo pode, também, ser implementado quando se sabe inicialmente o número de vezes
que a execução do bloco de instruções vai ser repetida. Neste caso, é utilizada uma variável
contador destinada a controlar a execução do ciclo.
• Neste exemplo, o algoritmo apresentado em pseudocódigo e em fluxograma, e o respetivo
programa em linguagem Python, calcula o número de nomes inseridos pelo utilizador, em que
não se conhece previamente o número de repetições a executar.
Sintaxe Programa
… Algoritmo Conta_nomes;
Enquanto <expressão> Fazer Variável conta: inteiro;
<Bloco de instruções> nome: texto;
FimEnquanto; Início
… conta ← 0;
Escrever ("Digite um nome");
Ler (nome);
Enquanto nome <> "Fim" Fazer
conta ← conta + 1;
Escrever ("Digite um nome");
Ler (nome);
FimEnquanto;
Escrever ("Foram digitados ",conta," nomes");
Fim.
Fluxograma
Sintaxe Programa
…
while <expressão>:
<Bloco de instruções>
…
Resultado
CICLO FOR (PARA)
• O ciclo For é um tipo de estrutura de repetição em que inicialmente é conhecido o número
de vezes que será repetida a execução do bloco de instruções. Para tal, utiliza uma variável
de controlo do número de repetições. Estes vão sendo atribuídos à variável de controlo pela
ordem da sequência. Esta pode ser uma string, um conjunto de números inteiros obtidos
através da função range(), ou um conjunto de itens dos tipos de dados: list, tuple, set ou
dict.
• Exemplo de um algoritmo em pseudocódigo e em fluxograma, que calcula a média de n
números inteiros.
Sintaxe
…
Enquanto <expressão> Fazer
<Bloco de instruções>
FimEnquanto;
…
Programa
Algoritmo med_num;
Variáveis i, n, soma, num: inteiros;
media: real;
Início
Escrever ("Indique quantos inteiros positivos quer digitar");
Ler (n);
soma ← 0;
Para i de 0 Até n-1 Fazer
Escrever ("Indique um número inteiro");
Ler (num);
soma ← soma + num;
FimPara;
media ← soma / n;
Escrever ("A média dos números é ",media);
Fim
Fluxograma
Sintaxe
…
for <variável_controlo> in <sequência>:
<Bloco de Instruções>
…
• A sequência referida na sintaxe, pode ser implementada: por uma str (string); um conjunto de
números inteiros obtidos através da função range() e um conjunto de itens dos tipos de
dados: list, tuple, set ou dict.
• A função range() pode ser implementada no ciclo For (Para), permitindo gerar uma
sequência de números inteiros, dentro de um intervalo definido pelos valores atribuídos aos
seus parâmetros.
Sintaxe
range([start,] stop [, step])
Descrição dos parâmetros
Função Sequência gerada de
Start (início): corresponde ao primeiro número do range() números inteiro
intervalo; é um parâmetro opcional, que, por defeito, é range(8) 0, 1, 2, 3, 4, 5, 6, 7
considerado igual a zero;
Stop (fim): parâmetro obrigatório, cujo número range(2,8) 2, 3, 4, 5, 6, 7
indicado corresponde ao primeiro número externo ao range(2,8,2) 2, 4, 6
intervalo, ou seja, o último número do intervalo é
range(8,2,−1) 8, 7, 6, 5, 4, 3
obtido subtraindo o número do passo ao número
indicado em stop (fim); range(8,2,−2) 8, 6, 4
Step (passo): corresponde sempre a um valor inteiro, range(8,−2,−1) 8, 7, 6, 5, 4, 3, 2, 1, 0, −1
que pode ser positivo (incremento) ou negativo
range(0,4,1) 0, 1, 2, 3
(decremento). Desta forma, o valor do passo ao ser
adicionado, sucessivamente, ao valor anterior da range(−8,−2,−1) Intervalo vazio
sequência, permite gerar os valores do intervalo. É um
parâmetro opcional que, por defeito, é considerado igual
a um.
Sintaxe
…
for variável in range([Start,] Stop [, Step]):
<Bloco de Instruções>
…
Programa
Resultado
• Exemplo, em Python, relativo à implementação do ciclo For (Para) com o controlo das
repetições a ser efetuado a partir do conteúdo de uma variável do tipo str (string).
• O exemplo, apresentado é relativo à implementação do ciclo For, com a utilização de uma
variável iterável do tipo de dados string (prim_nome). Neste programa, a partir do primeiro
nome indicado pelo utilizador, é efetuada a contagem e apresentação dos caracteres
individualmente. Para tal, os caracteres do primeiro nome vão sendo atribuídos por iteração,
individualmente, à variável de controlo (c), pela ordem em que se encontram na string, sendo
contados (conta_c) e apresentados.
Sintaxe Programa
…
for variável in str:
<Bloco de Instruções>
…
Resultado
• Exemplo, em Python, relativo à implementação do ciclo For (Para), com o controlo das
repetições a ser efetuado a partir de um conjunto de itens de uma variável iterável do tipo de
dados list.
Sintaxe Programa
…
for variável in list:
<Bloco de Instruções>
…
Resultado
• Exemplo, em Python, relativo à implementação do ciclo For (Para), com o controlo das
repetições a ser efetuado a partir de um conjunto de itens de uma variável iterável do tipo de
dados tuple.
Sintaxe Programa
…
for variável in tuple:
<Bloco de Instruções>
…
Resultado
• Exemplo, em Python, relativo à implementação do ciclo For (Para), com o controlo das
repetições a ser efetuado a partir de um conjunto de itens de uma variável iterável do tipo de
dados set.
Sintaxe Programa
…
for variável in set:
<Bloco de Instruções>
…
Resultado
• Exemplo, em Python, relativo à implementação do ciclo For (Para), com o controlo das
repetições a ser efetuado a partir de um conjunto de itens de uma variável iterável do tipo de
dados dict.
Sintaxe Programa
…
for variável in dict:
<Bloco de Instruções>
…
Resultado
INSTRUÇÕES BREAK, CONTINUE E
PASS
• Nas estruturas de repetição do Python, ciclos For e While, para alterar a sua execução, são
colocadas numa estrutura de seleção (if) as instruções seguintes:
– break: interrompe a execução do ciclo, impedindo que este seja executado até à sua conclusão. O
programa continua com a execução das restantes instruções, existentes fora do ciclo;
– continue: interrompe a execução da iteração, continuando o ciclo a ser executado na iteração
seguinte;
– pass: não executa qualquer operação, sendo utilizada, por exemplo, para indicar a localização
destinada à colocação de instruções posteriormente.
Sintaxe
break
Programa
Sintaxe
break
Resultado
• Foi utilizado o método format(), na definição da formatação dos dados de saída, escritos pela
função print(). Este método tem a seguinte sintaxe:
format(valor\variável[,"especificação_formato"]).
• Em que os parâmetros podem ser descritos como:
– valor\variável: indica o item a ser formatado;
– especificação_formato: parâmetro facultativo, que permite definir a especificação do formato a
aplicar ao item, sendo composto, individualmente e de forma opcional, por:
[largura].[precisão][tipo],
• em que largura representa o número mínimo de caracteres que serão apresentados;
• a precisão representa o número máximo de casas decimais a apresentar;
• e o tipo corresponde à especificação do formato associado ao tipo de dados (principais caracteres d –
inteiro e f – float).
Sintaxe
continue
Programa
Sintaxe
continue
Resultado
Sintaxe
pass
Programa
Sintaxe
pass
Resultado
WHILE (ENQUANTO) COM AS
INSTRUÇÕES BREAK, CONTINUE E PASS.
Exemplo Programa
Exemplo Programa