2

私はcodeacademyのWebサイトでPythonを学んでいます。今、私は戦艦プロジェクトをコーディングしようとしていますが、問題に直面しています:私のコードは次のとおりです:

import random

board = []

for x in range(0,5):
  board.append(["O"] * 5)

def print_board(board):
  for row in board:
    print " ".join(row)

print_board(board)

def random_row(board):
  return random.randint(0,len(board)-1)

def random_col(board):
    return random.randint(0,len(board[0])-1)

ship_row = random_row(board)
ship_col = random_col(board)
guess_row = input("Guess Row:")
guess_col = input("Guess Col:")

print ship_row
print ship_col

if (guess_row == ship_row and guess_col == ship_col):
    print "Congratulations! You sank my battleship!"
else:
    if((guess_row < 0) or (guess_row > (len(board) -1) or (guess_col < 0) or (guess_col> (len(board) -1)):
        print "Oops, that’s not even in the ocean."
    else:
        print "You missed my battleship!"
        guess_row = "X"
        guess_col = "X"
        print_board(board)
    if board[guess_row][guess_col] == "X":
        print "You guessed that one already."

ただし、次のエラーが返されます。

    if((guess_row < 0) or (guess_row > (len(board) -1) or (guess_col < 0) or (guess_col> (len(board) -1)):
                                                                                                         ^
SyntaxError: invalid syntax

この状況で私を助けてくれませんか?

事前にみんなに感謝します

4

3 に答える 3

5

開き括弧は9つありますが、閉じ括弧は7つだけです。

私は個人的にそれらのほとんどを削除します:

 if guess_row < 0 or guess_row >= len(board) or guess_col < 0 or guess_col >= len(board):

または、さらに良い:

 if not (0 <= guess_row < len(board)) or not (0 <= guess_col < len(board)):

ここでは、後の2組の括弧notは必要ありませんが、IMOは読みやすさを向上させます。同意できない場合は、遠慮なくドロップしてください。

コードには他にもいくつか問題があります。

以下:

    guess_row = "X"
    guess_col = "X"

おそらく読むべきです

    board[guess_row][guess_col] = "X"

また、チェックは、現在のおよびに設定するif board[guess_row][guess_col] == "X":前または代わりに実行する必要があります。board[guess_row][guess_col]"X"guess_rowguess_col

于 2013-01-06T10:15:32.453 に答える
0

)コロンの直前が欠落しています(編集:別のコロンも欠落しています)。あなたの行は次のようになります:

if((guess_row < 0) or (guess_row > (len(board) -1)) or (guess_col < 0) or (guess_col> (len(board) -1))):
于 2013-01-06T10:15:10.107 に答える
0

これを使って:

if(guess_row < 0) or (guess_row > (len(board) -1)) or (guess_col < 0) or (guess_col> (len(board) -1)):
于 2013-01-06T10:20:00.080 に答える