Chomp game in Python 3

I have deliberately avoided any OOP for this project. I am quite happy with my implementation of the classic strategy game "Chomp". The computer only uses a valid option at random, so no AI.

I would appreciate comments on style points and correction. Is the code basically correct? Does it seem to have a consistent style? What improvements would you make?

Thanks in advance.

""
Chomp - a strategy game
""

import randomly
import time

NUM_ROWS = 5
NUM_COLS = 6


def print_title ():
print (r "" "
______ __ __ ______ __ __ ______
/  ___  /   _   /  __  /  "-. /  /  == 
   ____   __            .. /     _ _
  _____    _   _    _____    _    _    _
 / _____ /  / _ /  / _ /  / _____ /  / _ /  / _ /  / _ /
"" ")


def print_instructions ():
Print ("Welcome to Chomp, choose a square and all the squares to the right")
print ("and it will eat down.) The computer will do the same.")
print ("He who eats the poisonous square loses, good luck!")
Print()


def who_goes_first ():
if random.randint (0, 1) == 0:
returns "computer"
plus:
Go back "human"


def play_again ():
print ("Would you like to play again? (yes or no)")
return entry (). lower (). begins with ("and")


def print_matrix (array):
for row in matrix:
for elem in a row:
print (elem, end = "")
Print()


def validate_user_input (player_choice, board):
try:
row, col = player_choice.split ()
except ValueError:
print ("Incorrect entry: the entry must be exactly two numbers separated by a space")
false return
try:
row = int (row)
col = int (col)
except ValueError:
print ("The entry must be two numbers, however, characters that are not digits were received"
false return

yes row < 0 or row > NUM_ROWS - 1:
print (f "The first number must be between 0 and {NUM_ROWS - 1} but {row} was passed.")
false return
yes cabbage < 0 or col > NUM_COLS - 1:
print (f "The second number must be between 0 and {NUM_COLS - 1} but passed {col}")
false return
if together[row][col]    == "":
Print ("That square has already been eaten!")
false return
return true


def update_board (board, row, col):
for i in rank (row, len (board)):
for j in range (col, len (board[i])):
board[i][j]    = ""


def get_human_move (board):
valid_input = False
as long as it is not valid_input:
player_choice = input ("Enter the row and column of your choice separated by a space:")
valid_input = validate_user_input (player_choice, board)
row, col = player_choice.split ()
return int (row), int (col)


def get_computer_move (plate):
valid_move = False
while not valid_move:
row = random.randint (0, NUM_ROWS - 1)
col = random.randint (0, NUM_COLS - 1)
if together[row][col]    == "":
continue
plus:
valid_move = True
return row, col


def main ():
board = []
    for i in range (NUM_ROWS):
row = []
        for j in range (NUM_COLS):
row.append ("#")
board.append (row)

board[0][0]    = "P"
game_is_playing = True
turn = "human"

print_title ()
print_instructions ()

while game_is_playing:
if it rotates == "human":
# Human shift
print ("human turn")
Print()
print_matrix (board)
Print()
row, col = get_human_move (board)
if together[row][col]    == "P":
Print()
print ("What a shame, the computer wins!")
game_is_playing = False
plus:
update_board (board, row, col)
Print()
print_matrix (board)
Print()
turn = "computer"
time.sleep (1)
plus:
# Computer shift
row, col = get_computer_move (plate)
print (f "Team turn. the computer chooses ({row}, {col})")
Print()
if together[row][col]    == "P":
Print()
print ("Yay, you win!")
game_is_playing = False
plus:
update_board (board, row, col)
print_matrix (board)
Print()
turn = "human"

yes play_again ():
principal()
plus:
print ("Goodbye!")
Elevate SystemExit


principal()