鱼C论坛

 找回密码
 立即注册
查看: 2350|回复: 11

[已解决]请问有没有更好的写法,004猜数字游戏

[复制链接]
发表于 2020-3-3 23:58:42 | 显示全部楼层 |阅读模式

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

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

x
我想让正确答案没有出现的时候,一直循环,这个我的写法,有没有更简单的答案!!
  1. import random
  2. daan = random.randint(8,8)
  3. guess = 0
  4. cishu = 3
  5. print('猜猜我心里想的什么数:',end ="")
  6. while (guess != daan) and (cishu > 0):
  7.     temp = input()
  8.     guess =int(temp)
  9.     if guess == daan:
  10.         print('我日,你竟然猜对了')
  11.     else:
  12.         if cishu > 0:
  13.             print("再试一次吧:",end="")
  14.         else:
  15.             print()
  16. print('游戏结束!!')   
复制代码
最佳答案
2020-3-4 14:19:40
本帖最后由 yexing 于 2020-3-4 14:21 编辑
非驰 发表于 2020-3-4 13:58
其实我就想让答案为一个固定数8,但是不会写固定数为的代码8,所以用的(8,8),没用(1,10),请问还 ...


你这个要求十分简单啊,要固定数直接赋值就行,不用搞randint,randint是输出随机数用的
答案不是8一直循环的话,可以像我这么写:
  1. answer = 8
  2. guess = 0
  3. print("猜猜我心里想的是什么数:", end="")
  4. while guess != answer:
  5.     guess = int(input())
  6.     if guess == answer:
  7.         print("我日,你竟然猜对了")
  8.     else:
  9.         print("再试一次吧:", end="")
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-3-4 00:05:13 | 显示全部楼层
一直循环,去掉次数即可
  1. import random
  2. daan = random.randint(8,8) #这里有点奇怪啊,为了遵循你的思路我没改,不过这个应该是(1, 10)吧?
  3. guess = 0
  4. print('猜猜我心里想的什么数:',end ="")
  5. while guess != daan:
  6.       temp = input()
  7.       guess =int(temp)
  8.       if guess == daan:
  9.             print('我日,你竟然猜对了')
  10.       else:
  11.             print("再试一次吧:",end="")
  12. print('游戏结束!!')   
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-4 00:25:51 | 显示全部楼层
  1. import random
  2. daan = random . randint(8 , 8)
  3. cishu = 3
  4. while cishu :
  5.     guess = int(input('猜猜我心里想的什么数:'))
  6.     cishu -= 1
  7.     if guess == daan:
  8.         print('我日,你竟然猜对了')
  9.         break
  10.     else:
  11.         if cishu:
  12.             print('猜错了,再试一次吧!\n')
  13. else:
  14.     print('很遗憾,机会用完了!')
  15. print('游戏结束!!')
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-4 10:50:17 | 显示全部楼层
本帖最后由 yexing 于 2020-3-4 10:58 编辑


你这个程序有bug啊... guess 和 cishu 没初始化
  1. from random import randint
  2. daan = random.randint(8,8) #应该是直接randint()
  3. print("猜猜我心里想的什么数: ", end = "")
  4. while guess != daan: #guess is not defined
  5.     guess = int(input())
  6.     if guess == daan:
  7.         print('我日,你竟然猜对了')
  8.     elif cishu > 0: #cishu is not defined
  9.         print("再试一次吧:",end="")
  10.     else:
  11.         print("小了!")
  12. print("游戏结束!!")
复制代码

真要压缩还是得这样压
  1. from random import randint
  2. daan, guess, cishu = randint(8,8), 0, 3 #randint()里的参数有点迷
  3. print("猜猜我心里想的什么数: ", end = "")
  4. while (guess != daan) and (cishu > 0):
  5.     guess = int(input())
  6.     if guess == daan:
  7.         print('我日,你竟然猜对了\n游戏结束!!')
  8.     else:
  9.         cishu -= 1
  10.         print("机会用完了\n游戏结束!!") if cishu <= 0 else print("再试一次吧:", end="")
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-4 11:09:24 | 显示全部楼层
yexing 发表于 2020-3-4 10:50
你这个程序有bug啊... guess 和 cishu 没初始化

真要压缩还是得这样压

我去没看见
等下
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-4 13:58:22 | 显示全部楼层
yexing 发表于 2020-3-4 00:05
一直循环,去掉次数即可

其实我就想让答案为一个固定数8,但是不会写固定数为的代码8,所以用的(8,8),没用(1,10),请问还能写一个,答案是8,不是的话,就一直循环的代码吗?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-4 14:14:13 | 显示全部楼层

大师竟然用到了,小菜没学到的break
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-4 14:18:17 | 显示全部楼层
非驰 发表于 2020-3-4 14:14
大师竟然用到了,小菜没学到的break


        break、continue 与 for、while 循环是密不可分的基本概念。
        break 用于从循环中退出,到循环语句块外的下一条语句处继续执行;continue 用于结束一次循环,直接开始下一次循环。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-4 14:19:40 | 显示全部楼层    本楼为最佳答案   
本帖最后由 yexing 于 2020-3-4 14:21 编辑
非驰 发表于 2020-3-4 13:58
其实我就想让答案为一个固定数8,但是不会写固定数为的代码8,所以用的(8,8),没用(1,10),请问还 ...


你这个要求十分简单啊,要固定数直接赋值就行,不用搞randint,randint是输出随机数用的
答案不是8一直循环的话,可以像我这么写:
  1. answer = 8
  2. guess = 0
  3. print("猜猜我心里想的是什么数:", end="")
  4. while guess != answer:
  5.     guess = int(input())
  6.     if guess == answer:
  7.         print("我日,你竟然猜对了")
  8.     else:
  9.         print("再试一次吧:", end="")
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-4 14:45:26 | 显示全部楼层
yexing 发表于 2020-3-4 14:19
你这个要求十分简单啊,要固定数直接赋值就行,不用搞randint,randint是输出随机数用的
答案不是8一 ...

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

使用道具 举报

 楼主| 发表于 2020-3-4 14:49:55 | 显示全部楼层
jackz007 发表于 2020-3-4 14:18
break、continue 与 for、while 循环是密不可分的基本概念。
        break 用于从循环中退出 ...

谢谢,谢谢,学习了,最佳答案只能选一个,如果能选两个,我必选大师这个,再次感谢!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-7 21:24:03 | 显示全部楼层
非驰 发表于 2020-3-4 14:45
Thank you,Thank you!!


最简:

  1. answer, guess = "8", "0"
  2. while guess != answer:
  3.     print("我日,你竟然猜对了" if (guess := input("猜猜我心里想的是什么数:")) == answer else "再试一次吧!")
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-29 05:01

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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