输入是由学生信息构成的字典,键为姓名,值为由年龄、身高和体重构成的列表 编写程序,实现以下功能: 按姓名顺序按行输出字典的内容,每项属性用'\t'隔开,输出以键为序,宽度为15
时间: 2024-12-02 17:18:54 浏览: 14
你可以使用Python的内置`sorted()`函数以及`str.format()`方法来实现这个需求。下面是一个简单的示例代码:
```python
def print_student_info(student_dict):
# 按姓名对字典排序
sorted_students = dict(sorted(student_dict.items()))
# 遍历并打印每个学生的姓名及其属性
for name, details in sorted_students.items():
age, height, weight = details
# 使用'\t'分隔各个属性,并限制每个字段的宽度为15
formatted_output = f"{name:<15}\t{age}\t{height}\t{weight}"
print(formatted_output)
# 假设这是输入的学生信息字典
student_info = {
"张三": [20, 175, 68],
"李四": [22, 180, 75],
"王五": [21, 170, 63]
}
# 调用函数处理数据并输出
print_student_info(student_info)
```
在这个例子中,`f"{name:<15}"`使用了格式化字符串,`<15`表示左对齐并在左边填充空格直到总宽度为15。当你运行此程序,它会按照姓名的字母顺序显示每位学生的信息。
相关问题
python编写程序,实现以下功能: (1)创建空字典dic_sd (2)由用户依次录入三名学生的姓名、年龄、身高和体重,存入字典dic_sd ,将姓名作为键,年龄、身高和体重作为值。 (3)输出字典的内容,格式为 提示:值是可变的,因此年龄、身高和体重可考虑使用列表来表示
可以按照以下方式编写程序实现该功能:
```python
# 创建空字典
dic_sd = {}
# 依次录入三名学生的信息
for i in range(3):
name = input("请输入第{}名学生的姓名:".format(i+1))
age = int(input("请输入第{}名学生的年龄:".format(i+1)))
height = float(input("请输入第{}名学生的身高:".format(i+1)))
weight = float(input("请输入第{}名学生的体重:".format(i+1)))
dic_sd[name] = [age, height, weight]
# 输出字典内容
print("字典内容如下:")
for name, info in dic_sd.items():
print("{}的信息为:年龄{}岁,身高{}米,体重{}公斤。".format(name, info[0], info[1], info[2]))
```
在上述程序中,我们首先创建了一个空字典 `dic_sd`,然后通过 `for` 循环依次录入三名学生的信息,并将其存入字典中。由于年龄、身高和体重是可变的,因此我们使用了列表来表示这些值,并将姓名作为键。最后,我们通过 `for` 循环遍历字典内容,并按照指定格式输出每个学生的信息。
阅读全文