14. Test run, what if it's not an int?


#1

Hey guys! So after a little trial and error I managed to figure out a really inefficient way of figuring out if the input was an integer or not and of it wasn't telling the user as such. However I was wondering anyone could guide me on an easier way to do this, keep in mind Im still learning and I may have completely approached this incorrectly.
Thanks in advance!!!
CODE CODE 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)

try:
    guess_row = int(raw_input("Guess Row:")) -1
except ValueError:
    guess_row = "Not an integer"

try: 
    guess_col = int(raw_input("Guess Col:")) -1
except ValueError:
    guess_col = "Not an integer"


print ship_row
print ship_col

# Write your code below!
if guess_row == ship_row and guess_col == ship_col:
    print "Congratulations you sank my battleship!"
else:
    if guess_row == "Not an integer" or guess_col == "Not an integer":
        print "You should learn how to read!"
    elif guess_row not in range(5) or guess_col not in range(5):
        print "Oops, that's not even in the ocean."
    elif board[guess_row][guess_col] == 'X':
        print "You guessed that one already."
    else:    
        print "You missed my battleship!"
        board [guess_row][guess_col] = "X"
        print_board(board)`


#2

Hey @byterockstar09743,

To test for whether the input is an integer or not, you can use Python's built in type() function. You can use the below format to try to test it.

if type(guess_row) == int:
    # Some code!

I hope this works for your purposes...


#3


I am trying to debug my program and its throwing this error (IndexError: list index out of range) if I enter a number that's off board. Everything else is working perfect.