我的代码应该从文件中删除一个短语。我目前的工作正常,但我似乎无法弄清楚如何更改输出。在我的输出中,我在单词之间的空间中有下划线。我希望输出具有实际的空间而不是下划线。在我的代码中,我的每个字符替换为下划线。我认为这是我的问题,因为它也正在读取空格作为字符。我的目标是在我无法阻止这种情况下的帮助下弄清楚。
更新:该问题已经解决了。现在每个短语的末尾都有一个下划线。有什么建议么?
#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=' ')
您可能还想防止玩家猜测空间。