如何返回s的值到循环a或者b里面呢?

刚自学Python 做的一个练习题。请问为什么a 和 b的值在循环提示的时候没有变成我输入的那个值
import random
a = 1
b = 100
n = random.randint(a,b)
print(n)
while True:
    s = int(input("请输入一个数,范围" + str(a) + "-" + str(b) + "之间"))
    if s < n :
        s = a
        print("猜小了")
    elif s > n :
        s = b
        print("猜大了")
    else:
        print("猜对了 退出")
        break
    
没报错,
我要怎么把S的数字变成循环里的a或者b呢!
程序随机产生一个随机数,然后我输入去猜,如果猜大了就提示猜大了,猜小了就提示猜小了 然后继续猜。然后可以一直 猜,猜对为止终止 每次猜数都要缩小范围,并提示。例如这样的:

img

求解答一下 和思路 谢谢

a,b赋值错误

img

你这个是有问题的,输出太早了,你可以先输入函数,然后再与随机生成判断就行了