鱼C论坛

 找回密码
 立即注册
查看: 2348|回复: 4

[已解决]第五讲课后题小游戏改进有点问题

[复制链接]
发表于 2015-10-6 21:16:06 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 ~风介~ 于 2015-10-7 18:51 编辑
  1. import random

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

  4. print('------------------我爱鱼C工作室------------------')
  5. guess = 0
  6. print("不妨猜一下小甲鱼现在心里想的是哪个数字:", end=" ")

  7. while (guess != secret) and (times > 0):
  8.     temp = input()
  9.    
  10.     if temp.isdigit():
  11.         guess = int(temp)
  12.         if guess == secret:
  13.             print("我草,你是小甲鱼心里的蛔虫吗?!")
  14.             print("哼,猜中了也没有奖励!")
  15.         else:
  16.             if guess > secret:
  17.                 print("哥,大了大了~~~")
  18.             else:
  19.                 print("嘿,小了,小了~~~")
  20.             if times > 0:
  21.                 print("再试一次吧:", end='')
  22.             else:
  23.                 print("机会用光咯T_T")
  24.     else:
  25.         print("抱歉,您的输入有误,请输入一个整数:", end='')

  26.     times = times - 1 # 用户每输入一次,可用机会就-1

  27. print("游戏结束,不玩啦^_^")
复制代码



零基础入门python的第五讲的课后题好像是有点问题的吧,例如我执行的结果会是这样的:
------------------我爱鱼C工作室------------------
不妨猜一下小甲鱼现在心里想的是哪个数字: 1
嘿,小了,小了~~~
再试一次吧:2
嘿,小了,小了~~~
再试一次吧:3
嘿,小了,小了~~~
再试一次吧:游戏结束,不玩啦^_^

而且这个条件是没用到的
else:
                print("机会用光咯T_T")

求教这个可以怎么改进呢,试了挺久都没成功
最佳答案
2015-10-7 18:59:01
  1. import random

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


  4. print('------------------我爱鱼C工作室------------------')
  5. guess = 0
  6. print("不妨猜一下小甲鱼现在心里想的是哪个数字:", end=" ")

  7. while (guess != secret) and (times > 0):
  8.     temp = input()
  9.    
  10.     if temp.isdigit():
  11.         guess = int(temp)
  12.         if guess == secret:
  13.             print("我草,你是小甲鱼心里的蛔虫吗?!")
  14.             print("哼,猜中了也没有奖励!")
  15.         else:
  16.             if guess > secret:
  17.                 print("哥,大了大了~~~")
  18.             else:
  19.                 print("嘿,小了,小了~~~")
  20.             
  21.     else:
  22.         print("抱歉,您的输入有误,请输入一个整数:", end='')

  23.     times = times - 1 # 用户每输入一次,可用机会就-1
  24.     if times > 0:
  25.             print("再试一次吧:", end='')
  26.     else:
  27.             print("机会用光咯T_T")

  28. print("游戏结束,不玩啦^_^")
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2015-10-7 11:19:35 | 显示全部楼层
  1. times = 3
  2. import random

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

  4. print('------------------我爱鱼C工作室------------------')
  5. guess = 0
  6. print("不妨猜一下小甲鱼现在心里想的是哪个数字:", end=" ")

  7. while (guess != secret) and (times > 0):
  8.      temp = input()
  9.      
  10.      if temp.isdigit():
  11.          guess = int(temp)
  12.          if guess == secret:
  13.              print("我草,你是小甲鱼心里的蛔虫吗?!")
  14.              print("哼,猜中了也没有奖励!")
  15.          else:
  16.              if guess > secret:
  17.                  print("哥,大了大了~~~")
  18.              else:
  19.                  print("嘿,小了,小了~~~")
  20.              if times - 1 > 0:
  21.                  print("再试一次吧:", end='')
  22.              else:
  23.                  print("机会用光咯T_T")
  24.      else:
  25.          print("抱歉,您的输入有误,请输入一个整数:", end='')

  26.      times = times - 1 # 用户每输入一次,可用机会就-1
  27. print("游戏结束,不玩啦^_^")
复制代码

while 的条件要求(times > 0) 才会执行while的语句
所以内部的if times - 1 > 0:永远为真
else永远得不到执行
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-10-7 18:59:01 | 显示全部楼层    本楼为最佳答案   
  1. import random

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


  4. print('------------------我爱鱼C工作室------------------')
  5. guess = 0
  6. print("不妨猜一下小甲鱼现在心里想的是哪个数字:", end=" ")

  7. while (guess != secret) and (times > 0):
  8.     temp = input()
  9.    
  10.     if temp.isdigit():
  11.         guess = int(temp)
  12.         if guess == secret:
  13.             print("我草,你是小甲鱼心里的蛔虫吗?!")
  14.             print("哼,猜中了也没有奖励!")
  15.         else:
  16.             if guess > secret:
  17.                 print("哥,大了大了~~~")
  18.             else:
  19.                 print("嘿,小了,小了~~~")
  20.             
  21.     else:
  22.         print("抱歉,您的输入有误,请输入一个整数:", end='')

  23.     times = times - 1 # 用户每输入一次,可用机会就-1
  24.     if times > 0:
  25.             print("再试一次吧:", end='')
  26.     else:
  27.             print("机会用光咯T_T")

  28. print("游戏结束,不玩啦^_^")
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-10-7 19:00:15 | 显示全部楼层
对times的判断要放到操作times之后 —— 因为times小于0后就没办法进入while循环了。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-25 12:51:32 | 显示全部楼层
风介的答案有个小BUG,就是猜对了还是会出现:"机会用光咯"
应该在猜对的时候用break退出循环。

  1. import random
  2. secret=random.randint(1,20)
  3. times=0
  4. print('不妨猜一下我现在心里想的是哪一个数字:', end='')
  5. name=0
  6. while name!=secret and times<4:
  7.     names = input('')
  8.     if names.isdigit():
  9.         name=int(names)
  10.         if name == secret:
  11.             print('你难道是我心里的蛔虫!')
  12.             print('哼,猜中了也没有奖励!')
  13.             break
  14.         else:
  15.             if name > secret:
  16.                 print('哥,大了大了')
  17.             else:
  18.                 print('嘿,小了小了!')
  19.     else:
  20.         print('抱歉,您输入有误,请输入一个整数:',end='')
  21.     times=times+1
  22.     if times<4:
  23.         print('再试一次吧:',end='')
  24.     else:
  25.         print('机会用光咯!')
  26. print('游戏结束,不玩啦!')
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-7-2 14:00

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表