1
resposta

Desafio: hora da prática: (Momento dos projetos)

# Questão 6: Escreva um programa que gere a tabuada de um número inteiro de 1 a 10, de acordo com a escolha da pessoa usuária. Como exemplo, para o número 2, a tabuada deve ser mostrada no seguinte formato:
# Entrada do número
numero = int(input("Digite um número para a tabuada que deseja: "))

# Exibição da tabuada
print(f"Tabuada do {numero}:")

for i in range(1, 11):
    print(f"{numero} x {i} = {numero * i}")
# Questão 7: Os números primos possuem várias aplicações dentro da Ciência de Dados, por exemplo, na criptografia e segurança. Um número primo é aquele que é divisível apenas por um e por ele mesmo. Faça um programa que peça um número inteiro e determine se ele é ou não um número primo.
# Solicita um número inteiro
numero = int(input("Digite um número inteiro: "))

# Verifica se o número é primo
if numero <= 1:
    print(f"{numero} não é um número primo.")
else:
    primo = True

    # Testa divisibilidade
    for i in range(2, numero):
        if numero % i == 0:
            primo = False
            break

    # Exibe o resultado
    if primo:
        print(f"{numero} é um número primo.")
    else:
        print(f"{numero} não é um número primo.")
# Questão 8: Vamos entender a distribuição de idades de pensionistas de uma empresa de previdência. Escreva um programa que leia as idades de uma quantidade não informada de clientes e mostre a distribuição em intervalos de [0-25], [26-50], [51-75] e [76-100]. Encerre a entrada de dados com um número negativo.
# Contadores para cada faixa etária
faixa_1 = 0  # 0 a 25
faixa_2 = 0  # 26 a 50
faixa_3 = 0  # 51 a 75
faixa_4 = 0  # 76 a 100

print("Digite as idades dos clientes.")
print("Para encerrar, digite um número negativo.\n")

# Loop de leitura
while True:
    idade = int(input("Idade: "))
    
    # Encerra o programa
    if idade < 0:
        break

    # Verifica a faixa etária
    if 0 <= idade <= 25:
        faixa_1 += 1
    elif 26 <= idade <= 50:
        faixa_2 += 1
    elif 51 <= idade <= 75:
        faixa_3 += 1
    elif 76 <= idade <= 100:
        faixa_4 += 1

# Exibe os resultados
print("\nDistribuição de idades:")
print(f"[0 - 25]   : {faixa_1} pessoa(s)")
print(f"[26 - 50]  : {faixa_2} pessoa(s)")
print(f"[51 - 75]  : {faixa_3} pessoa(s)")
print(f"[76 - 100] : {faixa_4} pessoa(s)")
"""
Questão 9
Em uma eleição para gerência em uma empresa com 20 funcionários, existem quatro candidatos. Escreva um programa que calcule o vencedor da eleição. A votação ocorreu da seguinte maneira:...
"""
# Inicialização dos contadores
candidato1 = 0
candidato2 = 0
candidato3 = 0
candidato4 = 0
nulos = 0
brancos = 0

total_votos = 20

print("Eleição para gerência da empresa")
print("1 - Candidato 1")
print("2 - Candidato 2")
print("3 - Candidato 3")
print("4 - Candidato 4")
print("5 - Voto nulo")
print("6 - Voto em branco\n")

# Recebe os votos dos 20 funcionários
for i in range(1, total_votos + 1):

    while True:
        try:
            voto = int(input(f"Funcionário {i}, digite seu voto: "))

            # Verifica se o voto está entre 1 e 6
            if 1 <= voto <= 6:
                break
            else:
                print("Voto inválido! Digite um número entre 1 e 6.")

        except ValueError:
            print("Entrada inválida! Digite apenas números inteiros.")

    # Contabilização dos votos
    if voto == 1:
        candidato1 += 1
    elif voto == 2:
        candidato2 += 1
    elif voto == 3:
        candidato3 += 1
    elif voto == 4:
        candidato4 += 1
    elif voto == 5:
        nulos += 1
    elif voto == 6:
        brancos += 1

# Calcula as porcentagens
porcentagem_nulos = (nulos / total_votos) * 100
porcentagem_brancos = (brancos / total_votos) * 100

# Determina o vencedor
votos_candidatos = [candidato1, candidato2, candidato3, candidato4]
maior_voto = max(votos_candidatos)
vencedor = votos_candidatos.index(maior_voto) + 1

# Exibe os resultados
print("\nResultado da eleição:")
print(f"Candidato 1: {candidato1} voto(s)")
print(f"Candidato 2: {candidato2} voto(s)")
print(f"Candidato 3: {candidato3} voto(s)")
print(f"Candidato 4: {candidato4} voto(s)")
print(f"Votos nulos: {nulos}")
print(f"Votos em branco: {brancos}")

print(f"\nPorcentagem de votos nulos: {porcentagem_nulos:.2f}%")
print(f"Porcentagem de votos em branco: {porcentagem_brancos:.2f}%")

print(f"\nO vencedor foi o Candidato {vencedor}.")
1 resposta

Olá! Tudo bem?

É excelente ver a continuidade da sua prática com Python para Data Science. Você avançou para desafios que exigem uma lógica de tratamento de dados mais refinada, especialmente no que diz respeito à organização de grandes volumes de informação e à integridade das entradas.

Aqui está uma análise técnica das suas novas implementações:

Destaques da sua Lógica

  • Questão 6 (Tabuada): Você utilizou o laço for com range(1, 11) de forma precisa, garantindo que o limite superior (11) fosse excluído para gerar exatamente os 10 multiplicadores solicitados.
  • Questão 7 (Números Primos): A lógica de interrupção com break ao encontrar o primeiro divisor é uma ótima prática de otimização. Isso evita processamento desnecessário, algo fundamental quando lidamos com grandes bases de dados em Ciência de Dados.
  • Questão 8 (Distribuição de Frequência): Este exercício é a base para a criação de histogramas. Ao categorizar idades em intervalos (if/elif), você transformou dados brutos em informação estatística útil para uma análise de perfil de pensionistas.
  • Questão 9 (Sistema de Votação):
  • Tratamento de Erros: O uso de try/except para capturar ValueError é um diferencial enorme. Ele garante que o programa não pare de funcionar caso o usuário digite uma letra em vez de um número.
  • Análise de Resultados: O uso da função max() e do método .index() para determinar o vencedor de forma dinâmica mostra um excelente domínio das listas em Python.

Dica para o Futuro: Legibilidade e Escalabilidade

Na Questão 8, conforme você avançar nos estudos de Python para Dados, verá que bibliotecas como o Pandas permitem fazer esse agrupamento (binning) de forma automática.

Já na Questão 9, se o número de candidatos aumentasse para 20, o uso de muitos elif ficaria difícil de manter. Nesses casos, utilizar um Dicionário para contar os votos tornaria seu código muito mais curto e profissional:

# Exemplo de como simplificar a contagem com dicionário
votos = {1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0}
# ... dentro do loop ...
votos[voto] += 1

Parabéns pelo progresso consistente! Dominar essas estruturas de repetição e decisão é o que permitirá que você manipule dados com confiança em projetos reais.

Espero que possa ter lhe ajudado!