2
respostas

coloquei um adendo quando o valor do saque for maior que o saldo

coloquei um adendo quando o valor do saque for maior que o saldo, informando que a pessoa entrar no limite especial, so que no faz o primeiro saque informa direitinho, no segundo saque não atualiza o novo limite, como faço para ir atualizando no novo limite

class Conta:
    def __init__(self, numero, titular, saldo, limite):
        self.__numero = numero
        self.__titular = titular
        self.__saldo = saldo
        self.__limite = limite

    def extrato(self):
        print("O saldo do titular {} é de {} reais".format(self.__titular, self.__saldo))

    def depositar(self, valor):
        self.__saldo += valor
    def sacar(self, valor):
        if(valor <= self.__saldo):
            self.__saldo -= valor

        elif(valor >= self.__saldo):
            print('Você entrou no limite especial de {} seu novo limite {} reais, '
                  .format(self.__limite, self.__limite - valor))
        else:
            print('Seu saldo é insuficiente!!')
2 respostas

Olá, Luciano! Entendo que você queira atualizar o limite especial a cada saque que exceda o saldo. Para isso, você precisa realmente alterar o valor do atributo self.__limite quando o saque é maior que o saldo. No seu código, você está apenas imprimindo a informação, mas o valor do atributo self.__limite não está sendo modificado.

Vamos alterar o método sacar para que o limite seja atualizado. Veja:

def sacar(self, valor):
    if(valor <= self.__saldo):
        self.__saldo -= valor
    elif(valor > self.__saldo and valor <= self.__saldo + self.__limite):
        valor_saque = valor - self.__saldo
        self.__saldo = 0
        self.__limite -= valor_saque
        print('Você entrou no limite especial. Seu novo limite é de {} reais.'.format(self.__limite))
    else:
        print('Seu saldo e limite são insuficientes!!')

Nesse código, se o valor do saque for maior que o saldo, mas menor ou igual ao saldo mais o limite, o programa calcula o valor que será sacado do limite (valor_saque), zera o saldo e subtrai o valor_saque do limite. Assim, o limite será atualizado a cada saque que exceda o saldo.

Espero ter ajudado e bons estudos!

obrigado Matheus Brandino, agora entendi, tinha que a cada saque decrementar do limite. valeu!