Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 用属性和功能提问_Python_Python 3.x_Function_Random_Attributes - Fatal编程技术网

Python 用属性和功能提问

Python 用属性和功能提问,python,python-3.x,function,random,attributes,Python,Python 3.x,Function,Random,Attributes,这是我的代码: class People: def __repr__(self): return f"A('{self.name}', {self.age})" def __init__(self, name, age): self.name = name self.age = age def sortlist(): people = [] file = open('people.txt',

这是我的代码:

class People:

    def __repr__(self):
        return f"A('{self.name}', {self.age})"

    def __init__(self, name, age):
        self.name = name
        self.age = age

def sortlist():
    people = []
    file = open('people.txt', 'r').readlines()

    for k in file:
        k = k.split()
        people.append(People(k[0], float(k[1])))
    people.sort(key=lambda c: (c.age, c.name))
    g = 0
    for g in range(len(people)):
        people[g].height = g + 1
return people

def question_height():
    for i in sortlist():
            print(random(i[0]))

def question_name():
    for i in sortlist():
        for i in range(0,104):
            print(random.choice(i.name))
代码的最后一部分(返回人员后)没有按我希望的方式工作。我想让question_height函数从height属性中选择一个随机数,让question_name函数从name属性中选择一个随机名称


有人知道我能做些什么来让它工作吗?

只有使用
random.choice
函数,您才可以。它接受一系列项目,并随机选择其中一项。首先,您必须将
对象列表转换为姓名或身高列表。然后,将列表传递给
random.choice
函数

def question_height():
    all_heights = [person.height for person in sortlist()]
    print(random.choice(all_heights))

def question_name():
    all_names = [person.name for person in sortlist()]
    print(random.choice(all_names))
另一个选项是将Person对象列表直接传递到
random.choice
,然后只打印其名称或高度

def get_random_person(people):
    return random.choice(people)

def question_height():
    people = sortlist()
    random_person = get_random_person(people)
    print(random_person.height)
    
def question_name():
    people = sortlist()
    random_person = get_random_person(people)
    print(random_person.name)

您只需要使用
random.choice
函数即可。它接受一系列项目,并随机选择其中一项。首先,您必须将
对象列表转换为姓名或身高列表。然后,将列表传递给
random.choice
函数

def question_height():
    all_heights = [person.height for person in sortlist()]
    print(random.choice(all_heights))

def question_name():
    all_names = [person.name for person in sortlist()]
    print(random.choice(all_names))
另一个选项是将Person对象列表直接传递到
random.choice
,然后只打印其名称或高度

def get_random_person(people):
    return random.choice(people)

def question_height():
    people = sortlist()
    random_person = get_random_person(people)
    print(random_person.height)
    
def question_name():
    people = sortlist()
    random_person = get_random_person(people)
    print(random_person.name)