2 Python Estruturado
2 Python Estruturado
Python estruturado
Prof. Humberto Henriques de Arruda
Descrição
Propósito
Preparação
Objetivos
Módulo 1
https://stecine.azureedge.net/repositorio/00212ti/00213/index.html# 1/53
29/10/2023, 11:57 Python estruturado
Módulo 2
Módulo 3
Bibliotecas em Python
Módulo 4
Eventos em Python
Introdução
Programar significa, como em qualquer disciplina, aprender
ferramentas que permitam desenvolver melhor a sua atividade. Ao
conhecer os conceitos básicos de programação, o estudante
desenvolve habilidades iniciais para escrever seus primeiros
programas. No entanto, é difícil imaginar que aplicações
profissionais sejam feitas totalmente baseadas apenas nesses
conceitos básicos.
https://stecine.azureedge.net/repositorio/00212ti/00213/index.html# 2/53
29/10/2023, 11:57 Python estruturado
Vamos começar!
video_library
Emprego de estruturas de decisão e
repetição
Estruturas de decisão
Tratamento das condições
https://stecine.azureedge.net/repositorio/00212ti/00213/index.html# 3/53
29/10/2023, 11:57 Python estruturado
As estruturas de controle permitem selecionar quais partes do código
(chamadas de estruturas de decisão) serão executadas e repetir blocos
de instruções com base em algum critério, como uma variável de
controle ou a validade de alguma condição (denominadas estruturas de
repetição). Neste módulo, vamos conhecer as estruturas de decisão e
de repetição em Python.
Python C
Atenção!
Python C
if <condição>: if <condição> {
Instrução fora do if }
Python C
if <condição>: if <condição> {
https://stecine.azureedge.net/repositorio/00212ti/00213/index.html# 4/53
29/10/2023, 11:57 Python estruturado
Python C
else: } else {
Instrução fora do if }
Python
content_copy
1 if <condição 1>:
2 Bloco de código que será executado caso condiçã
3 elif <condição 2>:
4 Bloco de código que será executado caso condição
5 else:
6 Bloco de código que será executado caso condiçã
A estrutura elif.
Exercício 1
info_outlineTUTORIAL
d content_copyCOPIAR
Python3
null
null
https://stecine.azureedge.net/repositorio/00212ti/00213/index.html# 5/53
29/10/2023, 11:57 Python estruturado
play_arrow
Perceba que a indentação precisa ser ajustada, uma vez que o último
else é relativo ao elif. Por isso, eles precisam estar alinhados.
Estruturas de repetição
Estruturas de repetição for
Simples
Ela pode ser chamada de maneira simples, tendo apenas com um
argumento. Nesse caso, a sequência começará em 0 e será
incrementada de uma unidade até o limite do parâmetro passado
(exclusive). Exemplo: range(3) cria a sequência (0, 1, 2).
Não iniciadas em 0
Para que a sequência não comece em 0, pode-se informar o início e o
fim como parâmetros. Lembre-se de que o parâmetro fim não entra na
lista (exclusive o fim). O padrão é incrementar cada termo em uma
unidade. Ou seja, a chamada range(2, 7) cria a sequência (2, 3, 4, 5, 6).
Python
content_copy
https://stecine.azureedge.net/repositorio/00212ti/00213/index.html# 6/53
29/10/2023, 11:57 Python estruturado
Python C
A estrutura for
Elaborada por Humberto Henriques de Arruda
Exercício 2
info_outlineTUTORIAL
d content_copyCOPIAR
Python3
null
null
play_arrow
https://stecine.azureedge.net/repositorio/00212ti/00213/index.html# 7/53
29/10/2023, 11:57 Python estruturado
Sequência 2
Suponha que você queira soletrar o nome informado pelo usuário. Uma
possível implementação está demonstrada a seguir (no arquivo
disponibilizado na introdução, trata-se do código 3).
Exercício 3
info_outlineTUTORIAL
d content_copyCOPIAR
Python3
null
null
play_arrow
https://stecine.azureedge.net/repositorio/00212ti/00213/index.html# 8/53
29/10/2023, 11:57 Python estruturado
Exercício 4
info_outlineTUTORIAL
d content_copyCOPIAR
Python3
null
null
play_arrow
Python C
https://stecine.azureedge.net/repositorio/00212ti/00213/index.html# 9/53
29/10/2023, 11:57 Python estruturado
laço seja encerrado.
Atenção!
Para que o exemplo seja executado corretamente, deve-se inserir, no
campo Input do emulador, uma sequência de palavras, uma por linha,
sendo que a última tem de ser a palavra “sair”.
Exercício 5
info_outlineTUTORIAL
d content_copyCOPIAR
Python3
null
null
play_arrow
https://stecine.azureedge.net/repositorio/00212ti/00213/index.html# 10/53
29/10/2023, 11:57 Python estruturado
antes da iteração. após a iteração.
close
O laço while testa e O laço do-while executa
executa caso a e testa.
condição seja
verdadeira.
Python
content_copy
1 while True:
2 Bloco que será repetido indefinidamente
Exemplo
Você deseja criar uma aplicação que permaneça por meses ou anos
sendo executada, registrando a temperatura ou a umidade de um
ambiente. Logicamente, você possui essa informação disponível a partir
da leitura de algum sensor. Você, portanto, precisa tomar cuidado e ter a
certeza de que seu uso é realmente necessário para evitar problemas de
consumo excessivo de memória.
A instrução break
Atenção!
Para que o exemplo seja executado corretamente, deve-se inserir, no
campo Input do emulador, uma sequência de palavras, uma por linha,
sendo que a última tem de ser a palavra “sair”.
https://stecine.azureedge.net/repositorio/00212ti/00213/index.html# 11/53
29/10/2023, 11:57 Python estruturado
Exercício 6
info_outlineTUTORIAL
d content_copyCOPIAR
Python3
1 while True:
2 palavra = input('Entre com uma palavra: \n')
3 if palavra == 'sair':
4 break
5 print('Você digitou sair e agora está fora do laço
null
null
play_arrow
Caso haja vários laços aninhados, o break será relativo ao laço em que
estiver inserido.
Python
content_copy
1 while True:
2 print('Você está no primeiro laço.')
3 opcao1 = input('Deseja sair dele? Digite SIM pa
4 if opcao1 == 'SIM':
5 break # este break é do primeiro laço
6 else:
A instrução continue
A instrução continue também funciona da mesma maneira em C e em
Python. Ela atua sobre as repetições dos laços for e while, como a
instrução break, mas não interrompe todas as repetições do laço. Essa
instrução interrompe apenas a iteração corrente, fazendo com que o
laço passe para a próxima iteração.
Exercício 8
info_outlineTUTORIAL
d content_copyCOPIAR
Python3
null
https://stecine.azureedge.net/repositorio/00212ti/00213/index.html# 12/53
29/10/2023, 11:57 Python estruturado
null
play_arrow
A instrução pass
A instrução pass atua sobre a estrutura if, permitindo que ela seja
escrita sem outras instruções a serem executadas caso a condição seja
verdadeira. Assim, podemos concentrar as instruções no caso em que a
condição é falsa.
Exercício 9
info_outlineTUTORIAL
d content_copyCOPIAR
Python3
null
null
play_arrow
https://stecine.azureedge.net/repositorio/00212ti/00213/index.html# 13/53
29/10/2023, 11:57 Python estruturado
Questão 1
Python
content_copy
1 s = 0
2 for i in range(5):
3 s += 3*i
4 print(s)
A 0 3 9 18 30
B 0 3 6 9 12
C 30
D 45
E 3 6 9 12 15
O laço for vai ser repetido cinco vezes, já que range(5) retorna a
sequência (0, 1, 2, 3, 4). Vale observar que a instrução print(s) está
fora do laço for, o que a levará a ser executada apenas uma vez
quando o laço se encerrar. Isso elimina as opções A e B. A variável s
começa com valor zero e é acrescida, a cada iteração, do valor 3*i,
sendo que i pertence à sequência (0, 1, 2, 3, 4). Ou seja, s recebe
estes acréscimos: 0 + 3 + 6 + 9 + 12. Assim, ela termina o laço com
o valor 30, que será impresso pela instrução print(s).
Questão 2
Python
content_copy
1 s = 0
2 a = 1
https://stecine.azureedge.net/repositorio/00212ti/00213/index.html# 14/53
29/10/2023, 11:57 Python estruturado
3 while s < 5:
4 s = 3*a
5 a += 1
6 print(s)
A 9
B 3 6
C 3 3
D 3 6 9 12
E 0369
https://stecine.azureedge.net/repositorio/00212ti/00213/index.html# 15/53
29/10/2023, 11:57 Python estruturado
Vamos começar!
video_library
Emprego de procedimentos e funções
Visão geral
Características gerais dos subprogramas
Definições básicas
https://stecine.azureedge.net/repositorio/00212ti/00213/index.html# 16/53
29/10/2023, 11:57 Python estruturado
Exercício 10
info_outlineTUTORIAL
d content_copyCOPIAR
Python3
null
null
play_arrow
https://stecine.azureedge.net/repositorio/00212ti/00213/index.html# 17/53
29/10/2023, 11:57 Python estruturado
Parâmetros, procedimentos e
funções
Parâmetros
Usualmente, um subprograma executa cálculos e operações a partir de
dados que ele deve processar. Há duas maneiras de o subprograma
obter esses dados: acessar variáveis não locais, mas visíveis para o
subprograma, ou pela passagem de parâmetros.
Exercício 11
info_outlineTUTORIAL
d content_copyCOPIAR
Python3
null
null
play_arrow
https://stecine.azureedge.net/repositorio/00212ti/00213/index.html# 18/53
29/10/2023, 11:57 Python estruturado
Atenção!
Retornar um valor é diferente de imprimir na tela. Ao utilizar a função
print(), ocorre apenas a impressão de algo nela, o que não significa o
retorno de qualquer função definida pelo usuário.
Procedimentos e funções
Os subprogramas podem ser procedimentos e funções. De acordo com
Sebesta (2018):
Procedimentos Funções
Exercício 12
info_outlineTUTORIAL
d content_copyCOPIAR
Python3
1 def func1(x):
2 x = 10
3 print(f'Função func1 - x = {x}')
4
5
6 d f f 2( )
null
null
play_arrow
https://stecine.azureedge.net/repositorio/00212ti/00213/index.html# 19/53
29/10/2023, 11:57 Python estruturado
Dinâmicas da pilha
Estáticas
Atenção!
Nas linguagens C e C++, as variáveis locais são dinâmicas da pilha, a
menos que elas sejam especificamente declaradas como static. Todas
as variáveis locais em Python são dinâmicas da pilha. As variáveis
globais são declaradas em definições de método; além disso, qualquer
variável declarada global em um método precisa ser definida fora dele.
Caso haja uma atribuição à variável local com o mesmo nome de uma
variável global, a global é implicitamente declarada como local.
https://stecine.azureedge.net/repositorio/00212ti/00213/index.html# 20/53
29/10/2023, 11:57 Python estruturado
com valor atribuído 20;
5. Mesmo com a variável global tendo valor nulo, cada variável local
das funções func1(x) e func2(x) tem o próprio valor. Não há
alterações na variável global mesmo com as atribuições das linhas
2 e 7.
Exercício 13
info_outlineTUTORIAL
d content_copyCOPIAR
Python3
1 def func1():
2 global x
3 x = 10
4 print(f'Função func1 - x = {x}')
5
6
null
null
play_arrow
Subprogramas aninhados
https://stecine.azureedge.net/repositorio/00212ti/00213/index.html# 21/53
29/10/2023, 11:57 Python estruturado
Exercício 14
info_outlineTUTORIAL
d content_copyCOPIAR
Python3
1 def taximetro(distancia):
2 def calculaMult():
3 if distancia < 5:
4 return 1.2
5 else:
6 t 1
null
null
play_arrow
Valor
O parâmetro formal funciona como uma variável local do subprograma,
sendo inicializado com o valor do parâmetro real. Dessa maneira, não
ocorre uma alteração na variável externa ao subprograma caso ela seja
passada como parâmetro.
Referência
Em vez de passar o valor do parâmetro real, é transmitido um caminho
de acesso (normalmente, um endereço) para o subprograma chamado.
Isso fornece o caminho de acesso para a célula que armazena o
parâmetro real. Assim, o subprograma chamado pode acessar esse
parâmetro na unidade de programa chamadora.
Saiba mais
Na linguagem C, utilizamos ponteiros para fazer a passagem de
parâmetros por referência. As transmissões de parâmetros que não
forem ponteiros utilizarão a passagem por valor.
https://stecine.azureedge.net/repositorio/00212ti/00213/index.html# 22/53
29/10/2023, 11:57 Python estruturado
podemos entender que a passagem por atribuição é uma passagem por
referência, pois os valores de todos os parâmetros reais são referências.
Funções recursivas
Recursividade
Uma função recursiva é aquela que chama a si mesma. Veja o exemplo
da função regressiva() (código 16 do arquivo disponibilizado):
Python
content_copy
1 def regressiva(x):
2 print(x)
3 regressiva(x - 1)
Atenção!
Conceitualmente, essa execução será repetida indefinidamente até que
haja algum erro por falta de memória. Perceba que não definimos
adequadamente uma condição de parada para a função regressiva(), o
que leva a esse comportamento ruim.
https://stecine.azureedge.net/repositorio/00212ti/00213/index.html# 23/53
29/10/2023, 11:57 Python estruturado
definir adequadamente uma condição de parada como a do exemplo a
seguir (código 17 do arquivo disponibilizado neste texto):
Python
content_copy
1 def regressiva(x):
2 if x <= 0:
3 print("Acabou")
4 else:
5 print(x)
6 regressiva(x-1)
1, se n = 0 ou n = 1
n! = ∣
n. (n − 1) ⋅ (n − 2) … 3.2.1, se n ≥ 2
1, se n = 0 ou n = 1
n! = ∣
n ⋅ [(n − 1)!], se n ≥ 2
Python
content_copy
1 def fatorial(n):
2 if n == 0 or n == 1:
3 return 1
4 else:
5 return n*fatorial(n-1)
https://stecine.azureedge.net/repositorio/00212ti/00213/index.html# 24/53
29/10/2023, 11:57 Python estruturado
\
Python
content_copy
1 def fatorial(n):
2 fat = 1
3 if n == 0 or n == 1:
4 return fat
5 else:
6 for x in range(2, n + 1):
A sequência de Fibonacci
Python
content_copy
1 def fibo(n):
2 if n == 1 or n == 2:
3 return 1
4 else:
5 return fibo(n - 1) + fibo(n - 2)
Documentação de funções –
Docstrings
Docstrings
https://stecine.azureedge.net/repositorio/00212ti/00213/index.html# 25/53
29/10/2023, 11:57 Python estruturado
Em Python, é possível definir uma string que serve como documentação
de funções definidas pelo desenvolvedor. Ao chamar o utilitário help()
passando como parâmetro a função desejada, essa string é exibida.
Python
content_copy
Python
content_copy
1 fibo(n)
2 2 Determina o n-ésimo termo da sequência de Fibonacc
Questão 1
Python
content_copy
1 def func1(x):
2 x = 10
3 print(x)
4
5
https://stecine.azureedge.net/repositorio/00212ti/00213/index.html# 26/53
29/10/2023, 11:57 Python estruturado
6 x = 0
E 10 10 10
Questão 2
Python
content_copy
1 def rec(n):
2 if n < 2:
3 return rec(n - 1)
4
5
6 print(rec(1))
https://stecine.azureedge.net/repositorio/00212ti/00213/index.html# 27/53
29/10/2023, 11:57 Python estruturado
3 - Bibliotecas em Python
Ao final deste módulo, você será capaz de identificar o uso correto de recursos de bibliotecas
em Python.
Vamos começar!
video_library
https://stecine.azureedge.net/repositorio/00212ti/00213/index.html# 28/53
29/10/2023, 11:57 Python estruturado
1. Operações matemáticas.
Uma classe Pessoa, por exemplo, pode ter como atributos nome e CPF.
Ao gerar uma instância de Pessoa com nome João da Silva e CPF
000.000.000-00, há um objeto.
Dica
Para compreender mais os conceitos de classe e objeto, pesquise sobre
o paradigma orientado a objeto.
https://stecine.azureedge.net/repositorio/00212ti/00213/index.html# 29/53
29/10/2023, 11:57 Python estruturado
import
nome_modulo
Exercício 14
info_outlineTUTORIAL
d content_copyCOPIAR
Python3
1 import math
2
3 x = math.sqrt(5)
4 print(x)
null
null
play_arrow
math
Usado para operações matemáticas.
random
Usado para gerar números pseudoaleatórios.
smtplib
Usado para permitir envio de e-mails.
time
Usado para implementar contadores temporais.
https://stecine.azureedge.net/repositorio/00212ti/00213/index.html# 30/53
29/10/2023, 11:57 Python estruturado
tkinter
Usado para desenvolver interfaces gráficas.
Função Retorno
cos(x) Cosseno de x
sin(x) Seno de x
pi Valor de Pi (3.141592...)
e Valor de e (2.718281...)
Saiba mais
Para mais informações sobre o módulo math, visite a biblioteca Python.
Módulo random
Esse módulo implementa geradores de números pseudoaleatórios para
várias distribuições.
Números inteiros
Para inteiros, existe:
Sequências
https://stecine.azureedge.net/repositorio/00212ti/00213/index.html# 31/53
29/10/2023, 11:57 Python estruturado
Para sequências, existem:
Função Retorno
Distribuição gaussiana. mu é a
gauss(mu, sigma)
média e sigma é o desvio padrão.
Função Retorno
randrange(start, stop,
[step])
https://stecine.azureedge.net/repositorio/00212ti/00213/index.html# 32/53
29/10/2023, 11:57 Python estruturado
Função Retorno
Saiba mais
Módulo SMTPLIB
Esse módulo define um objeto de sessão do cliente SMTP que pode ser
usado a fim de enviar e-mail para qualquer máquina da internet com
um serviço de processamento SMTP ou ESMTP. O exemplo a seguir vai
permitir que você envie um e-mail a partir do servidor SMTP do Gmail.
Como a Google não permite, por padrão, realizar o login com a utilização
do smtplib por considerar esse tipo de conexão mais arriscada, será
necessário alterar uma configuração de segurança. Para resolver isso,
siga estas instruções:
https://stecine.azureedge.net/repositorio/00212ti/00213/index.html# 33/53
29/10/2023, 11:57 Python estruturado
Python
content_copy
Python
content_copy
1
2
3
4
5
6 #criação de um objeto de mensagem
Python
content_copy
1
2
3
4
5
https://stecine.azureedge.net/repositorio/00212ti/00213/index.html# 34/53
29/10/2023, 11:57 Python estruturado
6
Saiba mais
Para mais informações sobre o módulo smtplib, visite a biblioteca
Python.
Módulo time
Esse módulo provê diversas funções relacionadas a tempo. Também
pode ser útil conhecer os módulos datetime e calendar.
Função Retorno
https://stecine.azureedge.net/repositorio/00212ti/00213/index.html# 35/53
29/10/2023, 11:57 Python estruturado
Exercício 15
info_outlineTUTORIAL
d content_copyCOPIAR
Python3
1 import time
2
3 x = time.time()
4 print(f'Local time: {time.ctime(x)}')
null
null
play_arrow
range [0, 6]
6 tm_wday
Segunda-feira é
8 tm_isdst 0,1 ou -1
Abreviação do
N/A tm_zone
nome da timezo
https://stecine.azureedge.net/repositorio/00212ti/00213/index.html# 36/53
29/10/2023, 11:57 Python estruturado
Principais funções do módulo time
Elaborada por Humberto Henriques de Arruda
Saiba mais
Para mais informações sobre o módulo time, visite a biblioteca Python.
Módulo tkinter
O pacote tkinter é a interface Python padrão para o Tk GUI (interface
gráfica com o usuário) toolkit. Na maioria dos casos, basta importar o
próprio tkinter, mas diversos outros módulos estão disponíveis no
pacote. A biblioteca tkinter permite a criação de janelas com elementos
gráficos, como a entrada de dados e botões, por exemplo.
O exemplo a seguir vai permitir que você crie a primeira janela com
alguns elementos. Para isso, crie um programa novo no seu projeto. O
código adiante mostra a criação da sua primeira janela, ainda sem
qualquer elemento gráfico.
Python
content_copy
Python
content_copy
https://stecine.azureedge.net/repositorio/00212ti/00213/index.html# 37/53
29/10/2023, 11:57 Python estruturado
Python
content_copy
https://stecine.azureedge.net/repositorio/00212ti/00213/index.html# 38/53
29/10/2023, 11:57 Python estruturado
Saiba mais
Para mais informações sobre o tkinter, visite a biblioteca Python.
Pacotes externos
Usando pacotes externos
Além dos módulos fornecidos de forma integrada pela biblioteca padrão
do Python, a linguagem possui uma grande vantagem: sua característica
open-source permite que qualquer desenvolvedor, com o conhecimento
adequado, desenvolva a própria biblioteca e os próprios módulos, os
quais chamaremos, a partir de agora, de pacotes.
https://stecine.azureedge.net/repositorio/00212ti/00213/index.html# 39/53
29/10/2023, 11:57 Python estruturado
Como forma de facilitar a distribuição dos pacotes entre os usuários,
existe um grupo dentro da comunidade Python que mantém o chamado
Python package index, ou PyPI, um grande servidor no qual os
desenvolvedores podem hospedar os seus pacotes, contendo
bibliotecas e/ou módulos, para que sejam baixados e instalados por
outras pessoas.
É possível acessar o PyPI por meio do pip, um programa que pode ser
instalado com a distribuição do Python. Para isso, certifique-se de que a
caixa “pip” está marcada durante a instalação, conforme ilustrado a
seguir.
Instalação do pip.
Atenção!
Para verificar se a sua instalação Python incluiu o pip, procure pela
pasta Scripts dentro do diretório de instalação que você escolheu para o
Python. Dentro dessa pasta, localize o arquivo pip.exe. Caso não o
encontre, pesquise sobre como instalar o pip. O mais recomendado é
tentar reinstalar o Python sem esquecer de marcar a opção de incluir o
pip durante o processo de instalação.
https://stecine.azureedge.net/repositorio/00212ti/00213/index.html# 40/53
29/10/2023, 11:57 Python estruturado
Atenção!
Uma das vantagens disso é que você consegue saber exatamente quais
pacotes externos estão sendo usados no projeto. É possível usar esses
pacotes sem o uso de ambientes virtuais, porém isso pode causar uma
confusão caso você tenha vários projetos Python no seu computador.
https://stecine.azureedge.net/repositorio/00212ti/00213/index.html# 41/53
29/10/2023, 11:57 Python estruturado
Abaixo você encontra uma lista com alguns dos pacotes externos mais
comuns e utilizados no mercado:
Biblioteca de comandos de
requests
comunicação pelo protocolo HTTP
Dica
https://stecine.azureedge.net/repositorio/00212ti/00213/index.html# 42/53
29/10/2023, 11:57 Python estruturado
Questão 1
import math
A n = 5.9
print(ceil(n))
import math
n = 5.9
B
math.ceil(n)
print(n)
import math
C n = 5.9
print(ceil.math(n))
import math
D n = 5.9
print(math.ceil(n))
import math
n = 5.9
E
ceil.math(n)
print(n)
https://stecine.azureedge.net/repositorio/00212ti/00213/index.html# 43/53
29/10/2023, 11:57 Python estruturado
Questão 2
4 - Eventos em Python
Ao final deste módulo, você será capaz de analisar as formas de tratamento de exceções e
eventos em Python.
https://stecine.azureedge.net/repositorio/00212ti/00213/index.html# 44/53
29/10/2023, 11:57 Python estruturado
Vamos começar!
video_library
Tratamento de exceções na
linguagem Python
Erro de sintaxe 1.
Erro de sintaxe 2.
https://stecine.azureedge.net/repositorio/00212ti/00213/index.html# 45/53
29/10/2023, 11:57 Python estruturado
Elencamos os seguintes exemplos:
1. A divisão por 0.
Exceção Explicação
https://stecine.azureedge.net/repositorio/00212ti/00213/index.html# 46/53
29/10/2023, 11:57 Python estruturado
null
null
play_arrow
Veja que o programa foi encerrado com uma exceção sendo levantada.
Uma forma de fazer a captura e a manipulação de exceções é usar o par
de instruções try/except.
https://stecine.azureedge.net/repositorio/00212ti/00213/index.html# 47/53
29/10/2023, 11:57 Python estruturado
1 try:
2 num = eval(input("Entre com um número inteiro:
3 print(num)
4 except:
5 print("Entre com o valor numérico e não letras
null
null
play_arrow
Python
content_copy
1 try:
2 Bloco 1
3 except:
4 Bloco 2
5 Instrução fora do try/except
Atenção!
https://stecine.azureedge.net/repositorio/00212ti/00213/index.html# 48/53
29/10/2023, 11:57 Python estruturado
Exercício 17
info_outlineTUTORIAL
d content_copyCOPIAR
Python3
1 try:
2 num = eval(input("Entre com um número inteiro:
3 print(num)
4 except NameError:
5 print("Entre com o valor numérico e não letras
null
null
play_arrow
Exercício 18
info_outlineTUTORIAL
d content_copyCOPIAR
Python3
1 try:
2 num = eval(input("Entre com um número inteiro:
3 print(num)
4 except ValueError:
5 print("Mensagem 1")
6 t I d E
null
null
https://stecine.azureedge.net/repositorio/00212ti/00213/index.html# 49/53
29/10/2023, 11:57 Python estruturado
play_arrow
Python
content_copy
1 try:
2 Bloco 1
3 except Exception1:
4 Bloco tratador para Exception1
5 except Exception2:
6 Bloco tratador para Exception1
7 ...
8 else:
9 Bloco 2 – executado caso nenhuma exceção seja lev
10 finally:
11 Bloco 3 – executado independente do que ocorrer
12 Instrução fora do try/except
Tratamento de eventos
O tratamento de eventos é similar ao de exceções. Assim como no caso
das exceções ocorridas em tempo de execução, podemos tratar os
eventos criados por ações externas, como as interações de usuário
realizadas por meio de uma interface gráfica de usuário (GUI).
Questão 1
https://stecine.azureedge.net/repositorio/00212ti/00213/index.html# 50/53
29/10/2023, 11:57 Python estruturado
Considere o seguinte trecho de um programa escrito em Python:
Python
content_copy
1 try:
2 num = eval(input("Entre com um número i
3 print(num)
4 except ValueError:
5 print("Mensagem 1")
6 except IndexError:
Uso do try/except.
Questão 2
C
https://stecine.azureedge.net/repositorio/00212ti/00213/index.html# 51/53
29/10/2023, 11:57 Python estruturado
Não é possível usar a cláusula catch.
Considerações finais
Neste conteúdo, você aprendeu a usar as estruturas de controle, sejam
elas de decisão ou de repetição. Em seguida, foi apresentado aos
conceitos de subprogramas em Python e pôde implementar as próprias
funções, além de conhecer e utilizar as bibliotecas.
headset
Podcast
Abordamos os principais pontos relacionados à programação
estruturada em Python e como os recursos apresentados podem
auxiliar no desenvolvimento dos programas.
Explore +
https://stecine.azureedge.net/repositorio/00212ti/00213/index.html# 52/53
29/10/2023, 11:57 Python estruturado
Referências
PERKOVIC, L. Introdução à computação usando Python: um foco no
desenvolvimento de aplicações. Rio de Janeiro: LTC, 2016.
Download material
Relatar problema
https://stecine.azureedge.net/repositorio/00212ti/00213/index.html# 53/53