1
resposta

conta_do_daniela = ContaSalario(3)/ContaSalario(03)

Código passado em aula, funcionamento perfeito


conta_do_gilherme = ContaSalario(17)
conta_do_gilherme.deposita(500)

conta_do_daniela = ContaSalario(3)
conta_do_daniela.deposita(5000)

conta_do_paulo = ContaSalario(45)
conta_do_paulo.deposita(1000)

Alguém sabe me dizer porque da erro quando substituo 3 por 03?

conta_do_gilherme = ContaSalario(17)
conta_do_gilherme.deposita(500)

conta_do_daniela = ContaSalario(03)
conta_do_daniela.deposita(5000)

conta_do_paulo = ContaSalario(45)
conta_do_paulo.deposita(1000)

Classe:

class ContaSalario():

  def __init__(self,codigo):
    self._codigo = codigo
    self._saldo = 0

  def __eq__(self,outro):
    if type(outro) != ContaSalario:
      return False

    return self._codigo == outro._codigo 

  def deposita(self,valor):
    self._saldo += valor

  def __str__(self):
    return "[>>Codigo {} Saldo {}<<]".format(self._codigo,self._saldo)
class ContaMultiploSalario (ContaSalario):
  pass
1 resposta

Olá, Henrique.

Inteiros que começam com 0 são ilegais no Python 3, por conta da ambiguidade.

Um inteiro que começa com 0, deve ser seguido por um caractere que determina o sistema numérico que ele se encaixa: 0x para hexa,0o para octal, 0b para binário.

Além disso, inteiros são números, e números nunca começam com zero, pois zeros à esquerda da vírgula não alteram seu valor.

Fonte: https://stackoverflow.com/questions/63026713/leading-zeros-are-not-allowed-in-python