Python编程,假定一个文本文件中包含未指定个数的考试分数,请编写一个程序,从文件中读取分数,以列表的方式打印输出所有的分数,同时计 算分数之和、平均数以及最大分数,文件中的分数用空格分隔,程序运行时应该提示用户输入一个文件名,并将分数写入到文件中。
时间: 2024-03-05 10:48:12 浏览: 59
好的,我可以帮你解决这个问题。下面是Python代码示例:
```python
filename = input("请输入文件名:") # 提示用户输入文件名
with open(filename, 'r') as f: # 打开文件
scores = [int(score) for score in f.read().split()] # 读取文件中的分数,转换为整数,并存储在列表中
total_score = sum(scores) # 计算分数之和
avg_score = total_score / len(scores) # 计算平均分
max_score = max(scores) # 找出最高分
print("所有分数:", scores)
print("分数之和:", total_score)
print("平均分数:", avg_score)
print("最高分数:", max_score)
```
这段代码会提示用户输入文件名,然后打开文件,并将文件中的分数读取到一个列表中。接着,计算分数之和、平均数以及最大分数,并输出到屏幕上。请注意,这段代码假定文件中每个分数都是整数,并且用空格分隔。如果文件格式不符合要求,程序可能会出错。
相关问题
假定一个文本文件中包含未指定个数的考试分数,请编写程序实现以下操作。 (1)程序运行时应该提示用户输入一个文件名,并将分数写入到文件中,文件中的分数用空格分隔;(2)从文件中读取分数,以列表的方式打印输出所有的分数,同时计算分数之和、平均数以及最大分数;(3)将分数之和、平均数以及最大分数追加到文件中。
好的,我可以帮您解决这个问题。这个问题需要使用 Python 编程语言来解决。下面是实现的代码:
```python
import os
def write_scores_to_file(file_name):
scores = input("请输入考试分数,用空格分隔:")
with open(file_name, 'w') as f:
f.write(scores)
def read_scores_from_file(file_name):
with open(file_name, 'r') as f:
scores_str = f.read()
scores = [int(score) for score in scores_str.split()]
return scores
def print_scores_info(scores):
total_score = sum(scores)
average_score = total_score / len(scores)
max_score = max(scores)
print("所有分数为:", scores)
print("分数之和为:", total_score)
print("平均分为:", average_score)
print("最高分为:", max_score)
def append_scores_info_to_file(file_name, scores):
total_score = sum(scores)
average_score = total_score / len(scores)
max_score = max(scores)
with open(file_name, 'a') as f:
f.write("\n分数之和为:" + str(total_score))
f.write("\n平均分为:" + str(average_score))
f.write("\n最高分为:" + str(max_score))
def main():
file_name = input("请输入文件名:")
if not os.path.exists(file_name):
print("文件不存在!")
return
write_scores_to_file(file_name)
scores = read_scores_from_file(file_name)
print_scores_info(scores)
append_scores_info_to_file(file_name, scores)
if __name__ == '__main__':
main()
```
上面的代码中,我们使用了 5 个函数:
- `write_scores_to_file(file_name)`:将用户输入的考试分数写入到指定的文件中,文件名由参数 `file_name` 指定。
- `read_scores_from_file(file_name)`:从指定的文件中读取考试分数,以列表的方式返回。
- `print_scores_info(scores)`:打印输出所有的分数,同时计算分数之和、平均数以及最大分数。
- `append_scores_info_to_file(file_name, scores)`:将分数之和、平均数以及最大分数追加到指定的文件中。
- `main()`:主函数,用于执行上述函数。
在 `main()` 函数中,我们首先提示用户输入文件名,然后检查文件是否存在。如果文件不存在,则直接退出程序。如果文件存在,我们就调用 `write_scores_to_file()` 函数将用户输入的考试分数写入到文件中,然后调用 `read_scores_from_file()` 函数从文件中读取分数,以列表的方式返回。接着,我们调用 `print_scores_info()` 函数打印输出所有的分数,同时计算分数之和、平均数以及最大分数。最后,我们调用 `append_scores_info_to_file()` 函数将分数之和、平均数以及最大分数追加到文件中。
以上就是实现这个问题的代码。如果您有任何疑问,可以随时问我。
阅读全文