Python 保龄球得分计划
我在完成这个程序时遇到困难。这个项目应该有一个由4名成员组成的团队。每个成员总共3场比赛 我需要写一个程序,询问每个成员的名字,并要求他们为每个成员的3场比赛中的每一场。这些名称需要保存在一个名为“bowling.txt”的文本文件中并显示出来。应该编写另一个单独的程序来读取“bowling.txt”文件中的记录,还应该显示每个投球手的平均得分 这是我目前的计划:Python 保龄球得分计划,python,Python,我在完成这个程序时遇到困难。这个项目应该有一个由4名成员组成的团队。每个成员总共3场比赛 我需要写一个程序,询问每个成员的名字,并要求他们为每个成员的3场比赛中的每一场。这些名称需要保存在一个名为“bowling.txt”的文本文件中并显示出来。应该编写另一个单独的程序来读取“bowling.txt”文件中的记录,还应该显示每个投球手的平均得分 这是我目前的计划: # This program will ask # the user for # bowling scores 'W'. def
# This program will ask
# the user for
# bowling scores 'W'.
def game(bowling):
bowling_file = open('bowling.txt', 'w')
for count in range(1, 5, + 1):
print('Enter the name and the score for each game for member #',
count, sep='')
name = input('Name: ')
game1 = input('Score for game 1: ')
game2 = input('Score for game 2: ')
game3 = input('Score for game 3: ')
bowling_file.write(name + '\n')
bowling_file.write(game1 + '\n')
bowling_file.write(game2 + '\n')
bowling_file.write(game3 + '\n')
print()
bowling_file.close()
print('All games have been printed to bowling.txt')
def main():
game('')
main()
-----------------这是单独的“R”文件---------------
当你不知道错误是什么的时候,调试一个程序并不容易,但是我看到了一个非常明显的问题 在“W”程序中,为每个玩家编写四件事:
bowling_file.write(name + '\n')
bowling_file.write(game1 + '\n')
bowling_file.write(game2 + '\n')
bowling_file.write(game3 + '\n')
在“R”程序中,您只需读取行并尝试将它们全部转换为int
s。这将在第一行失败,因为它不是一个int
,而是一个名称
而且,你没有循环计算玩家的数量,或者每个玩家的游戏数量;你只是想把所有的台词都当作一个玩家的游戏。更不用说,您从未设置count
变量,该变量应该是玩家编号
所以,你可以这样做,就像在你的“W”程序中:
首先,你想解决的问题是什么?如果不运行此代码,它似乎没有任何明显的问题。如果某个地方有一个bug,告诉我们它是什么,它是否引发了异常,或者输出了与您预期不同的结果?如果有一个你不知道怎么写的缺失部分,它缺失在哪里,它应该做什么,你还停留在什么地方?一件小事:你的“W”程序将一个
保龄球
参数传递给游戏
,该参数被忽略,而你传递的是一个空字符串。当然,这应该是文件名,就像在“R”程序中一样?另一个次要的事情:不是这样做readline
,而是一个whileline!=“”
,然后是循环中的另一个读取行,您可以对bowling_文件中的行执行:
是的,对不起,一旦我转到“R”文件并运行它,它就不起作用了。它表示“ValueError:int()的无效文本,以10为底:'john 1\n',因为它要求一个名称。我无法克服这一点,也不知道如何解决它。那我就不知道如何分别平均每个会员的分数了。
bowling_file.write(name + '\n')
bowling_file.write(game1 + '\n')
bowling_file.write(game2 + '\n')
bowling_file.write(game3 + '\n')
for count in range(1, 5, + 1):
name = bowling_file.readline()
game1 = int(bowling_file.readline())
game2 = int(bowling_file.readline())
game3 = int(bowling_file.readline())
average = (game1 + game2 + game3) / 3
print('The average score for member #', count, ' is ', average, sep='')