Solucionado (ver solução)

Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

Solucionado
(ver solução)
1
resposta

[Projeto] Desafio: hora da prática | Python para Dados: trabalhando com funções, estruturas de dados e exceções

Aquecimento

  1. Instalação da biblioteca matplotlib
    Para instalar uma versão específica via terminal, usamos o gerenciador de pacotes pip:
Bash
pip install matplotlib==3.7.1
  1. Importação do numpy com alias
import numpy as np
  1. Escolha aleatória em uma lista
    Usamos a função choice() da biblioteca random.
import random

lista = [8, 12, 54, 23, 43, 1, 90, 87, 105, 77]

# Escolhe um elemento aleatório da lista
numero_escolhido = random.choice(lista)

print(f"O número escolhido aleatoriamente foi: {numero_escolhido}")
  1. Sorteio com randrange() (menor que 100)
    Como queremos um número inteiro positivo menor que 100, o intervalo vai de 1 até 99.
import random

# randrange(inicio, fim) não inclui o valor de fim. 
# Para ser positivo e menor que 100, vamos de 1 a 100 (o 100 fica de fora).
numero_sorteado = random.randrange(1, 100)

print(f"Número sorteado: {numero_sorteado}")
  1. Cálculo de potência com math.pow()
import math

# Solicita os dados mapeando para inteiro
base = int(input("Digite o 1º número inteiro (base): "))
expoente = int(input("Digite o 2º número inteiro (expoente): "))

# Calcula a potência
resultado = math.pow(base, expoente)

print(f"{base} elevado a {expoente} é igual a: {resultado}")

Aplicando a projetos

  1. Sorteio de seguidor(a)
import random

# Solicita o total de participantes
total_participantes = int(input("Digite a quantidade total de participantes do sorteio: "))

# Sorteia um número de 1 até o total informado
ganhador = random.randint(1, total_participantes)

print(f"O número sorteado que ganhou o prêmio foi: {ganhador}")
  1. Gerador de Token Par

Para garantir que o número seja par e varie de 1000 a 9998, podemos usar o randrange(inicio, fim, passo) com o passo definido como 2.

import random

nome = input("Digite o seu nome: ")

# O limite superior é 10000 para que o 9998 seja incluído. O passo 2 garante que seja par.
token = random.randrange(1000, 10000, 2)

print(f"Olá, {nome}, o seu token de acesso é {token}! Seja bem-vindo(a)!")
  1. Salada de frutas surpresa

Para escolher 3 elementos sem repetição de uma lista, usamos a função sample() da biblioteca random.

import random

frutas = ["maçã", "banana", "uva", "pêra", "manga", "coco", 
          "melancia", "mamão", "laranja", "abacaxi", "kiwi", "ameixa"]

# Seleciona 3 frutas aleatórias sem repetição
salada_surpresa = random.sample(frutas, 3)

print("As frutas escolhidas para a sua salada surpresa são:")
for fruta in salada_surpresa:
    print(f"- {fruta}")
  1. Raiz quadrada e validação de inteiros
import math

numeros = [2, 8, 15, 23, 91, 112, 256]

print("Análise das raízes quadradas:")
print("-" * 30)

for num in numeros:
    raiz = math.sqrt(num)
    
    # Verifica se a raiz é um número inteiro usando a dica fornecida
    if raiz // 1 == raiz:
        print(f"O número {num} possui raiz inteira: {int(raiz)}")
  1. Calculador de custo de grama para jardim circular

Aqui aplicamos a fórmula $A = \pi \cdot r^2$ utilizando math.pi e math.pow().

import math

# Configuração do preço por m²
PRECO_METRO_QUADRADO = 25.00

# Entrada do usuário
raio = float(input("Digite o raio do jardim circular em metros: "))

# Cálculo da área: pi * raio²
area = math.pi * math.pow(raio, 2)

# Cálculo do custo total
valor_total = area * PRECO_METRO_QUADRADO

print(f"Área do jardim: {area:.2f} m²")
print(f"O valor total a pagar pela grama é: R$ {valor_total:.2f}")
1 resposta
solução!

Oi! Como vai?

Agradeço por compartilhar seu código com a comunidade Alura.

Muito bem! Você desenvolveu bem as atividades propostas, explorando bibliotecas importantes como random, math, numpy e também abordando a instalação do matplotlib. Chamou atenção a variedade de soluções apresentadas, desde sorteios aleatórios até cálculos matemáticos e validações de dados, demonstrando uma boa compreensão sobre funções, estruturas de dados e utilização de bibliotecas da linguagem.

Uma dica interessante para o futuro é utilizar o método math.isqrt() quando precisar trabalhar com raízes quadradas inteiras. Veja este exemplo:


import math

numero = 144
raiz = math.isqrt(numero)

print(raiz)

Nesse exemplo, o código retorna a raiz quadrada inteira do número informado, sendo uma alternativa prática para esse tipo de validação.

Qual das atividades do desafio você considerou mais interessante ou desafiadora de desenvolver?

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!