Python:猜测游戏出了问题

时间:2015-03-11 16:21:33

标签: python

我试图在python中创建一个小型的基本猜谜游戏,比如Text Twist。这是代码:

while game_running == True:
    if (tries_left != 0):
        print "Tries left: " + str(tries_left)
        chosen_text = text_list[picker(text_length)]
        scrambled_text = scrambler(chosen_text)
        print "Guess the word/s: " + scrambled_text
        guess_text = raw_input("Your answer (space included): ")
        if (chosen_text == guess_text):
            print "Congratulations! You guessed correctly!"
            game_running = False
        else:
            tries_left-=1
    else:
        print "LOL. You dun goofed son. Terminating like SkyNet..."
        game_running = False

看不见的功能:

  • 选择器 - 基本上是随机发生器
  • scrambler - 扰乱这些词。正在进行中,尚未实施。

您有3次尝试正确猜测,或者应用程序终止。如果您猜对了,应用程序会显示一条消息,然后终止。听起来很简单。

问题:

我无法解决这个问题:

if (chosen_text == guess_text):

即使我100%肯定(通过print chosen_text)我猜对了。

我尝试过的事情:

我尝试撤消订单,将str()放在它们周围,甚至使用is代替==来反转if和else的流程,并删除try函数,fwiw

没有什么可以让它成真......
...除非我硬编码chosen_text,并正确猜测。

我错过了什么吗?

1 个答案:

答案 0 :(得分:1)

您可能想要插入一些调试代码:

print repr(chosen_text)
print repr(guess_text)

这将向您显示您正在处理的两个字符串。 repr函数会在字符串周围加上引号,让您确定字符串是否存在意外空格或其他难以看清的问题。

如果有,你可以尝试类似:

if chosen_text.strip() == guess_text.strip():
    print "Congratulations! You guessed correctly!"

或者如果有不同的大写:

if chosen_text.strip().lower() == guess_text.strip().lower():
    print "Congratulations! You guessed correctly!"

还有一些其他的方法可以让你的代码在Python成语中更加Pythonic /更多。例如:

while game_running == True:

更好地表述为:

while game_running:

但是那些少数其他清理都是风格化的,与你的比较难度无关。