在我的hang子手代码中,我得到了字母和空格的长度以匹配起来,但由于某些原因,我无法获取字母来替换空格及其无限循环。我不知道我要去哪里错/我失踪了。我的hangman python代码似乎陷入了无限循环?
from random import*
def main():
print
print "-----------------------------------"
print "H A N M G M A N: Tropical Fruit 1.0"
print "-----------------------------------"
print
wordList = ["pomegranate","mango","cassabanana","conkerberry","jujube"]
randomIdx = randrange(0, len(wordList))
secretWord = wordList[randomIdx]
print "(The secret word is", secretWord,")"
lettersGuessed = []
underscore = []
for i in range(len(secretWord)):
underscore.append('_')
newUnderscore = " ".join(underscore)
print newUnderscore
count = 6
while(True):
guess = getNewLetter(lettersGuessed)
if lettersGuessed == randomIdx:
print "You guessed the letter! It is: ",ch2
break
def getLetter():
letter = True
while (letter):
ch = raw_input("Guess a letter: ")
if len(ch) == 1:
if ('a' <= ch) and (ch <= 'z'):
return ch
elif ('A' <= ch) and (ch <= 'Z'):
return chr(ord(ch)-ord('A')+ord('a'))
else:
print ch,"is not a valid letter."
else:
print ch,"is not a single character."
def getNewLetter(oldChar):
letter = True
while (letter):
ch = getLetter()
if ch not in oldChar:
oldChar.append(ch)
return ch
else:
print "You already guessed",ch,"!"
main()
编辑:所以我改变了while循环在主函数这一以致求信将追加到空白,但仍然什么是错的。
while(True):
guess = getNewLetter(lettersGuessed)
if lettersGuessed == randomIdx:
lettersGuessed.append(newUnderscore)
return newUnderscore
break
在代码中(两个地方)都有'while(letter)'有点误导,因为实际上你的意思是'while(True)'。 – trutheality 2012-04-02 03:00:00
谢谢我将它改为两者同时(True) – kdkmoment 2012-04-02 04:35:19