python编写一个程序,接受多个学生的姓名及其成绩,并用占位符格式化输出成绩表,要求每个成绩保留一位小数,并保证姓名和成绩的对齐。
时间: 2024-10-17 08:12:50 浏览: 48
Python 中,你可以使用 `input()` 函数接收用户输入的学生信息,`str.format()` 或 f-string 格式化输出。下面是一个简单的程序示例:
```python
# 初始化一个空的成绩列表
students = []
while True:
# 获取学生姓名和成绩
name = input("请输入学生的姓名(输入 'q' 结束):")
if name.lower() == 'q':
break
score = float(input("请输入学生的分数:"))
# 将数据添加到列表中并格式化输出
students.append((name, round(score, 1))) # 四舍五入保留一位小数
# 打印成绩表
print("{:<20}{:<10}".format('姓名', '分数'))
print("-" * 30)
for student in students:
print("{:<20}{:<10.1f}".format(student[0], student[1])) # 使用占位符格式化,姓名占20列,分数占10列,并保留一位小数
相关问题
编写一个程序,接受多个学生的姓名及其成绩,并用占位符格式化输出成绩表,要求每个成绩保留一位小数,并保证姓名和成绩的对齐。
编写这样一个程序可以使用Python的`pandas`库来轻松处理,因为它非常适合数据操作。下面是一个简单的例子:
```python
import pandas as pd
def input_scores():
students = []
while True:
name = input("请输入学生姓名(输入'q'退出):")
if name.lower() == 'q':
break
score = float(input(f"{name}的成绩:"))
students.append((name, round(score, 1))) # 保留一位小数
return students
students_data = input_scores()
df = pd.DataFrame(students_data, columns=['姓名', '成绩'])
# 使用占位符格式化输出
print("\n** 学生成绩表 **\n")
print(df.to_string(formatters={'成绩': '{:.1f}'.format}, justify='left'))
阅读全文