为了生活联系的方便,某班级需要建立一个同学通讯录。通讯录中包含:姓名、性别、出生日期、 手机号这几项。现需要根据通讯录统计 2000 年后(包括 2000 年)出生的男生人数,请编程创建这 个通讯并完成符合条件的人
时间: 2024-04-07 22:29:30 浏览: 59
以下是一个可能的实现:
```python
class Student:
def __init__(self, name, gender, birthdate, phone_number):
self.name = name
self.gender = gender
self.birthdate = birthdate
self.phone_number = phone_number
class AddressBook:
def __init__(self):
self.students = []
def add_student(self, student):
self.students.append(student)
def count_male_students_born_after_2000(self):
count = 0
for student in self.students:
if student.gender == "male" and student.birthdate.year >= 2000:
count += 1
return count
```
我们首先定义了一个 `Student` 类来表示每个学生,包含了姓名、性别、出生日期和手机号。然后定义了一个 `AddressBook` 类来表示通讯录,其中包含了一个学生列表。我们可以通过 `add_student` 方法向通讯录中添加学生。最后,我们定义了一个 `count_male_students_born_after_2000` 方法来统计符合条件的学生人数。
下面是一个使用示例:
```python
address_book = AddressBook()
address_book.add_student(Student("张三", "male", datetime.date(2002, 4, 5), "123456789"))
address_book.add_student(Student("李四", "male", datetime.date(1999, 10, 15), "987654321"))
address_book.add_student(Student("王五", "female", datetime.date(2001, 5, 20), "567890123"))
count = address_book.count_male_students_born_after_2000()
print(count) # 输出 1
```
在这个示例中,我们创建了一个通讯录并向其中添加了三个学生。其中只有一个符合条件(出生日期在 2000 年及以后,且性别为男性),因此最后输出的结果为 1。
阅读全文