【问题标题】:Python Hangman OutputPython 刽子手输出
【发布时间】:2015-02-03 04:02:01
【问题描述】:

当我尝试运行程序时,当询问“到目前为止,您已经猜到”时,输出与提示不在同一行,而是在它下面的行。有什么方法可以解决这个问题?程序中还有其他需要修复的错误吗?

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

【问题讨论】:

    标签: python if-statement while-loop func function


    【解决方案1】:

    如果您想在 print 语句后省略换行符,只需使用 print("string", end="")

    【讨论】:

    • 谢谢。程序中还有其他问题吗?
    • @DatOneGuy “谢谢。程序中还有其他问题吗?”我想你对这个网站有错误的印象。它旨在回答特定问题,而不是为您查看代码。有时您可能会收到提示,但您不能来询问,否则您的问题可能会被关闭
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-09
    • 2017-09-08
    相关资源
    最近更新 更多