Tic Tac Toe. FEEDBACK PLEASE

import random

board = ["-", "-", "-",
        "-", "-", "-",
        "-", "-", "-"]
currentPlayer = "X"
winner = None
gameRunning = True


# game board
def printBoard(board):
    print(board[0] + " | " + board[1] + " | " + board[2])
    print("---------")
    print(board[3] + " | " + board[4] + " | " + board[5])
    print("---------")
    print(board[6] + " | " + board[7] + " | " + board[8])


# take player input
def playerInput(board):
    inp = int(input("Select a spot 1-9: "))
    if inp >= 1 and inp <= 9 and board[inp-1] == "-":
        board[inp-1] = currentPlayer
    else:
        print("Oops player is already at that spot.")

# check for win or tie
def checkHorizontal(board):
  global winner
  if board[0] == board[1] == board[2] and board[1] != "-":
    winner = board[0]
    return True
  elif board[3] == board[4] == board[5] and board[3] != "-":
    winner = board[3]
    return True
  elif board[6] == board[7] == board[8] and board[6] != "-":
    winner = board[6]
    return True

def checkRow(board):
  global winner
  if board[0] == board[3] == board[6] and board[0] != "-":
    winner = board[0]
    return True
  elif board[1] == board[4] == board[7] and board[1] != "-":
    winner = board[1]
    return True
  elif board[2] == board[5] == board[8] and board[2] != "-":
    winner = board[2]
    return True

def checkDiag(board):
  global winner
  if board[0] == board[4] == board[8] and board[0] != "-":
    winner = board[0]
    return True
  elif board[2] == board[4] == board[6] and board[2] != "-":
    winner = board[2]
    return True

def checkTie(board):
  global gameRunning
  if "-" not in board:
    printBoard(board)
    print("It is a tie!")
    gameRunning = False

def checkWin():
  if checkDiag(board) or checkHorizontal(board) or checkRow(board):
    print(f"The winner is {winner}")

# switch the player
def switchPlayer():
    global currentPlayer
    if currentPlayer == "X":
        currentPlayer = "O"
    else:
        currentPlayer = "X"

def computer(board):
  while currentPlayer == "O":
    position = random.randint(0, 8)
    if board[position] == "-":
      board[position] = "O"
      switchPlayer()

# check for win or tie again
while gameRunning:
  printBoard(board)
  playerInput(board)
  checkWin()
  checkTie(board)
  switchPlayer()
  computer(board)
  checkWin()
  checkTie(board)


Hey, Bryan. I would add a while loop in the playerInput function that will only break once a valid input has been entered. I would also change the printed statement to say something like “Invalid spot” to cover both scenarios where the input is out or range or the space is already occupied.

def playerInput(board):
    while True:
        inp = int(input("Select a spot 1-9: "))
        if inp >= 1 and inp <= 9 and board[inp-1] == "-":
            board[inp-1] = currentPlayer
            break
        else:
            print("Invalid spot.")