Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 保龄球得分计划_Python - Fatal编程技术网

Python 保龄球得分计划

Python 保龄球得分计划,python,Python,我在完成这个程序时遇到困难。这个项目应该有一个由4名成员组成的团队。每个成员总共3场比赛 我需要写一个程序,询问每个成员的名字,并要求他们为每个成员的3场比赛中的每一场。这些名称需要保存在一个名为“bowling.txt”的文本文件中并显示出来。应该编写另一个单独的程序来读取“bowling.txt”文件中的记录,还应该显示每个投球手的平均得分 这是我目前的计划: # This program will ask # the user for # bowling scores 'W'. def

我在完成这个程序时遇到困难。这个项目应该有一个由4名成员组成的团队。每个成员总共3场比赛

我需要写一个程序,询问每个成员的名字,并要求他们为每个成员的3场比赛中的每一场。这些名称需要保存在一个名为“bowling.txt”的文本文件中并显示出来。应该编写另一个单独的程序来读取“bowling.txt”文件中的记录,还应该显示每个投球手的平均得分

这是我目前的计划:

# 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='')