鱼C论坛

 找回密码
 立即注册
查看: 3723|回复: 13

[已解决]《零基础入门学校Python》第四讲 改进小游戏(已解决)

[复制链接]
发表于 2018-12-4 21:00:27 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 皇甫宅 于 2018-12-5 21:47 编辑

大家好,非常新的新手 请教个问题。Python第四讲 关于改进小游戏,有个问题想不明白。
视频里面老师讲了随机变量有限次数循环猜数字,但是我就是想知道如果系统明确了正确答案,怎么设置猜数字的次数呢。
不知道我表述清楚没有  就是假设游戏的准确答案是8,但是你只有5次猜测的机会,这个要怎么实现呢。
我怎么试都试不出来,唉,太难了,一点儿也不简单,希望有前辈解惑呀。

这是我写的,运行后猜一次就结束了,死活整不明白。

times = 5
print('............我爱甲鱼.......')
temp = input("不妨猜一下小甲鱼心里想的是哪个数字:")
times = 5
guess = 8
while (guess != 8 ) and (times < 5):
   temp=input("wrong!!try again:")
   guess=int(temp)
   times = times - 1
   if guess==8:
      print("卧槽,你是我的蛔虫吗?")
      print("哼,猜中也没奖!")
   else:
      if guess > 8 :
         print("大了")
      else :
         print("小了")
      if times > 0:
         print ('try again:, end =')
print("game over")

最佳答案
2018-12-4 21:08:01
前面guess = 8,循环的条件是guess != 8
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-12-4 21:08:01 | 显示全部楼层    本楼为最佳答案   
前面guess = 8,循环的条件是guess != 8
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-12-4 21:31:49 From FishC Mobile | 显示全部楼层
本帖最后由 heidern0612 于 2018-12-4 21:37 编辑

你要是想猜次数,想进while循环,guess就不要赋值为8。你都赋值为8了,while还循环个啥?你可以赋值任意值,总之不要为8就是了。

这个游戏的本意就是guess等于8的时候,游戏结束。
游戏都结束了,你还猜个啥?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-12-4 22:20:04 | 显示全部楼层
heidern0612 发表于 2018-12-4 21:31
你要是想猜次数,想进while循环,guess就不要赋值为8。你都赋值为8了,while还循环个啥?你可以赋值任意值 ...

那我换个问法,比如小明18岁,让小红猜他的年龄,但是只给3次机会,第一次就猜中了当然就结束啦,但是第一次没猜中可以再猜啊,但是不能无限猜,最多猜三次。这个不能实现吗?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-12-5 08:03:39 | 显示全部楼层
本帖最后由 heidern0612 于 2018-12-5 19:30 编辑
皇甫宅 发表于 2018-12-4 22:20
那我换个问法,比如小明18岁,让小红猜他的年龄,但是只给3次机会,第一次就猜中了当然就结束啦,但是第 ...

  1. times = 3
  2. while times !=0:
  3.     try:
  4.         temp = int(input("请输入你猜测的年纪:"))
  5.         if temp!= 18:
  6.             times -= 1
  7.             print("猜的不对哟~")
  8.         else:
  9.             print("猜对啦~游戏结束!")
  10.             break
  11.     except:
  12.         print("输入的内容有误,请输入数字。")
  13. else:
  14.     print("机会用光啦,请重新再来吧!")
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-12-5 14:15:46 | 显示全部楼层

try都出来了,人家看得懂嘛
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-12-5 14:19:07 | 显示全部楼层
你循环条件该换成
  1. temp = int(temp)
  2. while (temp != guess) and (times > 0):
复制代码

然后主程序根据这个再改改
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-12-5 14:35:26 | 显示全部楼层
  1. times = 5
  2. print('|---我爱鱼c工作室---|')
  3. guess = 8

  4. while True:
  5.     temp = int(input('不妨猜一下小甲鱼心里想的是哪个数字:'))
  6.     if times > 1:
  7.         times -= 1
  8.         if temp == guess:
  9.             print("卧槽,你是我的蛔虫吗?")
  10.             print("哼,猜中也没奖!")
  11.         else:
  12.             if temp > guess:
  13.                 print('小了')
  14.             else:
  15.                 print('大了')
  16.     else:
  17.         print('你没有游戏机会了!')
  18.         break
复制代码

写给你参考一下
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-12-5 21:41:53 | 显示全部楼层

谢谢  运行了一下是对的  就是还没学过break
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-12-5 21:46:40 | 显示全部楼层

感谢 感谢! 我百度了一下,用笨的方法也试出来了,就是比较冗长。

print('............我爱甲鱼.......')
temp = input("不妨猜一下小甲鱼心里想的是哪个数字:")
guess=int(temp)
if guess==8:
   print("卧槽,你是我的蛔虫吗?")
   print("哼,猜中也没奖!")
else:
   if guess > 8:
      print('大了!')
   else :
      print('小了!')

times = 2
while (guess != 8 ) and (times > 0):
   times = times - 1
   temp = input('Try again:')
   guess=int(temp)
   if guess == 8:
      print("卧槽,你是我的蛔虫吗?")
      print("哼,猜中也没奖!")
   else:
      if guess > 8:
        print('大了!')
      else :
        print('小了!')
   if times < 1:
       print ('机会用完啦!')
print("game over")

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-12-10 17:18:23 | 显示全部楼层
本帖最后由 zwhahx521 于 2018-12-11 10:22 编辑

print('............我爱甲鱼.......')
times = 3
while times>0:
   temp=input("wrong!!try again:")
   guess=int(temp)
   times = times - 1
   if guess==8:
      print("卧槽,你是我的蛔虫吗?")
      print("哼,猜中也没奖!")
      break
   else:
      if guess > 8:
          print('哥,大了...')
      else:
          print('嘿,小了')
      if times > 0:
          print('最后一次:', end='')
      else:
          print('机会用光了T_T')
print("game over")


你试试这个程序。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-12-10 17:21:09 | 显示全部楼层
皇甫宅 发表于 2018-12-5 21:41
谢谢  运行了一下是对的  就是还没学过break

break 就是结束循环。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-12-12 22:05:46 | 显示全部楼层
zwhahx521 发表于 2018-12-10 17:18
print('............我爱甲鱼.......')
times = 3
while times>0:

谢谢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-12-12 22:19:36 | 显示全部楼层
加模块啊 你这已经是定值了  
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-23 07:41

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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