请问有没有更好的写法,004猜数字游戏
我想让正确答案没有出现的时候,一直循环,这个我的写法,有没有更简单的答案!!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('游戏结束!!')
一直循环,去掉次数即可
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('游戏结束!!')
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('游戏结束!!') 本帖最后由 yexing 于 2020-3-4 10:58 编辑
qiuyouzhi 发表于 2020-3-4 08:39
疯狂压缩:
你这个程序有bug啊... guess 和 cishu 没初始化{:10_277:}
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("游戏结束!!")
真要压缩还是得这样压{:10_297:}
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="")
yexing 发表于 2020-3-4 10:50
你这个程序有bug啊... guess 和 cishu 没初始化
真要压缩还是得这样压
我去没看见
等下 yexing 发表于 2020-3-4 00:05
一直循环,去掉次数即可
其实我就想让答案为一个固定数8,但是不会写固定数为的代码8,所以用的(8,8),没用(1,10),请问还能写一个,答案是8,不是的话,就一直循环的代码吗? jackz007 发表于 2020-3-4 00:25
大师竟然用到了,小菜没学到的break 非驰 发表于 2020-3-4 14:14
大师竟然用到了,小菜没学到的break
break、continue 与 for、while 循环是密不可分的基本概念。
break 用于从循环中退出,到循环语句块外的下一条语句处继续执行;continue 用于结束一次循环,直接开始下一次循环。 本帖最后由 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="")
yexing 发表于 2020-3-4 14:19
你这个要求十分简单啊,要固定数直接赋值就行,不用搞randint,randint是输出随机数用的
答案不是8一 ...
Thank you,Thank you!!{:5_110:} jackz007 发表于 2020-3-4 14:18
break、continue 与 for、while 循环是密不可分的基本概念。
break 用于从循环中退出 ...
谢谢,谢谢,学习了,最佳答案只能选一个,如果能选两个,我必选大师这个,再次感谢! 非驰 发表于 2020-3-4 14:45
Thank you,Thank you!!
最简:
answer, guess = "8", "0"
while guess != answer:
print("我日,你竟然猜对了" if (guess := input("猜猜我心里想的是什么数:")) == answer else "再试一次吧!")
页:
[1]