0
Good people, I’m making a futsal code and I’m having certain obstacles with it. Currently, I am studying Python and for the first time applying POO, so I need you to give me a light on how to proceed here, since I tried some ways and it was not, at least links to help rs.
python
class Pessoa():
def __init__(self, nome, sobrenome, posicao):
self.nome = str(nome)
self.sobrenome = str(sobrenome)
self.posicao = str(posicao)
class Cartola():
def __init__(self, RB, DD, DP, A, F, G, I, PP, PE, FC, GC, CA, CV, FS):
self.RB = float(RB * 1.5)
self.DD = float(DD * 3)
self.DP = float(DP * 7)
self.A = float(A * 5)
self.F = float(F * 1.5)
self.G = float(G * 8)
self.I = float(I * -0.5)
self.PP = float(PP * -4)
self.PE = float(PE * -0.3)
self.FC = float(FC * -0.5)
self.GC = float(GC * -5)
self.CA = float(CA * -2)
self.CV = float(CV * -5)
self.FS = float(FS * 0.5)
class Goleiro(Cartola):
def __init__(self):
super().__init__(DD, DP, PE, FC, CA, CV, FS)
def getPontosGol(self):
pontos = self.RB + self.DD + self.DP + self.PE + self.FC + self.CA + self.CV + self.FS
return pontos
class Jogador(Cartola):
def __init__(self, posicao, RB, A, F, G, I, PP, PE, FC, GC, CA, CV, FS):
super().__init__(RB, A, F, G, I, PP, PE, FC, GC, CA, CV, FS)
def getPontosJog(self):
pontos = self.RB + self.A + self.F + self.G + self.I + self.PP + self.PE + self.FC + self.GC + self.CA + self.CV + self.FS
return pontos
lista_team = []
listaTimeUm = []
listaTimeDois = []
def cadastroGoleiro():
name_team = input('Digite o nome do seu time: \n')
lista_team.append(name_team)
# Cadastro Goleiro
print('--- Cadastrando o Goleiro ! ---\n')
nomeCompletoGoleiro = input('Insira o nome completo do Goleiro: ')
separado = nomeCompletoGoleiro.split(' ')
defesaDificil = input('Digite a quantidade de defesas difíceis: ')
defesaPenalti = input('Digite a quantidade de defesas de pênalti: ')
passeErrado = input('Digite a quantidade de passes errados: ')
faltaCometida = input('Digite a quantidade de faltas cometidas: ')
cartaoAmarelo = input('Digite a quantidade de cartões amarelos: ')
cartaoVermelho = input('Digite a quantidade de cartões vermelhos: ')
faltaSofrida = input('Digite a quantidade de faltas sofridas: ')
pessoal = Pessoa(separado[0], separado[1], 'Goleiro')
goleiro = Goleiro(defesaDificil, defesaPenalti, passeErrado, faltaCometida, cartaoAmarelo, cartaoVermelho, faltaSofrida)
listaTimeUm.append(goleiro.getPontosGol().pontos)
cont = 0
pontosTotalJog = 0
nomeCompletoJogador = []
posicao = []
jogador = []
pessoa = []
def cadastroJogador():
while cont != 4:
print('--- Cadastrando o Jogador ! ---')
full_name = input('Insira o nome completo do jogador: ')
nomeCompletoJogador[cont].append(full_name)
position = input('Insira a posição do jogador: ')
posicao[cont].append(position)
# Perguntas do jogador !
roubadaBola = input('Digite a quantidade de roubadas de bola: ')
assistencia = input('Digite a quantidade de assistências: ')
finalizacao = input('Digite a quantidade de finalizações: ')
gol = input('Digite a quantidade de gols: ')
impedimento = input('Digite a quantidade impedimentos: ')
penaltiPerdido = input('Digite a quantidade de pênaltis perdidos: ')
passeErrado = input('Digite a quantidade de passes errados: ')
faltaCometida = input('Digite a quantidade de faltas cometidas: ')
golContra = input('Digite a quantidade de gols contras: ')
cartaoAmarelo = input('Digite a quantidade de cartões amarelos: ')
cartaoVermelho = input('Digite a quantidade de cartões vermelhos: ')
faltaSofrida = input('Digite a quantidade de faltas sofridas: ')
pessoa[cont] = Pessoa(separado[0], separado[1], posicao[cont])
jogador[cont] = Jogador(posicao[cont], roubadaBola, assistencia, finalizacao, gol, impedimento, penaltiPerdido, passeErrado, faltaCometida, golContra, cartaoAmarelo, cartaoVermelho, faltaSofrida)
listaTimeUm.append(jogador[cont].getPontosJog().pontos)
cont += 1
cadastroGoleiro()
cadastroJogador()
This code is generating this error:
Traceback (most recent call last):
File "C:\Python37\Scripts\futsal.py", line 105, in <module>
cadastroGoleiro()
File "C:\Python37\Scripts\futsal.py", line 62, in cadastroGoleiro
goleiro = Goleiro(defesaDificil, defesaPenalti, passeErrado,
faltaCometida, cartaoAmarelo, cartaoVermelho, faltaSofrida)
TypeError: __init__() takes 1 positional argument but 8 were given
- The module I’m looking for to know what kind of error it is, but it seems to be something regarding calling the function at the end, but I didn’t understand what.
- The 62 line was about me having instantiated in the Goalkeeper class my goalkeeper object with the answers I received from the questions I asked in the inputs, but I did not understand why he wants me to manage only and 1 argument being that I need 8. I am missing in the use of super() in function init of the Goalkeeper class?
PS: I haven’t even been able to perform the Player function yet due to such error.