为了生活联系的方便,某班级需要建立一个同学通讯录。通讯录中包含:姓名、性别、出生日期、手机号这几项。 现需要根据通讯录统计 2000 年后(包括 2000 年)出生你的男生人数,请编程实现这个通讯并完成人数统计要求
时间: 2024-02-27 14:59:20 浏览: 82
好的,根据您的要求,我可以给您提供一个 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 实现:
```python
import datetime
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
# 创建一个通讯录并添加学生
address_book = AddressBook()
address_book.add_student(Student("张三", "male", datetime.date(2001, 1, 1), "123456789"))
address_book.add_student(Student("李四", "male", datetime.date(2002, 2, 2), "234567890"))
address_book.add_student(Student("王五", "female", datetime.date(1999, 3, 3), "345678901"))
# 统计符合条件的学生人数并输出
count = address_book.count_male_students_born_after_2000()
print("2000 年及以后出生的男生人数为:", count)
```
在这个实现中,我们首先定义了一个 `Student` 类来表示每个学生,包含了姓名、性别、出生日期和手机号。然后定义了一个 `AddressBook` 类来表示通讯录,其中包含了一个学生列表。我们可以通过 `add_student` 方法向通讯录中添加学生。最后,我们定义了一个 `count_male_students_born_after_2000` 方法来统计符合条件的学生人数。
在主程序中,我们创建了一个通讯录并向其中添加了三个学生。然后调用 `count_male_students_born_after_2000` 方法统计符合条件的学生人数,并将结果输出。输出的结果应该为:2000 年及以后出生的男生人数为:2。
为了生活联系的方便,某班级需要建立一个同学通讯录。通讯录中包含:姓名、性别、出生日期、手机号这几项。现需要根据通讯录统计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。最终输出统计结果。
希望这个程序能够满足你的需求。如果有其他问题,请随时提出。
阅读全文