Python: 反向猜数字游戏

1 投票
2 回答
53 浏览
提问于 2025-04-12 22:26

我写了这个代码来做一个反向猜谜游戏,但它在第一次的时候会打印出两次c。请记住,(d=正确) (b=更大) (k=更小)。

import random
c = random.randint(1,99)
print(c)
a = str(input())
while a != "d":
    if a == "b":
        print(c)
        c = random.randint(c,99)
        a = str(input())
    elif a == "k":        
        print(c)
        c = random.randint(1,c)
        a = str(input())
    elif a == "d":
     break

输出结果是这样的:

67
b
67

我希望67只打印一次。

我试着把第3、7、11行的print(c)去掉了。

2 个回答

0

这应该可以正常工作

import random
c=random.randint(1,99)
print(c)
a=str(input())
while a!="d":
    if a=="b":
        c=random.randint(c,99)
        print(c)
        a=str(input())
    elif a=="k":
        c=random.randint(1,c)
        print(c)
        a=str(input())
    elif a=="d":
     break
           
1

如果你不想让 c 打印两次,可以试着在生成新随机数之后再添加一次打印语句,就像你第一次做的那样。

撰写回答