鱼C论坛

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

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

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

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

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

x
我想让正确答案没有出现的时候,一直循环,这个我的写法,有没有更简单的答案!!
import random
daan = random.randint(8,8)
guess = 0
cishu = 3
print('猜猜我心里想的什么数:',end ="")
while (guess != daan) and (cishu > 0):
    temp = input()
    guess =int(temp)
    if guess == daan:
        print('我日,你竟然猜对了')
    else:
        if cishu > 0:
            print("再试一次吧:",end="")
        else:
            print()
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一直循环的话,可以像我这么写:
answer = 8
guess = 0
print("猜猜我心里想的是什么数:", end="")
while guess != answer:
    guess = int(input())
    if guess == answer:
        print("我日,你竟然猜对了")
    else:
        print("再试一次吧:", end="")
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

使用道具 举报

发表于 2020-3-4 00:25:51 | 显示全部楼层
import random
daan = random . randint(8 , 8)
cishu = 3
while cishu :
    guess = int(input('猜猜我心里想的什么数:'))
    cishu -= 1
    if guess == daan:
        print('我日,你竟然猜对了')
        break
    else:
        if cishu:
            print('猜错了,再试一次吧!\n')
else:
    print('很遗憾,机会用完了!')
print('游戏结束!!')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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


你这个程序有bug啊... guess 和 cishu 没初始化
from random import randint
daan = random.randint(8,8) #应该是直接randint()
print("猜猜我心里想的什么数: ", end = "")
while guess != daan: #guess is not defined 
    guess = int(input())
    if guess == daan:
        print('我日,你竟然猜对了')
    elif cishu > 0: #cishu is not defined
        print("再试一次吧:",end="")
    else:
        print("小了!")
print("游戏结束!!")
真要压缩还是得这样压
from random import randint
daan, guess, cishu = randint(8,8), 0, 3 #randint()里的参数有点迷
print("猜猜我心里想的什么数: ", end = "")
while (guess != daan) and (cishu > 0):
    guess = int(input())
    if guess == daan:
        print('我日,你竟然猜对了\n游戏结束!!')
    else:
        cishu -= 1
        print("机会用完了\n游戏结束!!") if cishu <= 0 else print("再试一次吧:", end="")
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

真要压缩还是得这样压

我去没看见
等下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

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

使用道具 举报

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

大师竟然用到了,小菜没学到的break
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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


        break、continue 与 for、while 循环是密不可分的基本概念。
        break 用于从循环中退出,到循环语句块外的下一条语句处继续执行;continue 用于结束一次循环,直接开始下一次循环。
想知道小甲鱼最近在做啥?请访问 -> 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一直循环的话,可以像我这么写:
answer = 8
guess = 0
print("猜猜我心里想的是什么数:", end="")
while guess != answer:
    guess = int(input())
    if guess == answer:
        print("我日,你竟然猜对了")
    else:
        print("再试一次吧:", end="")
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

Thank you,Thank you!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

谢谢,谢谢,学习了,最佳答案只能选一个,如果能选两个,我必选大师这个,再次感谢!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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


最简:
answer, guess = "8", "0"
while guess != answer:
    print("我日,你竟然猜对了" if (guess := input("猜猜我心里想的是什么数:")) == answer else "再试一次吧!")
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-16 21:39

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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