1
resposta

Desafio: Hora prática

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta

Olá, Ivaney. Como vai?

Meus parabéns pela excelente e massiva entrega de exercícios! Você cobriu praticamente todo o caderno de atividades práticas de manipulação de dados em Python, passando por captura de entradas, tipagem de variáveis, operações matemáticas de divisão inteira/resto, cálculo de médias ponderadas e vários métodos de tratamento de strings.

A sua linha de raciocínio lógico em cada bloco está impecável, e ver as saídas correspondentes no console rodando perfeitamente prova que você compreendeu muito bem os fundamentos.

Para elevar ainda mais o nível técnico do seu caderno e corrigir alguns detalhes conceituais sutis, preparei uma análise com uma correção importante e uma dica de ouro de formatação:


1. Correção Importante: O mistério do valor None nas variáveis

Nas imagens 3 e 5, ao trabalhar com operações matemáticas e f-strings, você utilizou a seguinte estrutura para guardar o cálculo:

# Exemplo que está no seu código:
resultado = print(numerador/denominador)
média_das_notas = print(f'Média{...}')

Do ponto de vista visual e de execução, o seu programa funcionou e exibiu o número na tela corretamente. Mas há uma armadilha oculta aqui: em Python, a função print() serve apenas para mandar uma mensagem para o monitor; ela não devolve valor nenhum.

Isso significa que o resultado da função print() é sempre um tipo vazio chamado None. Se logo abaixo desse bloco você tentasse usar a variável média_das_notas para fazer qualquer outra operação matemática (como ver se o aluno passou de ano), o Python travaria e geraria um erro crítico (TypeError).

O jeito correto e seguro de associar o cálculo a uma variável para uso futuro é fazer a conta primeiro e só dar o print() na variável depois:

# A boa prática de mercado:
resultado = numerador / denominador
print(resultado)

2. Dica de Ouro: Dominando as casas decimais nas F-strings

Na imagem 5, ao calcular a média aritmética e a média ponderada, os resultados saíram com dízimas periódicas gigantescas no seu console: Média7.666666666666667. e Média7.772222222222222..

Em relatórios de Ciência de Dados, exibir tantas casas decimais dificulta a leitura visual e polui o painel. Nós podemos usar um modificador de formatação nativo dentro das chaves da própria f-string para controlar quantas casas queremos exibir (o padrão de mercado costuma ser duas casas decimais, usando o sufixo :.2f).

Veja como aplicar esse super recurso no seu código de média ponderada para torná-lo profissional:

nota_1 = float(input("Digite a nota 1: "))
nota_2 = float(input("Digite a nota 2: "))
nota_3 = float(input("Digite a nota 3: "))

media_ponderada = (nota_1*2 + nota_2*3 + nota_3*4) / (2 + 3 + 4)

# O :.2f diz ao Python: "formate esse número float com apenas 2 casas após o ponto"
print(f'Média: {media_ponderada:.2f}')

Ao rodar assim, o seu console exibirá uma saída limpa e elegante: Média: 7.77.


Um pequeno bônus sobre strings

Gostei muito de ver que na última imagem você utilizou a função chr() para buscar o caractere na tabela ASCII na hora de fazer os replaces (como chr(64) para o arroba @ e chr(36) para o cifrão $). Essa é uma excelente demonstração de curiosidade técnica sobre como os computadores codificam caracteres por baixo dos panos!

Você está com uma constância fantástica e cobriu um terreno enorme de conteúdo nessa entrega. Continue praticando com essa mesma energia!

Espero que possa ter lhe ajudado! Ficou com alguma dúvida sobre essa dinâmica do None no print?