Ootme 发表于 2019-11-11 19:00:25

关于限制猜数字次数的程序

import random
secret = random.randint (1,10)
print('游戏开始')
temp = input('请输入数字\n')
guess = int(temp)
i=0
while (guess != secret) and (i<3):
    i+=1
    if guess == secret:
      print ('你猜对了')
    else:
      if guess < secret:
            print('小了')

      else:
            print('大了')
      if i < 3:
            temp = input('请输入数字\n')
            guess = int(temp)
      else:
            print('次数用完')
print ('游戏结束')


为什么只有    你猜对了不会显示






zltzlt 发表于 2019-11-11 19:08:43

当 guess 不等于 secret 时才进入循环,也就是说能进入循环 guess 一定不等于 secret,而

    if guess == secret:
      print ('你猜对了')

这段代码被放在循环之内,在循环内 guess 不等于 secret,所以这个条件永远不可能成立。可以这样改,在循环外加一个 if 判断:

import random
secret = random.randint (1,10)
print('游戏开始')
temp = input('请输入数字\n')
guess = int(temp)
i=0
while (guess != secret) and (i<3):
    i+=1
    if guess == secret:
      print ('你猜对了')
    else:
      if guess < secret:
            print('小了')

      else:
            print('大了')
      if i < 3:
            temp = input('请输入数字\n')
            guess = int(temp)
      else:
            print('次数用完')
if guess == secret:
    print ('你猜对了')
print ('游戏结束')

Ootme 发表于 2019-11-12 10:55:11

zltzlt 发表于 2019-11-11 19:08
当 guess 不等于 secret 时才进入循环,也就是说能进入循环 guess 一定不等于 secret,而




我明白了
受到你的启发 我把程序改进成
import random
secret = 9
print('游戏开始')
temp = input('请输入数字\n')
guess = int(temp)
i=0
while (guess != secret) or (i<3):
    i+=1
    if guess == secret:
      print ('你猜对了')
      i=3
    else:
      if guess < secret:
            print('小了')

      else:
            print('大了')
      if i < 3:
            temp = input('请输入数字\n')
            guess = int(temp)
      else:
            print('你猜错了')
            print('次数用完')
            break
print ('游戏结束')

这样子程序会多做无用计算吗
页: [1]
查看完整版本: 关于限制猜数字次数的程序