1
resposta

[Meu codigo] vs refatorado por IA

Fiz meu codigo da seguinte forma:


dias_atvA = int(input("Informe os dias para a atividade A: "))
dias_atvB = int(input("Informe os dias para a atividade B: "))
dias_atvC = int(input("Informe os dias para a atividade C: "))
tempo_total = dias_atvA + dias_atvB + dias_atvC

if dias_atvA < 0 or dias_atvB < 0 or dias_atvC < 0:
    print("Erro: Dias não podem ser negativos.")
    print(f"Valor informado - Atividade A: {dias_atvA}")
    print(f"Valor informado - Atividade B: {dias_atvB}")
    print(f"Valor informado - Atividade C: {dias_atvC}")
else:
    print(f"Tempo total do projeto é de: {tempo_total} dias")

Caso tenha valor negativo ele devolve a mensagem de erro e também os dias digitados para cada atividade para que a pessoa possa verificar o que ela digitou de errado!

Resolvi pedir pro Github Co-Pilot da empresa fazer a versão dele e ela devolveu como:

def calcular_tempo_total():
    try:
        # Solicita ao usuário o número de dias para cada atividade
        dias_a = int(input("Informe os dias para a atividade A: "))
        dias_b = int(input("Informe os dias para a atividade B: "))
        dias_c = int(input("Informe os dias para a atividade C: "))

        # Verifica se algum dos valores é negativo
        if dias_a < 0 or dias_b < 0 or dias_c < 0:
            print("Erro: Dias não podem ser negativos.")
            print(f"Valores informados - Atividade A: {dias_a}, Atividade B: {dias_b}, Atividade C: {dias_c}")
        else:
            # Calcula o tempo total
            tempo_total = dias_a + dias_b + dias_c
            print(f"Tempo total do projeto: {tempo_total} dias")

    except ValueError:
        print("Erro: Por favor, insira um número inteiro válido para os dias.")

# Chama a função para executar o programa
calcular_tempo_total()

Ela manteve meu tratamento de erro quanto inserido negativo, mas de uma forma mais simples de escrever e entender.

Porém, Para quem não entendeu a IA colocou uma validação extra de tratamento de erro caso se insira uma informação não numérica como Letras (A, B, C etc.) ou números quebrados (3.12, 5,4) o código já pula do bloco try para o except. dando mensagem de que só deve digitar números inteiros. Neste caso, ele não aguarda terminar de colocar todos os valores, se já no primeiro ele encontrar erro ele já vai pra except

A resposta do meu teste com o código da IA já nos dias da 2a atividade:


Informe os dias para a atividade A: 5
Informe os dias para a atividade B: A
Erro: Por favor, insira um número inteiro válido para os dias.
1 resposta

Oi Anderson,

Excelente análise comparativa entre seu código e a versão refatorada pela IA! 👍

A principal melhoria da IA foi a introdução do tratamento de exceções com try-except. Isso torna o código mais robusto. 💪

Seu código funciona corretamente, mas a versão refatorada pela IA é mais completa. Melhorias que você provavelmente implementaria em futuras revisões. 💻

Para saber mais: Documentação oficial do Python sobre tratamento de erros com try e except.

Continue explorando e aprimorando seus conhecimentos! 🧐