用属性和函数提问
Ask questions with attributes and functions
这是我的代码:
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))
代码的最后一部分(在 return 人之后)没有按照我想要的方式工作。我希望 question_height 函数从 height 属性中选择一个随机数,而 question_name 函数从 name 属性中选择一个随机名称。
有人知道我可以做些什么来让它发挥作用吗?
你只用 random.choice
功能就好了。它需要一系列项目,并随机选择其中一个。首先,您必须将 People
对象列表转换为名称或身高列表。然后,只需将列表传递给 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)
这是我的代码:
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))
代码的最后一部分(在 return 人之后)没有按照我想要的方式工作。我希望 question_height 函数从 height 属性中选择一个随机数,而 question_name 函数从 name 属性中选择一个随机名称。
有人知道我可以做些什么来让它发挥作用吗?
你只用 random.choice
功能就好了。它需要一系列项目,并随机选择其中一个。首先,您必须将 People
对象列表转换为名称或身高列表。然后,只需将列表传递给 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)