编写一个程序,输入N个用户的姓名和电话号码,按照用户姓名的词典顺序排列输出用户的姓名和电话号码。 【输入形式】 用户首先在第一行输入一个正整数,该正整数表示待排序的用户数目,然后在下面多行输入多个用户的信息,每行的输入格式为:姓名 电话。以回车结束每个用户的输入。 【输出形式】 程序输出排序后的结果。每行的输出结果格式也是: 姓名 电话。姓名和电话字段中间没有空格,要求用户姓名不能超过10个字符,超出10个字符时候只取前10个字符作为姓名。电话号码不能超过10位,超过10位时只按10位处理。输出姓名、电话字段各占12个字符宽,输出格式采用默认对齐方式。另外,用户的数量要求不超过50个。
时间: 2024-03-10 09:50:35 浏览: 169
输入n个朋友的信息,包括姓名、生日、电话号码,本题要求编写程序,按照年龄从大到小的顺序依次输出通讯录。
5星 · 资源好评率100%
好的,以下是 Python 3 的代码实现:
```python
n = int(input("请输入用户数目:"))
user_list = []
for i in range(n):
name, phone = input().split()
name = name[:10] # 截取姓名前10个字符
phone = phone[:10] # 截取电话号码前10位
user_list.append((name, phone))
user_list.sort() # 按照姓名的词典顺序排序
for name, phone in user_list:
print("{:<12}{:<12}".format(name, phone)) # 输出姓名和电话,各占12个字符宽
```
代码中,我们首先读取用户的数目 `n`,然后通过循环读取每个用户的姓名和电话,把它们存储在一个列表中。在读取每个用户的姓名和电话时,我们使用 `split()` 方法将它们分开,并使用切片截取姓名前10个字符和电话号码前10位。
接下来,我们使用 Python 的内置函数 `sort()` 对列表进行排序,由于我们希望按照姓名的词典顺序排序,所以不需要指定排序函数。最后,我们使用字符串格式化函数 `format()` 输出每个用户的姓名和电话,其中 `"<"` 表示左对齐,`12` 表示宽度为12个字符。
阅读全文