1
resposta

Calculando a gorjeta em um restaurante

import os
import msvcrt

def limpar_tela():
    os.system("cls" if os.name == "nt" else "clear")

def pausa_limpa(texto):
    print(texto)
    print("Pressione qualquer tecla para continuar", end="", flush=True)
    msvcrt.getch()
    limpar_tela()

def num_positivo(num):
    if num < 0:
        pausa_limpa("\nNúmero negativo, digite novamente")
        return False
    else:
        return True

while True:
    try:
        valor_conta = float(input("Digite o valor total da conta: "))
        if num_positivo(valor_conta):
            porcentagem = float(input("Digite o valor da porcentagem: "))
            if num_positivo(porcentagem):
                valor_gorjeta = (porcentagem/100) * valor_conta
                valor_total = valor_gorjeta + valor_conta

                print(f"\nValor da gorjeta: R${valor_gorjeta:.2f}")
                print(f"Valor total a pagar: R${valor_total:.2f}")

                break
            else:
                continue
        else:
            continue


    except ValueError:
        pausa_limpa("\nEntrada inválida, digite novamente")

Matricule-se agora e aproveite até 50% OFF

O maior desconto do ano para você evoluir com a maior escola de tecnologia

QUERO APROVEITAR
1 resposta

Oi Rafaela, tudo bem? 😊

Parabéns pelo seu código! Ele está muito bom e funcional para calcular a gorjeta. 👍

A sua lógica para validar se os números são positivos está correta. A utilização do while True com try-except para tratar ValueError também é uma ótima prática para garantir que o usuário insira dados válidos. 💪

Se quiser explorar um pouco mais sobre validação de entrada e tratamento de erros em Python, aqui estão alguns links que podem ser úteis:

🎓 Para saber mais:

Continue praticando e explorando! 🔨