python输入n个朋友的信息,包括姓名、生日、电话号码,本题要求编写程序,按照年龄从大到小的顺序依次输出通讯录。题目保证所有人的生日均不相同
时间: 2024-03-23 22:39:02 浏览: 59
好的,我可以帮你解决这道题目。
你可以使用Python中的字典来存储每个朋友的信息,其中键为姓名,值为另一个字典,包含生日和电话号码两个键值对。
然后,你可以使用Python中的sorted函数,按照生日进行排序。但是由于我们是按照年龄从大到小排序,因此我们需要对生日进行转换,将其转换为距离现在的天数,然后按照距离现在的天数进行排序。
以下是完整的代码:
```python
from datetime import date
def days_between(d1, d2):
return (d2 - d1).days
n = int(input("请输入朋友的数量:"))
friends = {}
for i in range(n):
name = input("请输入姓名:")
birthday = input("请输入生日(格式为yyyy-mm-dd):")
phone = input("请输入电话号码:")
year, month, day = map(int, birthday.split('-'))
birthday_date = date(year, month, day)
days = days_between(birthday_date, date.today())
friends[name] = {'birthday': birthday, 'phone': phone, 'age': days}
sorted_friends = sorted(friends.items(), key=lambda x: x[1]['age'], reverse=True)
print("按照年龄从大到小的顺序依次输出通讯录:")
for friend in sorted_friends:
name = friend[0]
birthday = friend[1]['birthday']
phone = friend[1]['phone']
print(f"姓名: {name}, 生日: {birthday}, 电话号码: {phone}")
```
这个程序可以根据你输入的朋友信息,按照年龄从大到小的顺序输出通讯录。
阅读全文