1
resposta

Exercícios 1 ao 10 - Estrutura de dados.

  • Questão 1
gastos = [2172.54, 3701.35, 3518.09, 3456.61, 3249.38, 2840.82, 3891.45, 3075.26, 2317.64, 3219.08]
sum(gastos)/len(gastos)
  • Questão 2
gastos = [2172.54, 3701.35, 3518.09, 3456.61, 3249.38, 2840.82, 3891.45, 3075.26, 2317.64, 3219.08]
limite_gastos = 3000
contagem = 0
for gasto in gastos:
    if gasto >= limite_gastos:
        contagem += 1
acima_limite = (contagem/len(gastos))*100
arred_acima_limite = round(acima_limite, 2)
        
print(f' Foram realizadas {contagem} compras acima de R$ 3.000,00 com uma média de {arred_acima_limite}% do total de compras.')
  • Questão 3
lista = []
lista_input = int(input('Digite um numero inteiro: ' ))
cont_lista = 0


while cont_lista <= 4:
    if lista_input < 0:
        break
    else:
        lista.append(lista_input)
        lista_input = int(input('Digite um numero inteiro: ' ))
    cont_lista += 1

print(lista)
  • Questão 4
lista = []
while True:
    dados = int(input('Digite um número: '))
    if dados <= 0:
        break
    lista.append(dados)
for dados in reversed(lista):
    print(dados)
  • Questão 5
def primo(num):
    if num <= 1:
        return False
    for dados in range(2, int(num**0.5) + 1):
        if num % dados == 0:
            return False
    return True

def encontrar_primos(limite):
    lista_primos = []
    for numero in range(2, limite + 1):
        if primo(numero):
            lista_primos.append(numero)
    return lista_primos

try:
    num_dig = int(input("Digite um número inteiro positivo: "))
    if num_dig < 1:
        print("Por favor, digite um número inteiro positivo.")
    else:
        primos_encontrados = encontrar_primos(num_dig)
        print(f"Os números primos entre 1 e {num_dig} são: {primos_encontrados}")
except ValueError:
    print("Entrada inválida. Por favor, digite um número inteiro.")
  • Questão 6
def is_valid_date(dia, mes, ano):
    if not isinstance(dia, int) or not isinstance(mes, int) or not isinstance(ano, int):
        return False
    if mes < 1 or mes > 12:
        return False
    if dia < 1 or dia > 31:
        return False

    dias_no_mes = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]

    if (ano % 4 == 0 and ano % 100 != 0) or (ano % 400 == 0):
        dias_no_mes[2] = 29

    if dia > dias_no_mes[mes]:
        return False

    return True

def analisar_data(dia, mes, ano):
    if is_valid_date(dia, mes, ano):
        print(f"A data {dia:02d}/{mes:02d}/{ano} é válida para análise.")
    else:
        print(f"A data {dia:02d}/{mes:02d}/{ano} não é válida para análise.")

if __name__ == "__main__":
    try:
        dia = int(input("Digite o dia: "))
        mes = int(input("Digite o mês: "))
        ano = int(input("Digite o ano: "))

        analisar_data(dia, mes, ano)

    except ValueError:
        print("Entrada inválida. Por favor, digite números inteiros para dia, mês e ano.")
  • Questão 7
Bact = [1.2, 2.1, 3.3, 5.0, 7.8, 11.3, 16.6, 25.1, 37.8, 56.9]
variacoes_percentuais = []

for dados in range(len(Bact) - 1):
    variacao = (100 * (Bact[dados+1] - Bact[dados]) / Bact[dados])
    variacoes_percentuais.append(variacao)
    print(f'Variação entre {Bact[dados]:.2f} e {Bact[dados+1]:.2f} foi de: {variacao:.2f}%')
  • Questão 8
doces = []
amargos = []

while True:
    try:
        IDs = input('Digite o código do produto: ')
        if len(produtos) == 10:
            break

        IDs = int(IDs)

        produtos.append(IDs)

        if IDs % 2 == 0:
            doces.append(IDs)
        else:
            amargos.append(IDs)

    except ValueError:
        print('Entrada inválida. Por favor, digite um número inteiro ou "fim".')

print('Lista de todos os produtos:', produtos)
print('Lista de doces (IDs pares):', doces)
print('Lista de amargos (IDs ímpares):', amargos)
  • Questão 9
gab_prova = {1: 'D', 2 : 'A', 3 : 'C', 4 : 'B', 5 : 'A', 6 : 'D', 7 : 'C', 8 : 'C', 9 : 'A', 10 : 'B'}
gab_questao = ['A', 'B', 'C', 'D']
nota = 0
q_erradas = 0
certas = []
erradas = []

for dados in range(1, 11):
    questao = input(f' Qual o resultado da equação {dados} ? ').upper()
    
    while questao not in gab_questao:
        print(f'Resposta invalida, responder de {gab_questao}')
        questao = input(f'Qual a resposta da questão {dados} ? ').upper()
    if questao == gab_prova[dados]:
        nota += 1  
        certas.append(dados)
    else:
        q_erradas += 1
        erradas.append(dados)

print(f'Você acertou {nota} questões e errou {q_erradas} questões.')
print(f'Você acertou as questões: {certas}')
print(f'Você errou as questões: {erradas}')
print(f'Você obteve {nota} pontos.')
1 resposta

Ei, Maicon!

Você está se saindo muito bem, parabéns! Vi que a função para validar a data está bem implementada, considerando anos bissextos e limites de dias por mês. Continue praticando e experimentando com diferentes abordagens para consolidar seu aprendizado!

Se houver dúvidas, não deixe de compartilhá-las.

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