保龄球得分程序开发遇阻:双程序功能需求及实现咨询
嘿,我来帮你搞定这个保龄球得分程序的问题!我会用Python写两个独立的模块,完美匹配你的需求——一个负责录入保存信息,另一个负责读取计算平均分,咱们一步步来~
模块1:录入队员信息并保存到bowling.txt
这个模块会引导你输入4名队员的姓名,以及每人3场比赛的得分,把所有信息写入bowling.txt文件,同时在控制台实时展示你录入的内容。
def save_bowling_scores(): # 准备存储所有队员信息的列表 players = [] for i in range(4): print(f"\n请输入第{i+1}名队员的姓名:") name = input().strip() # 录入3场得分,加有效性校验 scores = [] for j in range(3): while True: try: score = int(input(f"请输入{name}第{j+1}场的得分:")) # 保龄球单场得分范围是0-300,做个合理性判断 if 0 <= score <= 300: scores.append(str(score)) break else: print("得分得在0到300之间哦,请重新输入!") except ValueError: print("请输入有效的数字得分呀!") # 把姓名和得分拼接成一行,用逗号分隔方便后续读取 player_line = f"{name},{','.join(scores)}" players.append(player_line) # 实时展示录入内容 print(f"已录入:{name} | 三场得分:{', '.join(scores)}") # 写入文件 with open("bowling.txt", "w", encoding="utf-8") as f: f.write("\n".join(players)) print("\n所有信息已成功保存到bowling.txt文件!") # 启动程序 if __name__ == "__main__": save_bowling_scores()
这里加了两个实用小细节:
- 校验输入的得分是有效数字,并且符合保龄球的合理得分范围,避免无效数据
- 用逗号分隔字段,后续读取拆分信息会特别顺畅
模块2:读取bowling.txt并计算平均分
这个模块会读取之前保存的文件,解析每个队员的得分,计算平均分后展示出来,还加了异常处理,避免文件不存在或格式错误导致程序崩溃。
def calculate_average_scores(): try: with open("bowling.txt", "r", encoding="utf-8") as f: lines = f.readlines() print("\n=== 保龄球队员平均分统计 ===") for line in lines: line = line.strip() if not line: continue # 跳过空行 # 拆分姓名和得分数据 parts = line.split(",") name = parts[0] scores = list(map(int, parts[1:])) # 计算平均分,保留1位小数更直观 average = sum(scores) / len(scores) print(f"{name} | 三场得分:{', '.join(map(str, scores))} | 平均分:{average:.1f}") except FileNotFoundError: print("错误:没找到bowling.txt文件,请先运行第一个模块录入信息哦!") except ValueError: print("错误:文件内容格式不对,请确保每条记录是'姓名,得分1,得分2,得分3'的格式!") # 启动程序 if __name__ == "__main__": calculate_average_scores()
使用起来超简单:先运行第一个模块录入所有队员信息,再运行第二个模块就能看到清晰的平均分统计啦~要是你用的是其他编程语言(比如Java、C#),随时告诉我,我再给你调整对应的代码!
内容的提问来源于stack exchange,提问作者whoisavila
相关产品推荐
相关产品推荐

