0
当我试着运行程序输出时,当被问到“到目前为止你猜到了”输出与提示不在同一行,而是在它下面的行上。任何方法来解决这个问题?程序中是否还有其他错误需要解决?Python Hang子手输出
HANGMANPICS = [''' ''', '''
|
''', '''
|
0
''', '''
|
0
|
''', '''
|
0
/|
''', '''
|
0
/|\
''', '''
|
0
/|\
/
''', '''
|
0
/|\
/\
''']
def getSecret_Word():
while True:
wordList =input('Please enter a word to be guessed\nthat does not contain ? or white space: ')
wordList = wordList.strip()
if ' ' and '?' not in wordList: #makes sure that the word is valid
break
return wordList #returns back to wordList if invalid
def displayBoard(HANGMANPICS, missedLetters, correctLetters, secretWord):
print(HANGMANPICS[len(missedLetters)])
print()
blanks = '?' * len(secretWord)
for i in range(len(secretWord)):
if secretWord[i] in correctLetters:
blanks = blanks[:i] + secretWord[i] + blanks[i+1:]
for letter in blanks:
print(letter, end='')
print()
print('So far you have guessed:', ', '.join(sorted(missedLetters+correctLetters)))
print()
def getGuess(alreadyGuessed):
while True:
guess = input()
guess = guess.lower()
if len(guess) != 1:
print('You can only guess a single character.')
elif guess in alreadyGuessed:
print('Please enter your next guess:\nYou have already guessed the character:',guess)
elif guess.isspace():
print('You must enter a guess.')
else:
return guess
def playAgain():
print('Do you want to play again? (yes or no)')
return input().lower().startswith('y')
missedLetters = ''
correctLetters = ''
secretWord = getSecret_Word()
gameIsDone = False
while not gameIsDone:
displayBoard(HANGMANPICS, missedLetters, correctLetters, secretWord)
guess = getGuess(missedLetters + correctLetters)
if guess in secretWord:
correctLetters = correctLetters + guess
foundAllLetters = True
for i in range(len(secretWord)):
if secretWord[i] not in correctLetters:
foundAllLetters = False
break
if foundAllLetters:
print('You correctly guessed the secret word: ', secretWord)
gameIsDone = True
else:
missedLetters = missedLetters + guess
if len(missedLetters) == len(HANGMANPICS) - 1:
print(HANGMANPICS[len(missedLetters)])
print('You failed to guess the secret word:',secretWord)
gameIsDone = True
if gameIsDone:
break
谢谢。该计划中的任何其他问题? – DatOneGuy 2014-12-05 03:45:15
@DatOneGuy“谢谢。程序中有其他问题吗?”我认为你对这个网站有错误的印象。它的目的是回答特定的问题,而不是为您查看代码。有时你可能会得到提示,但你不能问这个问题,否则你的问题可能会被关闭 – jamylak 2014-12-05 04:25:53