13. Not again


#1

This is my code:

from random import randint

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 randint(0, len(board) - 1)

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

ship_row = random_row(board)
ship_col = random_col(board)
guess_row = int(raw_input("Guess Row:"))
guess_col = int(raw_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:
    print "You missed my battleship!"
    board[guess_row][guess_col] = "X"
    print print_board(board)

if guess_row not in range(5) or guess_col not in range(5):
    print "Oops, that's not even in the ocean."
else:
    print "You missed my battleship!"
    board[guess_row][guess_col] = "X"
    print print_board(board)
    
elif board[guess_row][guess_col] == "X":
    print "You guessed that already."

and say "File "python", line 41
elif board[guess_row][guess_col] == "X":
^
SyntaxError: invalid syntax"

What is the error?? I have tried with many forms and tell me the same thing. Help me please.


#2

The SyntaxError is caused by the elif. You can't have an elif after an else, which should always be the last.

There might be another error after this, but I'm confident that you can find the solution :smile:


13. Not again. Syntax error