Python中与循环有关的问题,请在此基础上修改代码,求大佬帮忙!新年快乐!

h = 99
print('-------游戏开始啦,快猜猜我心里想的是哪个数字-------')
a = True
while a != h:
    def 小游戏():
        a = int(input('请输入数字:'))
        if a < h :
            print('太小啦,再猜')
            if h - a < 5:
                print('很接近啦,继续猜')
        if a > h:
            print('太大啦,再猜')
            if a - h < 5:
                print('很接近啦,继续猜')
        if a == h:
            print('猜对啦,棒棒哒!')
    小游戏()

为何最后输入正确答案后还在运行?

h = 99
print('-------游戏开始啦,快猜猜我心里想的是哪个数字-------')
a = True
while a != h:
    def 小游戏():
        global a
        a = int(input('请输入数字:'))
        if a < h :
            print('太小啦,再猜')
            if h - a < 5:
                print('很接近啦,继续猜')
        if a > h:
            print('太大啦,再猜')
            if a - h < 5:
                print('很接近啦,继续猜')
    小游戏()
print('猜对啦,棒棒哒!')

 

h = 99
print('-------游戏开始啦,快猜猜我心里想的是哪个数字-------')
a = True
while a != h:
    def 小游戏():
        global a
        a = int(input('请输入数字:'))
        if a < h :
            print('太小啦,再猜')
            if h - a < 5:
                print('很接近啦,继续猜')
        if a > h:
            print('太大啦,再猜')
            if a - h < 5:
                print('很接近啦,继续猜')
    小游戏()
print('猜对啦,棒棒哒!')

 

h = 99
print('-------游戏开始啦,快猜猜我心里想的是哪个数字-------')

while True:
    a = int(input('请输入数字:'))
    if a == h:
        print('猜对啦,棒棒哒!')
        break;
    else:
        if a < h :
            if h - a < 5:
                print('很接近啦,继续猜')
            else:
                print('太小啦,再猜')
        else:
            if a - h < 5:
                print('很接近啦,继续猜')
            else:
                print('太大啦,再猜')