这题python一直出错,怎么才能跑起来呢?

编写程序,生成两个1到1000之间的随机整数a和b,然后给3次机会让用户计算这两个数字的和。程序给出作答结果(正确、错误),
若回答错误或机会用完结束循环。


# 随机生成21-1000之间的整数
import random
a = random.randint(1, 1000)
b = random.randint(1, 1000)

res = a + b
i = 0
while i < 3:
    guess = input('请输入' + str(a) + ' + ' + str(b) + '的值: ')
    if int(guess) == res:
        print('回答正确!')
        i += 1
        break
    else:
        i += 1
        print('回答错误! 您还有' + str(3-i) + '次机会')