Arrendondar casas decimais e Quebra de linha

Boa tarde a todos, estou tentando resolver uma questão. Segue em anexo o arquivo com a questão:

A questão pede pra dividir o salário do funcionário (Classe funcionário herda de pessoa) em 2 parcelas 40 e 60 % em 2 métodos!
Na hora de exibir o resultado como eu faço pra o valor do salário saia com 2 casas decimais?

Segue abaixo o codigo do programa:

class Funcionario(Pessoa):
matricula = “”
salario = “”

def __init__(self, matricula, salario):
    self.matricula = matricula
    self.salario = salario

def getSalario(self) :
    return self.salario

def setSalario(self, salario) :
    self.salario = salario
	
def parc1(self):
    p1 = salario * 0.4
    
    return self.p1

def parc2(self):
    p2 = salario * 0.6
    
    return self.p2

def Status():
Nesse método Status exibiria o resultado Mais ou menos assim:

     public String Status(){
    return "1ª parcela: " + String.format("%.2f", (salario - parc1())) +
            "\n2ª parcela: " + String.format("%.2f", (salario - parc2()));
}

Só que seria em Python, esse código em java é só um exemplo. O salário fica com 2 casas decimais, como faz isso no Python?

Agradeço a ajuda!

Essa é a questão:
listaHeranca.pdf (91,7 KB)

Olha só, primeiro sua dúvida nao é sobre herança, é sobre como mostrar o salário com 2 casas decimais. Se usar um título mais específico para o seu problema é mais fácil conseguir uma resposta.

A partir do python 3.6 (se nao estou enganado), você pode usar f-strings para formatar valores, o que fica similar a seu exemplo de java:

  return f"1ª parcela: {self.parc1():.2f}\n2ª parcela: {self.parc2():.2f}"

Outras coisas:

  • Os métodos parc1 e parc2 já calculam o valor da parcela, nao precisa descontar do salário.
  • Evite abreviar o nome dos métodos, chame de parcela1 e parcela2, ou até mesmo primeira_parcela, segunda_parcela
  • Em python nao é usual criar esses getters and setters.
  • p1 em parc1 e p2 em parc2 sao variáveis do método, nao atributos da classe, você nao pode usar self.p1 apenas p1diretamente.
  • Nao é necessário inicializar matricula e salario com valores vazios, principalmente salário com uma string vazia é bem confuso pra quem lê o código.

Bom dia, no lugar deles colocaria que?

Eu uso uma versão anterior a 3

Nao precisa colocar nada. O atributo fica visível como funcionario.salario e funcionario.matricula automaticamente.
Se quiser adicionar validaçao pode pesquisar sobre o decorator property, mas nao é tao comum ter validaçao em setter.

Aqui tem vários exemplos de como fazer usando versoes anteriores: https://pyformat.info/