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

[Projeto] [Resposta Exercício] - Python para Data Science: primeiros passos - Aula 04 - Desafio: Hora da prática!

Olá comunidade dev!

Ainda sou novo aqui na Alura (e também no ambiente de forum), logo se eu tiver feito o post no local errado peço desculpas.

Gostaria de compartilhar minhas soluções de alguns exercícios para que outras pessoas possam avaliar e sugerir melhorias de código, clean code, etc.

A seguir vou colocar o enunciado dos desafios e abaixo o meu código. Quem puder executar e avaliar, eu ficaria extremamente grato!

2) Escreva um programa para calcular quantos dias levará para a colônia de uma bactéria A ultrapassar ou igualar a colônia de uma bactéria B, com base nas taxas de crescimento de 3% e 1,5% respectivamente. Considere que a colônia A inicia com 4 elementos e a B com 10.

print('Descubra quantos dias levará para uma colônia de bactérias A ultrapassar ou igualar uma colônia de bactérias B.\n')

print('A colônia de bactérias A possui uma taxa de crescimento de 3%\n')
print('A colônia de bactérias B possui uma taxa de crescimento de 1.5%\n')

b1 = int(input('Digite a quantidade inicial de bactérias da Colônia A: '))
b2 = int(input('Digite a quantidade inicial de bactérias da Colônia B: '))
c = 1
while b1 <= b2:
    b1 *= 1.03
    b2 *= 1.015
    c += 1
print('\n---------------------\n',f'Dia {c} \nColônia A {round(b1)} bactérias \nColônia B {round(b2)} bactérias'
      ,'\n---------------------\n')

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.


print('\n--------------------\nTABUADA 2.0\n--------------------\n')

run = 1
while run == 1:
    numero = input('\nDigite um número para imprimir a respectiva tabuada:  ')
    numero.replace(',','.')

    for c in range(11):
        while numero.strip().isdigit() == False:
            numero = input('\n----------------------\n[ERRO]Digite um número. Por favor, digite a nota novamente:')

        print('\n|',f'{int(numero)} x {c} = {int(numero) * c} |')
   
    run = input('\nDeseja saber outra tabuada? \n(sim - 1, não - 0):  ')
    while run.strip().isdigit() == False:
            run = input('\nDeseja saber outra tabuada? (sim - 1, não - 0):  ')
    run = int(run)

print('\n--------------------\nTABUADA 2.0 foi encerrado.\n--------------------\n')

7) [...]faça um programa que peça um número inteiro e determine se ele é ou não um número primo.

#Título de apresentação do programa
print('\n-------------------------------\n','PRIMO 2.0\n','Descubra se um número é primo','\n-------------------------------')
run = 1
while run == 1:
    #coleta o número do usuario
    numero_dado = input('\nDigite um número inteiro:\n')
    a = []
    divisores = []
    #checa se o número é um número inteiro
    while numero_dado.isdigit() == False:
        numero_dado = input('[ERRO]  Digite novamente um número inteiro:\n')
    numero_dado = int(numero_dado)

    if numero_dado == 0:
        print(f'O número {numero_dado} não é primo')
    elif numero_dado == 1:
        print(f'O número {numero_dado} Não é primo')
    else:
        for c in range(2,numero_dado):
            r = numero_dado % c
        #grava o resultado da divisao na lista a
            if r == 0:
                a.append(r)
                divisores.append(c)
                break
            else:
                a.append(r)
    #print(a)
    #checa se existe algua divisao inteira

    if numero_dado == 2:
        print(f'O número {numero_dado} é primo')
    while len(a) !=0:
        if 0 in a:        
            print(f'O número {numero_dado} não é primo\n')
            print(f'O número {numero_dado} é divisível por {divisores}')
            break
        else:
            print(f'O número {numero_dado}é primo')
            break
    run = int(input('\n----------------------\nGostaria de testar outro número?\n(1 - Sim / 2 - Não)\n'))

print('------------------------------------------\nObrigado por usar PRIMO 2.0!\n-----------------------------------------\n')
2 respostas
solução!

Olá! Seja bem-vindo à comunidade de desenvolvedores!

É ótimo ver que você está compartilhando suas soluções de exercícios para receber feedback. Vamos analisar os códigos que você compartilhou:

Cálculo do crescimento de bactérias: Seu código parece estar correto. Ele calcula corretamente o número de dias necessários para a colônia de bactérias A ultrapassar a colônia de bactérias B, considerando as taxas de crescimento fornecidas. Uma sugestão seria adicionar comentários ao seu código para torná-lo mais legível para outros desenvolvedores.

Tabuada: Seu código para gerar a tabuada de um número escolhido pelo usuário também parece estar correto. Ele verifica se a entrada do usuário é um número inteiro e, em seguida, imprime a tabuada para esse número. Uma sugestão seria tratar a entrada do usuário para permitir números flutuantes, já que a função isdigit() retorna False para números flutuantes.

Número primo: Seu código para verificar se um número é primo ou não está correto. Ele verifica se o número dado é divisível por qualquer número no intervalo de 2 até o número dado. Se for, o número não é primo. Caso contrário, é primo. Uma sugestão seria otimizar o código para verificar apenas até a raiz quadrada do número dado, pois um número maior não pode ser um divisor.

Continue compartilhando seu trabalho e aprendendo com os outros. Parabéns pelo seu esforço!

Lembre-se de deixar seu tópico como resolvido ou concluído para obter alcance!

Pablo, não esperava um reply tão rápido!

Obrigado pelas considerações e sugestões! Vou tentar essas dicas nos códigos que compartilhei e no próximos que eu vier a desenvolver.

Grande abraço!