我试图在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
看不见的功能:
您有3次尝试正确猜测,或者应用程序终止。如果您猜对了,应用程序会显示一条消息,然后终止。听起来很简单。
问题:
我无法解决这个问题:
if (chosen_text == guess_text):
即使我100%肯定(通过print chosen_text
)我猜对了。
我尝试过的事情:
我尝试撤消订单,将str()
放在它们周围,甚至使用is
代替==
来反转if和else的流程,并删除try函数,fwiw
没有什么可以让它成真......
...除非我硬编码chosen_text
,并正确猜测。
我错过了什么吗?
答案 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:
但是那些少数其他清理都是风格化的,与你的比较难度无关。