Python - bucle FOR con problemas

 
Vista:
sin imagen de perfil

bucle FOR con problemas

Publicado por Liviu (2 intervenciones) el 24/01/2023 12:06:43
Buenos dias a todos!
Intento hacer un proyecto en Python y tengo un problema con el bucle for que no me deja avazar.
quiero hacer algo parecido con los sorteos de Champions League, cojer un equipo, comparar con todo el equipo de grupo A por ejemplo y si no estan del mismo pais ni del mismo bombo añadirlo al grupo y si no hace lo mismo con el grupo B y con el grupo C.
El problema es el siguiente que con el primer equipo que comparo me sale bien pero despues que lo añade donde se debe cuando cojo para hacer la comparacion con el siguiente equipo no tiene en cuenta ni el pais ni el bombo del anterior.
os agradezco mucho si me explicais que hago mal y como coregirlo.
(tengo solo un mes de estudiar programacion y lo hago por mi cuenta asi que aunque el proyecto parezca grande para mi experiencia lo quiero acabar. He estudiado todo lo que he encontrado sobre mi problema y no tengo ninguna idea mas asi que por eso he escrito)
No tengo duda que para los que teneis experiencia eso es nada :)))
Gracias con antelacion!

Aqui os dejo lo que he hecho yo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
class Equipo:
    def __init__(self, nombre, pais, bombo):
        self.nombre = nombre
        self.pais = pais
        self.bombo = bombo
 
    def info_e(self):
        print(self.nombre, self.pais, self.bombo)
 
grA = []
grB = []
grC = []
 
e1 = Equipo('Real Madrid', 'ESP', '1')
e2 = Equipo('Eintracht Frankfurt' ,'GER', '1')
e3 = Equipo('Manchester City', 'ENG', '1')
 
 
e4 = Equipo('Liverpool ', 'ENG', '2')
e5 = Equipo('Chelsea' ,'ENG', '2')
e6 = Equipo('Barcelona', 'ESP', '2')
 
 
e17 = Equipo('Borussia Dortmund', 'GER', '3')
e18 = Equipo('Salzburgo', 'AUT', '3')
e19 = Equipo('Shakhtar Donetsk', 'UKR', '3')
 
 
grA.append(e1)
grB.append(e2)
grC.append(e3)
 
a = e4
contador = 0
for e in grA:
    if a.pais == e.pais or a.bombo == e.bombo:
        break
        contador = contador + 1
    else:
        grA.append(a)
 
contador = 0
for e in grB:
    if a in grA:
        break
    elif a.pais == e.pais or a.bombo == e.bombo:
        break
        contador = contador + 1
    else:
        grB.append(a)
 
contador = 0
for e in grC:
    if a in grA:
        break
    elif a in grB:
        break
    elif a.pais == e.pais or a.bombo == e.bombo:
        break
        contador = contador + 1
    else:
        grC.append(a)
 
 
a = e5
contador = 0
for e in grA:
    if a.pais == e.pais or a.bombo == e.bombo:
        break
        contador = contador + 1
    else:
        grA.append(a)
 
contador = 0
for e in grB:
    if a in grA:
        break
    elif a.pais == e.pais or a.bombo == e.bombo:
        break
        contador = contador + 1
    else:
        grB.append(a)
 
contador = 0
for e in grC:
    if a in grA:
        break
    elif a in grB:
        break
    elif a.pais == e.pais or a.bombo == e.bombo:
        break
        contador = contador + 1
    else:
        grC.append(a)
 
 
 
 
 
 
 
 
 
print('------- GRUPO A --------')
for e in grA:
    e.info_e()
 
print('-----------------------')
 
print('------- GRUPO B --------')
for e in grB:
    e.info_e()
 
print('-----------------------')
 
print('------- GRUPO C --------')
for e in grC:
    e.info_e()
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Solucionado: bucle FOR con problemas

Publicado por ElProfeAlejo (1 intervención) el 25/01/2023 01:13:04
class Equipo:
def __init__(self, nombre, pais, bombo):
self.nombre = nombre
self.pais = pais
self.bombo = bombo

def info_e(self):
print(self.nombre, self.pais, self.bombo)

#Crear 3 grupos vacios (Grupos A,B,C)
grupos = [[] for _ in range(3)]

#Crear Equipos de Futbol
e1 = Equipo('Real Madrid', 'ESP', '1')
e2 = Equipo('Eintracht Frankfurt' ,'GER', '1')
e3 = Equipo('Manchester City', 'ENG', '1')

e4 = Equipo('Liverpool ', 'ENG', '2')
e5 = Equipo('Chelsea' ,'ENG', '2')
e6 = Equipo('Barcelona', 'ESP', '2')

e7 = Equipo('Borussia Dortmund', 'GER', '3')
e8 = Equipo('Salzburgo', 'AUT', '3')
e9 = Equipo('Shakhtar Donetsk', 'UKR', '3')

#Asignar los equipos a una lista
equipos = [e1,e2,e3,e4,e5,e6,e7,e8,e9]

#Chocolateo
for x in equipos:
for indice,_ in enumerate(grupos):
if not grupos[indice]:
grupos[indice].append(x)
break
else:
aplica = True
for clubes in grupos[indice]:
if (clubes.nombre == x.nombre or clubes.pais == x.pais or clubes.bombo==x.bombo): aplica = False
if aplica == True:
grupos[indice].append(x)
break

#Imprimir Grupos
print('------- GRUPO A --------')
for e in grupos[0]:
e.info_e()

print('-----------------------')

print('------- GRUPO B --------')
for e in grupos[1]:
e.info_e()

print('-----------------------')

print('------- GRUPO C --------')
for e in grupos[2]:
e.info_e()
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Solucionado: bucle FOR con problemas

Publicado por Liviu (2 intervenciones) el 02/02/2023 10:46:40
Muchisimas gracias Profe, todo perfecto!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar