python程序问题

这样的程序可以怎么改进,使更简洁化?

# 猜测随机数之和

import random
counts = 3
add1 = random.randint(0, 10)
add2 = random.randint(0, 10)
sum = add1 + add2
while counts > 0:
    guess = int(input("猜猜我心里想的是哪些数字之和:"))
    if guess == sum:
        print("你猜对啦,不玩啦")
        break
    else:
        while counts < 2:
            print("这个数字其实是%d啦,再接再厉" % sum)
            counts = 0
            break
        else:
            if guess > sum:
                print("大啦,再猜,你还有%d次机会" % (counts - 1))
            else:
                print("小啦,再猜,你还有%d次机会" % (counts - 1))
            counts = counts - 1

还有对while语句的理解,当我counts==1时不应该是判断变量值是否为1吗,为什么while认为其是真语句从而不断执行下面的语句了?因而变成死循环了

# 猜测随机数之和

import random
counts = 3
add1 = random.randint(0, 10)
add2 = random.randint(0, 10)
sum = add1 + add2
while counts > 0:
    guess = int(input("猜猜我心里想的是哪些数字之和:"))
    if guess == sum:
        print("你猜对啦,不玩啦")
        break
    else:
        while counts == 1:                 # 未改之前的部分
            print("这个数字其实是%d啦,再接再厉" % sum)
        else:
            if guess > sum:
                print("大啦,再猜,你还有%d次机会" % (counts - 1))
            else:
                print("小啦,再猜,你还有%d次机会" % (counts - 1))
            counts = counts - 1


因为未改之前的部分,while counts == 1后面没有break,所以counts没有变化,只要成立就会一直成立,所以陷入死循环。
其实没必要用 while,直接 if 判断加 break就可以了
另外,如果两个数都是0到10的范围,那两数之和必然在0到20,分开随机两个0到10的整数,不如直接随机一个0到20的整数。

1.一个循环就可以搞定,不需要双重循环
2.while counts == 1这个循环,counts变量在循环过程中值不改变,是标准的死循环