Test Run: String



Hi, I would like to get tips on dealing with a user that enters a string rather than integer. Thanks.

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)


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

# Write your code below!
if guess_row == ship_row and guess_col == ship_col:
    print "Congratulations! You sank my battleship!"
    if guess_row not in range(5) or guess_col not in range(5):
        print "Oops, that's not even in the ocean."
    elif board[int(guess_row)] [int(guess_col)] == "X":
            print "You guessed that one already."
        print "You missed my battleship!"
        board[int(guess_row)] [int(guess_col)] = "X"


How would that be efficient? You would have to have every single way they could have possibly written the string in an if, elif statement(s). The slightest grammatical error/sentence structure would give an error.


Well what I"m wondering is if there is a 'if not integer, ask user to input again' so you wouldn't even have to list all the permutations with strings.


Regardless what you are wondering, best be racing through this track. It is about to disappear.


This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.