我的hang子手游戏的问题
问题描述:
我正在尝试学习python,我在尝试一个hang子手游戏。但是,当我尝试将用户的猜测与单词进行比较时,它不起作用。我错过了什么?我的hang子手游戏的问题
import sys
import codecs
import random
if __name__ == '__main__':
try:
wordlist = codecs.open("words.txt", "r")
except Exception as ex:
print (ex)
print ("\n**Could not open file!**\n")
sys.exit(0)
rand = int(random.random()*5 + 1)
i = 0
for word in wordlist:
i+=1
if i == rand:
print (word, end = '')
break
wordlist.close()
guess = input("Guess a letter: ")
print (guess) #for testing purposes
for letters in word:
if guess == letters:
print ("Yessssh")
#guessing part and user interface here
答
在你的“for word in wordlist
”循环中,每个单词将以换行符结束。尝试添加word = word.strip()
作为下一行。
if guess in word:
print ("Yessssh")
特别提示:
顺便说你的最后一个循环可以替换为加入“调试输出”的时候,它往往是一个好主意,使用再版(处理字符串时尤其如此)。例如,您的线路:
print (guess) #for testing purposes
也许,如果你写的更加有用:
print (repr(guess)) #for testing purposes
是否有guess
奇怪的字符这样,你会在你的调试输出更容易看到它们。
答
这是我做我的刽子手游戏:
for x in range(0, len(secretword)):
if letter == secretword[x]:
for x in range(len(secretword)):
if secretword[x] in letter:
hiddenletter = hiddenletter[:x] + secretword[x] +hiddenletter[x+1:]
for letter in hiddenletter:
print(letter, end=' ')
secretWord中是隐藏的词,用户试图猜测。 隐藏字母包含单词中的“_”数量:ie hiddenletter =“_”* len(secretword)
这会用正确猜测的字母替换空格,然后在正确的位置显示带下划线的下划线 我尽了全力...
你的代码做错了什么?什么不行? – RexE 2009-05-23 21:35:50
不知道你的具体错误是什么,但这里有一些关于重构的提示: - 使用random.randint()而不是random.random() - 要获得单词列表,可以使用open(“words .txt“,”r“)。readlines() - 除了最后一个for循环,你只是说”如果猜字“ – RexE 2009-05-23 21:37:33