Во-первых, ты должен import math
import math
class Person:
def __init__(self, name, age):
"""doc string 1"""
self.name = name
self.age = age
Я не думаю, что show_person
должно быть выделено внутри твоего класса
def show_person(person_list):
"""doc string 2"""
for person in person_list:
print("Name:", person.name, "\t Age:", person.age)
То же самое относится и к твоему std_dev
функция. Другое дело, что вам не нужно принимать длину списка в качестве аргумента в функции. Мы можем легко найти его с помощью len(person_list)
, как показано ниже:
def std_dev(person_list):
"""doc string 3"""
total, mean, sd = 0.0, 0.0, 0.0
# No reason to take length of list as argument
# We can just get it this way
length = len(person_list)
for person in person_list:
total += person.age
mean = total / length
for person in person_list:
sd += math.pow(person.age - mean, 2)
return math.sqrt(sd / length)
Пример выполнения:
p1 = Person("Alex", 36)
p2 = Person("Billie", 34)
p3 = Person("Carol", 32)
persons = [p1, p2, p3]
show_person(persons)
print(std_dev(persons))
Вывод:
Name: Alex Age: 36
Name: Billie Age: 34
Name: Carol Age: 32
1.632993161855452
Надеюсь, это поможет:)