保龄球分数计划

时间:2018-03-22 01:22:02

标签: python

我无法完成此计划。该计划应该有一个由4名成员组成的团队。每位成员共举办3场比赛。

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

到目前为止,这是我的计划:

decode_image_op.cc

-----------------这是单独的'R'文件---------------

# 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()

1 个答案:

答案 0 :(得分:0)

当您不知道错误是什么时调试程序并不容易,但我看到一个非常明显的问题。

在" 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"程序:

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