reinventing the wheel – Implementing hash table in Python using Tuples

I am trying to implement a basic hash table using a list of tuples. The code produce the desired output. Please help me improve my code as I feel there are a lot of while loops.

#global variables to keep track of the hash table
count = 0
size = 1000

def hash_table(size):
    return (None) * size
    
def hash_item(key, value):
    return (key,value)

def hash_func(key):         #simple hash function
    index = hash(key) % 1000
    return index

def insert_hash(table,key,value):
    index = hash_func(key)
    item = hash_item(key,value)
    global count
    global size
    if count == size:
        raise Exception("Hash table limit reached")
    if table(index) == None:
        table(index) = item
    else:
        collision_handler(table, index, item)
    count = count + 1
    
def print_hash(table,key):
    index = hash_func(key)
    while table(index)(0) != key:      #in case there is a collision:
        index = index + 1
    print(table(index))
    
def delete_hash(table,key):
    index = hash_func(key)
    while table(index)(0) != key:
        index = index + 1
    table.pop(index)
    
    
def collision_handler(table,index,item):         #handling collisions using open addressing
        while table(index) != None:
            index = index + 1
        table(index) = item
        



a = hash_table(size)

b = hash_func('1')

insert_hash(a, '1','john')

print_hash(a,'1')

delete_hash(a,'1')

insert_hash(a,'1','edward')

print_hash(a,'1')