Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Desafio: hora da prática (Aquecimento)

# Questão 1: Escreva um código que lê a lista abaixo e faça:
lista = [16, 14, 63, 65, 17, 99, 70, 11, 20, 48, 79, 32, 17, 89, 12, 25, 66]

# tamanho da lista
tam = len(lista)

# maior e menor valor
maior = max(lista)
menor = min(lista)

# soma dos valores pares
soma = sum(numero for numero in lista if numero % 2 == 0)

# mensagem final
print(f"A lista possui {tam} números em que o maior número é {maior} e o menor número é {menor}. A soma dos valores pares presentes nela é igual a {soma}")
# Questão 2: Escreva uma função que gere a tabuada de um número inteiro de 1 a 10

# função para gerar a tabuada
def tabuada(numero):

    print(f"Tabuada do {numero}:")

    # repetição de 0 até 10
    for i in range(11):
        print(f"{numero} x {i} = {numero * i}")

# número escolhido pela pessoa usuária
num = int(input("Digite um número: "))

# chamada da função
tabuada(num)
# Questão 3: Crie uma função que retorne os múltiplos de 3 da lista

lista = [97, 80, 94, 88, 80, 1, 16, 53, 62, 32, 24, 99]

# função para encontrar os múltiplos de 3
def multiplos_de_3(lista):

    # nova lista com os múltiplos de 3
    return [numero for numero in lista if numero % 3 == 0]

# salvando o resultado na variável mult_3
mult_3 = multiplos_de_3(lista)

# exibindo a nova lista
print(mult_3)
# Questão 4: Crie uma lista com os quadrados dos números da lista

lista = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

# cálculo dos quadrados utilizando lambda e map()
quadrados = list(map(lambda numero: numero ** 2, lista))

# exibindo a nova lista
print(quadrados)
2 respostas

Olá, Estudante. Como vai?

Parabéns pela excelente resolução dos exercícios! Você demonstrou um ótimo domínio de funções nativas do Python, além de utilizar recursos avançados e "pythônicos", como as list comprehensions e as funções lambda com map.

Gostaria de destacar alguns pontos técnicos muito positivos na sua implementação e oferecer pequenas sugestões para aprofundar seu conhecimento:

1. Funções Nativas e Eficiência (Questão 1)
O uso de len(), max() e min() é o caminho mais eficiente para lidar com listas, pois essas funções são otimizadas internamente. Na parte da soma, você utilizou uma expressão geradora dentro do sum(), o que é uma prática excelente de economia de memória.

2. O Operador de Módulo (Questão 1 e 3)
Notei que você utilizou o operador % (módulo) corretamente. Ele é essencial na lógica de programação para identificar paridade (numero % 2 == 0) e divisibilidade (numero % 3 == 0). Basicamente, ele verifica se o resto da divisão é zero.

3. Programação Funcional (Questão 4)
A utilização de map() e lambda na Questão 4 mostra que você já está se familiarizando com o paradigma funcional.

  • A função lambda é uma função anônima de uma única linha.
  • O map() aplica essa função a cada item da sua lista.

Para fins de curiosidade, o mesmo resultado poderia ser alcançado com uma list comprehension, que costuma ser a preferida em Python pela legibilidade:

quadrados = [numero ** 2 for numero in lista]

4. Interatividade e Funções (Questão 2)
Sua função de tabuada está bem estruturada. Um ponto de atenção no dia a dia é garantir que o input() receba de fato um número, pois se o usuário digitar uma letra, o programa gerará um erro. Você pode explorar o tratamento de exceções (try-except) nos próximos módulos do curso para tornar esse código ainda mais robusto.

Seus códigos estão limpos, bem comentados e seguem as boas práticas de nomenclatura. Continue com esse foco nos exercícios práticos, pois é onde consolidamos a sintaxe da linguagem!

Espero que possa ter lhe ajudado!

solução!

Obrigado pela dica sobre excessões.