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)