无法获取是否使用对象变量作为参数

Can't get if to use Object variable as parameter

好的,这是我的代码:

class Alguien:
    def __init__(self, age, genre):
        self.age=age
        self.genre=genre

#ejercicio 1

def ejercicios():
    a=0
    personas=[object]*100
    contHombre=0
    contMujer=0
    mayEighteen=0
    while a<100:
        edad=randint(0,100)
        genero=randint(0,1)
        personas[a]=Alguien(edad, genero)
        if personas[a].genre==1:
            contHombre+=1
        elif personas[a].genre==0:
            contMujer+=1
        elif personas[a].age>18:
            mayEighteen+=1
        
        a+=1

    print(f"{mayEighteen}")

ejercicios()

我正在学习 python,我正在尝试使用这个 class“Alguien”为一百人的列表设置年龄和流派。出于某种原因,它确实承认 If 中流派的价值,但不承认年龄的价值。这是给我带来问题的代码部分:

elif personas[a].age>18:
    mayEighteen+=1

a+=1

print(f"{mayEighteen}")

其中personas[a].age永远为0,求助^^

elif 只有在前面的 ifelif 为假时才会执行。由于 genre == 1genre == 0 为真,因此它永远不会执行 age > 18 测试。

为此使用单独的 if 而不是 elif

当第二个条件与第一个相反时,您还应该使用 else: 而不是 elif

def ejercicios():
    a=0
    personas=[]
    contHombre=0
    contMujer=0
    mayEighteen=0
    for a in range(100):
        edad=randint(0,100)
        genero=randint(0,1)
        personas.append(Alguien(edad, genero))
        if personas[a].genre==1:
            contHombre+=1
        else:
            contMujer+=1
        if personas[a].age>18:
            mayEighteen+=1