title: Python, unexpected looping continuously when run the codes
body: <p>I am currently learning python and trying to build a tic tac toe game. I wrote a program to prevent the user repeating the same input but when I repeat the same number two times, the program starts looping continuously without stopping. Could someone give me advice on how to rectify this issue? see below the code:</p>
  
  <pre><code>from tabulate import tabulate
  
  # define the board
  board = ["_", "_", "_",
           "_", "_", "_",
           "_", "_", "_"]
  # Current player
  current_player = "X"
  winner = None
  
  game_still_on = True
  
  
  def play_game():
      while game_still_on:
          position()
          board_display()
          handle_player()
          winner_check()
          winner_check2()
  
  
  def handle_player():
      global current_player
      if current_player == "X":
          current_player = "O"
      elif current_player == "O":
          current_player = "X"
  
  
  def board_display():
      board_row1 = [board[0], board[1], board[2]]
      board_row2 = [board[3], board[4], board[5]]
      board_row3 = [board[6], board[7], board[8]]
  
      com_board = [board_row1,
                   board_row2,
                   board_row3]
      print(tabulate(com_board, tablefmt="grid"))
  
  
  # position input
  def position():
      global board
      print(current_player+"'s turn")
      positions = input("enter 1-9")
      valid = False
      while not valid:
          while int(positions) &gt;= 10 or 0 &gt;= int(positions):
              positions = input("Choose a position from 1 -9")
          positions = int(positions)
          if board[positions-1] == "_":
              valid = True
          else:
              print("Choose another")
      board[positions - 1] = current_player
  
  def winner_check():
      if board[0] == board[1] == board[2] != "_":
          return board[0]
      elif board[3] == board[4] == board[5] != "_":
          return board[3]
      elif board[6] == board[7] == board[8] != "_":
          return board[6]
      elif board[0] == board[3] == board[6] != "_":
          return board[0]
      elif board[1] == board[4] == board[7] != "_":
          return board[1]
      elif board[2] == board[5] == board[8] != "_":
          return board[2]
      elif board[0] == board[4] == board[8] != "_":
          return board[0]
      elif board[2] == board[4] == board[6] != "_":
          return board[1]
      else:
          return None
  
  def winner_check2():
      row_winner = winner_check()
      if row_winner:
          global game_still_on
          global winner
          winner = row_winner
          print((winner+ " won"))
          game_still_on = False
  
  play_game()
  </code></pre>