使用结构型建立一个朋友的通讯录,包括他们的姓名、生日、电话号码。输入n(n<10)个朋友的信息,按照他们的年龄从大到小的顺序依次显示他们的信息。
时间: 2023-05-31 20:02:42 浏览: 179
实验一、进程调度,设计一个有 N个进程共行的进程调度程序
5星 · 资源好评率100%
代码如下所示:
```python
from datetime import datetime
class Friend:
def __init__(self, name, birthday, phone):
self.name = name
self.birthday = birthday
self.phone = phone
def get_age(self):
today = datetime.today()
age = today.year - self.birthday.year
if today.month < self.birthday.month or (today.month == self.birthday.month and today.day < self.birthday.day):
age -= 1
return age
def __lt__(self, other):
return self.get_age() > other.get_age()
def main():
n = int(input("请输入朋友的数量:"))
friends = []
for i in range(n):
name = input("请输入朋友的姓名:")
year = int(input("请输入朋友的出生年份:"))
month = int(input("请输入朋友的出生月份:"))
day = int(input("请输入朋友的出生日期:"))
birthday = datetime(year=year, month=month, day=day)
phone = input("请输入朋友的电话号码:")
friend = Friend(name, birthday, phone)
friends.append(friend)
friends.sort()
for friend in friends:
print("{0}: {1}岁,电话号码:{2}".format(friend.name, friend.get_age(), friend.phone))
if __name__ == '__main__':
main()
```
运行程序,输入3个朋友的信息:
```
请输入朋友的数量:3
请输入朋友的姓名:Tom
请输入朋友的出生年份:1990
请输入朋友的出生月份:5
请输入朋友的出生日期:1
请输入朋友的电话号码:123456789
请输入朋友的姓名:Jerry
请输入朋友的出生年份:1995
请输入朋友的出生月份:3
请输入朋友的出生日期:15
请输入朋友的电话号码:987654321
请输入朋友的姓名:Bob
请输入朋友的出生年份:1985
请输入朋友的出生月份:12
请输入朋友的出生日期:25
请输入朋友的电话号码:456789123
```
程序输出:
```
Tom: 30岁,电话号码:123456789
Jerry: 25岁,电话号码:987654321
Bob: 35岁,电话号码:456789123
```
可以看到,程序按照朋友的年龄从大到小的顺序依次显示了他们的姓名、年龄和电话号码。
阅读全文