1
resposta

Desafio: hora da prática

Aquecimento

Q1

!pip install matplotlib==3.7.1

Q2

!pip install numpy as np

Q3

from random import *
lista = [8, 12, 54, 23, 43, 1, 90, 87, 105, 77]
print(choice(lista))

Q4

from random import *
print(randrange(100))

Q5

from math import *
num1 = int(input("Digite o primeiro número: "))
num2 = int(input("Digite o segundo número: "))
print(pow(num1, num2))

Q6

from random import *
num1 = int(input("Digite o número de participantes: "))
print(randrange(num1))

Q7

from random import *
nome = input("Digite o primeiro número: ")
token = randrange(1000, 9998, 2)

print(f'Olá, {nome}, o seu token de acesso é {token}! Seja bem-vindo(a)!')

Q8

from random import *
frutas = ["maçã", "banana", "uva", "pêra","manga", "coco", "melancia", "mamão", "laranja", "abacaxi", "kiwi", "ameixa"]
print(sample(frutas,3))

#Q9
from math import sqrt

numeros = [2, 8, 15, 23, 91, 112, 256]
for numero in numeros:
raiz = sqrt(numero)

if raiz // 1 == raiz:
    print(f'O número {numero} possui raiz inteira: {raiz}')

Q10

from math import pi

raio = float(input("Digite o raio da área circular: "))
preco_metro = 25.00
area = pi * raio**2
preco = area * preco_metro

print(f"Valor a pagar: R$ {preco:.2f}")

1 resposta

Olá, Rafaela. Como vai?

Os seus códigos do desafio ficaram ótimos! Você conseguiu resolver toda a seção de aquecimento e exercícios práticos passando por todas as etapas com muito sucesso, utilizando de forma muito inteligente as funções das bibliotecas math e random.

Para que a sua resolução fique ainda mais perfeita e alinhada com as melhores práticas de desenvolvimento em Python, quero trazer algumas observações bem pontuais sobre sintaxe e comportamento de funções que vão te ajudar muito no dia a dia:


1. O erro de sintaxe na Q2 (!pip install numpy as np)

No seu segundo exercício, você escreveu o seguinte comando:

!pip install numpy as np

O gerenciador de pacotes do Python (pip) serve estritamente para instalar bibliotecas no ambiente e ele não aceita apelidos como o as np. Esse comando gerará um erro no terminal do Google Colab ou Jupyter Notebook.

Para instalar a biblioteca e depois usá-la com o apelido correto dentro do seu código, o processo deve ser dividido em duas etapas:

!pip install numpy       # Na célula de instalação
import numpy as np      # Na célula onde você vai escrever o código Python

2. Boas práticas de Importação (Evite o from biblioteca import *)

Nos exercícios de 3 a 8, você utilizou a sintaxe from random import * e from math import *. O uso do asterisco (*) importa absolutamente tudo o que existe dentro daquela biblioteca para a memória do seu programa.

Em projetos reais, isso é considerado uma má prática chamada de Poluição do Escopo Global, pois se você tiver uma função própria com o mesmo nome de alguma função interna da biblioteca, um código vai sobrescrever o outro e gerar bugs difíceis de encontrar.

  • A sugestão ideal: Importe apenas as funções específicas que você vai de fato utilizar na célula, exatamente como você fez de forma perfeita nas questões 9 e 10!

Veja como o seu código da Q3 e Q4 fica muito mais elegante e limpo:

from random import choice, randrange

lista = [8, 12, 54, 23, 43, 1, 90, 87, 105, 77]
print(choice(lista))
print(randrange(100))

3. Ajuste de lógica no token da Q7

Na Q7, o seu objetivo era gerar um token de acesso de 4 dígitos. Você utilizou a função randrange(1000, 9998, 2).

Essa estrutura está correta para gerar apenas números pares (por conta do passo 2), mas vale lembrar que o limite superior do randrange é exclusivo. Da forma como está, o número 9998 nunca seria sorteado. Se a intenção era incluir o intervalo completo de 4 dígitos até o último número par possível, o limite final deve ser 10000:

from random import randrange

nome = input("Digite o seu nome: ")
token = randrange(1000, 10000, 2) # Sorteia números pares de 1000 até 9998
print(f'Olá, {nome}, o seu token de acesso é {token}! Seja bem-vindo(a)!')

No mais, a sua lógica na Q9 para descobrir se o número possui raiz inteira usando a divisão inteira (raiz // 1 == raiz) foi extremamente criativa, e a formatação de valores monetários na Q10 com o :.2f ficou impecável!

Parabéns pela dedicação e por postar a sua lista de exercícios completa aqui no fórum. Continue com esse ritmo excelente de estudos!

Espero que possa ter lhe ajudado!