estrutura condicional try / except

54 views
Skip to first unread message

Walter Siqueira

unread,
Mar 13, 2024, 4:27:39 PMMar 13
to Python Brasil
Boa noite. Prezados,

Alguém pode me ajudar com esta resolução?

Utilize a estrutura try/except para imprimir as cidades dos usuários que passaram mais de 70 segundos no site. 
Realize o tratamento de exceções dentro da execução da iteração dos elementos da lista. Trate a exceção atribuindo-a à variável error.
propaganda_online = [
    {'tempo_gasto_site': 68.95, 'idade': 35, 'renda_area': 61833.90, 'tempo_gasto_internet': 256.09, 'cidade': 'Wrightburgh', 'pais': 'Tunisia', 'clicou_no_ad': 0},
    {'tempo_gasto_site': 80.23, 'idade': 31, 'renda_area': 68441.85, 'tempo_gasto_internet': 193.77, 'cidade': 'West Jodi', 'pais': 'Nauru', 'clicou_no_ad': 0},
    {'tempo_gasto_site': 69.47, 'idade': 26, 'renda_area': 59785.94, 'tempo_gasto_internet': 236.50, 'cidade': 'Davidton', 'pais': 'San Marino', 'clicou_no_ad': 0},
    {'tempo_gasto_site': 68.37, 'idade': 35, 'renda_area': 73889.99, 'tempo_gasto_internet': 225.58, 'cidade': 'South Manuel', 'pais': 'Iceland', 'clicou_no_ad': 0},
    {'tempo_gasto_site': 88.91, 'idade': 33, 'renda_area': 53852.85, 'tempo_gasto_internet': 208.36, 'cidade': 'Brandonstad', 'pais': 'Myanmar', 'clicou_no_ad': 0},
    {'tempo_gasto_site': None, 'idade': 48, 'renda_area': 24593.33, 'tempo_gasto_internet': 131.76, 'cidade': 'Port Jefferybury', 'pais': 'Australia', 'clicou_no_ad': 1},
    {'tempo_gasto_site': 74.53, 'idade': 30, 'renda_area': 68862.00, 'tempo_gasto_internet': 221.51, 'cidade': 'West Colin', 'pais': 'Grenada'},
    {'tempo_gasto_site': 69.88, 'idade': 20, 'renda_area': 55642.32, 'tempo_gasto_internet': 183.82, 'cidade': 'Ramirezton', 'pais': 'Ghana', 'clicou_no_ad': 0}
]

error = None

for dado_de_usuario in propaganda_online:
    try:dado_de_usuario.get('tempo_gasto_site') is not None and dado_de_usuario['tempo_gasto_site'] > 70:
            print(dado_de_usuario['cidade'])
    except Exception as error:
        print("Erro ao processar os dados:", error)

Test: Espera-se que as exceções sejam tratadas corretamente
As exceções não foram tratadas corretamente

fabio.si...@gmail.com

unread,
Mar 13, 2024, 6:55:55 PMMar 13
to Python Brasil
Boa noite!

se vc montar sua estrutura dessa forma:
try:
    for dado_de_usuario in propaganda_online:
        if dado_de_usuario.get('tempo_gasto_site') is not None and dado_de_usuario['tempo_gasto_site'] > 70.0:
            print(dado_de_usuario['cidade'])
except Exception as error:
    print("Erro ao processar os dados:", error)

Será feito uma tentativa(Try) de executar o laço for com os parâmetros pedidos.
Se caso a fonte de dados chamada de propaganda_online, não existir, aí sim vai ser levantado uma excessão(Exception)
que vai lhe devolver a seguinte mensagem: "Erro ao processar os dados: name 'propaganda_online' is not defined"
Indicando que não foi possível executar a tarefa devido a falta da fonte de dados e o programa para de executar.

O que eu fiz foi comentar todas as linhas da lista propaganda_online e assim gerar a Exception
# Comente essas linhas abaixo para leventar uma excessão
# propaganda_online = [
#     {'tempo_gasto_site': 68.95, 'idade': 35, 'renda_area': 61833.90, 'tempo_gasto_internet': 256.09, 'cidade': 'Wrightburgh', 'pais': 'Tunisia', 'clicou_no_ad': 0},
#     {'tempo_gasto_site': 80.23, 'idade': 31, 'renda_area': 68441.85, 'tempo_gasto_internet': 193.77, 'cidade': 'West Jodi', 'pais': 'Nauru', 'clicou_no_ad': 0},
#     {'tempo_gasto_site': 69.47, 'idade': 26, 'renda_area': 59785.94, 'tempo_gasto_internet': 236.50, 'cidade': 'Davidton', 'pais': 'San Marino', 'clicou_no_ad': 0},
#     {'tempo_gasto_site': 68.37, 'idade': 35, 'renda_area': 73889.99, 'tempo_gasto_internet': 225.58, 'cidade': 'South Manuel', 'pais': 'Iceland', 'clicou_no_ad': 0},
#     {'tempo_gasto_site': 88.91, 'idade': 33, 'renda_area': 53852.85, 'tempo_gasto_internet': 208.36, 'cidade': 'Brandonstad', 'pais': 'Myanmar', 'clicou_no_ad': 0},
#     {'tempo_gasto_site': None, 'idade': 48, 'renda_area': 24593.33, 'tempo_gasto_internet': 131.76, 'cidade': 'Port Jefferybury', 'pais': 'Australia', 'clicou_no_ad': 1},
#     {'tempo_gasto_site': 74.53, 'idade': 30, 'renda_area': 68862.00, 'tempo_gasto_internet': 221.51, 'cidade': 'West Colin', 'pais': 'Grenada'},
#     {'tempo_gasto_site': 69.88, 'idade': 20, 'renda_area': 55642.32, 'tempo_gasto_internet': 183.82, 'cidade': 'Ramirezton', 'pais': 'Ghana', 'clicou_no_ad': 0}
# ]

E se a lista existir será impresso no console o resultado da sua iteração do laço for:
West Jodi
Brandonstad
West Colin

Espero que seja isso e que te ajude!

Marcelo Valle

unread,
Mar 14, 2024, 2:40:39 AMMar 14
to python...@googlegroups.com

--
--
------------------------------------
Grupo Python-Brasil
https://wiki.python.org.br/AntesDePerguntar
 
<*> Para visitar o site do grupo na web, acesse:
http://groups.google.com/group/python-brasil
 
<*> Para sair deste grupo, envie um e-mail para:
python-brasi...@googlegroups.com
---
Você recebeu essa mensagem porque está inscrito no grupo "Python Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python-brasi...@googlegroups.com.
Para acessar essa discussão na Web, acesse https://groups.google.com/d/msgid/python-brasil/fdf18a29-bef1-44c7-b003-d3cf63d5180bn%40googlegroups.com.

Eric Chiesse

unread,
Mar 14, 2024, 9:13:25 PMMar 14
to python...@googlegroups.com
Pra fazer funcionar vc vai ter que dar um raise dentro do try pra poder tratar no except.

No mundo real ninguém faz isso, basta usar um if.

De onde veio esse exemplo? Ele não faz nenhum sentido.
---
Eric Chiesse


Reply all
Reply to author
Forward
0 new messages