遇到麻烦,弄清楚如何在单词之间实现空格.现在我有了下划线



我的代码应该从文件中删除一个短语。我目前的工作正常,但我似乎无法弄清楚如何更改输出。在我的输出中,我在单词之间的空间中有下划线。我希望输出具有实际的空间而不是下划线。在我的代码中,我的每个字符替换为下划线。我认为这是我的问题,因为它也正在读取空格作为字符。我的目标是在我无法阻止这种情况下的帮助下弄清楚。

更新:该问题已经解决了。现在每个短语的末尾都有一个下划线。有什么建议么?

    #Define a filename
filename = "puzzles.txt".lower()
#Imports
import random
#Open the file and read
with open(filename) as f:
    lines = f.readlines()
    randomSecretPhrase = (random.choice(lines)) #Choose random phrase from file
    #***Output secret word to screen test***
    print(randomSecretPhrase)
#Initalize        
correct = []
incorrect = []
guesses = []
count = 0
def game():
    for i in randomSecretPhrase:
        if i in correct:
            print(i,end=' ')
        elif i != ' ':
            print('_',end=' ')
        else:
            print(' ',end=' ')
    print("nn")
    print('Number of times guessed: ', count)
    print('~~~~~~~~~~~~~~~~~~~~~~~~~~~~')
def guessed_letters():
#Will check the user input to verify valid letter is entered
    while True:
        guess = input("Guess a letter: ").lower()
        if guess in correct or guess in incorrect:
            print("You have already guessed that letter. Please guess again.")
            print(count)
        elif guess.isnumeric():
            print("Please enter only letters not numbers! Guess again.")
        elif len(guess) > 1:
            print("Please enter only one letter at a time. Please guess again.")
        elif len(guess) == 0:
            print("Please enter a letter.")
        else:
            break
#Keep track of correct and incorrect guesses
    if guess in randomSecretPhrase:
        correct.append(guess)
        print('~~~~~~~~~~~~~~~~~~~~~~~~')
        print("You have guessed correctly!")
        print('n')
    else:
        print('~~~~~~~~~~~~~~~~~~~~~~~~')
        incorrect.append(guess)
        print("You have guessed incorrectly!")
        print('n')
#Main program
while True:
    #Call game()
    game()
    #Call guessed_letters()
    guessed_letters()
    #Count how many times guesses
    count += 1



Output:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Guess a letter: h
~~~~~~~~~~~~~~~~~~~~~~~~
You have guessed correctly!

b a c k   i n   a   f l a s h _ 

Number of times guessed:  10
~~~~~~~~~~~~~~~~~~~~~~~~~~~~

其中之一将摆脱下划线。您是正确的,它也在空间上迭代。

def game():
for i in randomSecretPhrase:
    if i in correct:
        print(i,end=' ')
    elif i in string.ascii_letters:
        print('_',end=' ')
    else:
        # Print an extra space between words
        print(' ')

或,如果您不想在可以之间有额外的空间:

def game():
for i in randomSecretPhrase.replace(' ', ''):
    if i in correct:
        print(i,end=' ')
    elif:
        print('_',end=' ')

您可能还想防止玩家猜测空间。

最新更新