abc200603 发表于 2021-11-22 00:10:43

python第五课后练习题

import random

times = 3
secret = random.randint(1,10)

print('我爱小甲鱼')
guess = 99
print('猜数字开始')

while (guess != secret) and (times > 0):
    temp = input()

    if temp.isdigit():
      guess = int(temp)
      times= times - 1
      if guess == secret:
            print('我草,猜对了')
            print('猜对了也没奖励')
      else:
            if guess > secret:
                print('大了')
            else:
                print('小了')
            if times > 0:      {:5_99:}
                print('再试一次')
            else:
                print('没机会了')

    else:
      print("抱歉,您的输入有误,请输入一个整数:", end='')
      

print('游戏结束')

为什么倒数第七行if times>0和 >1   print('没机会了')    程序运行后if times大于1有个是第二次输入数字的时候显示,大于0是最后一次输入数字的时候显示

我才不学派森QAQ 发表于 2021-11-22 01:58:46

因为while有个条件是time > 0啊,如果if条件为time > 1,第二次循环比完大小此时的time = 1,不满足if条件走else了,就打印 没机会了 , 此时的time还是1,满足while条件,执行第三次循环

jackz007 发表于 2021-11-22 09:50:02

本帖最后由 jackz007 于 2021-11-22 09:54 编辑

import random

times , count = 3 , 0
secret = random . randint(1,10)

print('我爱小甲鱼')
print('猜数字开始')

while count < times :
    while True:
      print()
      temp = input("请输入一个整数:")
      if temp . isdigit() : break
      print("抱歉,您的输入有误!")
    guess = int(temp)
    if guess == secret:
      print('我草,猜对了')
      print('猜对了也没奖励')
      break
    else:
      print('大了') if guess > secret else print('小了')
      count += 1
      if count < times : print('再试一次吧')
else:
    print('抱歉,没机会了')

print('游戏结束')

abc200603 发表于 2021-11-23 00:05:20

jackz007 发表于 2021-11-22 09:50


谢谢
页: [1]
查看完整版本: python第五课后练习题