这样的程序可以怎么改进,使更简洁化?
# 猜测随机数之和
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变量在循环过程中值不改变,是标准的死循环