为了生活联系的方便,某班级需要建立一个同学通讯录。通讯录中包含:姓名、性别、出生日期、手机号这几项。 现需要根据通讯录统计 2000 年后(包括 2000 年)出生你的男生人数,请编程实现这个通讯并完成人数统计要求
时间: 2024-02-27 10:59:20 浏览: 23
好的,根据您的要求,我可以给您提供一个 Python 的代码实现。
```python
import csv
# 打开通讯录文件
with open('通讯录.csv', 'r') as f:
reader = csv.reader(f)
# 初始化男生人数
male_count = 0
for row in reader:
# 判断是否为男生
if row[1] == '男' and int(row[2][0:4]) >= 2000:
male_count += 1
# 输出男生人数
print('2000 年后出生的男生人数为:', male_count, '人')
```
在这个代码中,我们使用 Python 内置的 csv 库打开了一个名为“通讯录.csv”的文件,并对文件中的每一行进行了遍历。在遍历过程中,我们判断了每一行的性别和出生日期是否符合要求,如果符合要求,就将男生人数计数器加一。最后,我们输出了统计结果。需要注意的是,您需要将代码中的“通讯录.csv”替换成您实际的通讯录文件名。
相关问题
为了生活联系的方便,某班级需要建立一个同学通讯录。通讯录中包含:姓名、性别、出生日期、 手机号这几项。现需要根据通讯录统计 2000 年后(包括 2000 年)出生的男生人数,请编程创建这 个通讯并完成符合条件的人
以下是一个可能的实现:
```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。
为了生活联系的方便,某班级需要建立一个同学通讯录。通讯录中包含:姓名、性别、出生日期、手机号这几项。现需要根据通讯录统计2000年后(包括2000年)出生的男生人数,请编程实现这个通讯并完成人数统计要求。
好的,根据你的要求,我可以提供一个Python程序来实现这个需求。以下是代码:
```python
import csv
# 打开通讯录文件
with open('通讯录.csv', encoding='utf-8') as f:
reader = csv.DictReader(f)
male_count = 0
for row in reader:
# 判断是否为男生且出生日期在2000年及以后
if row['性别'] == '男' and int(row['出生日期'][-4:]) >= 2000:
male_count += 1
print("2000年后出生的男生人数为:", male_count)
```
请将通讯录文件以CSV格式保存,并将文件名修改为“通讯录.csv”,确保程序能够读取到正确的数据。程序会读取通讯录文件中的每一行数据,判断是否为男生且出生日期在2000年及以后,如果是,则将男生人数加1。最终输出统计结果。
希望这个程序能够满足你的需求。如果有其他问题,请随时提出。