Python 3.8-list.append(';█;';)但不用于空格字符?
我是Python的初学者,正在努力编写我的第一个程序。我正在尝试创建一个游戏,游戏需要猜一个硬编码的句子Python 3.8-list.append(';█;';)但不用于空格字符?,python,Python,我是Python的初学者,正在努力编写我的第一个程序。我正在尝试创建一个游戏,游戏需要猜一个硬编码的句子 mystery_sentence='All things excellent are as difficult as they are rare' def printGuessedLetter(): print("This is the sentence to guess: " + ''.join(userGuesslist)) for n in mystery_sentenc
mystery_sentence='All things excellent are as difficult as they are rare'
def printGuessedLetter():
print("This is the sentence to guess: " + ''.join(userGuesslist))
for n in mystery_sentence:
userGuesslist.append('█')
printGuessedLetter()
上面的代码返回:
这是要猜测的句子:█████████████████████████████████████████████████████
下面是上面的一段代码:
letter = input("> Enter a letter:\n>> ").lower()[0]
if letter in userGuesses:
print("You've already submitted this letter")
else:
attempts -= 1
userGuesses.append(letter)
if letter in mystery_sentence:
print("\nNice guess")
if attempts > 0:
print("You have ", attempts, "remaining attempt")
for i in range(len(mystery_sentence)):
if letter == mystery_sentence[i]:
letterIndex = i
userGuesslist[letterIndex] = letter.upper()
printGuessedLetter()
由于“猜测”一句包含空格,我认为玩家更容易看到以下内容:██ ██████ █████████ ███ ██ █████████ ██ ████ ███ ████
然后,当玩家提交一封信时,它会如下所示:
下面是要猜测的句子:
██ ██████ █████████ A.██ A.█ █████████ A.█ ████ A.██ █A.██
等等
但是,我无法用完整块替换空格字符。我不确定list.append是正确的函数
有人有什么建议吗?您可以使用替换所有非空白(\S
)字符:
import re
mystery_sentence='All things excellent are as difficult as they are rare'
hidden = re.sub(r'\S', '█', mystery_sentence)
print(hidden)
# ███ ██████ █████████ ███ ██ █████████ ██ ████ ███ ████
如果您确实希望将此作为列表:
userGuesslist = list(hidden)
没有正则表达式的另一个选项:
hidden = ''.join(['█' if char !=' ' else ' ' for char in mystery_sentence])
print(hidden)
# ███ ██████ █████████ ███ ██ █████████ ██ ████ ███ ████
或者,如果您真的想要列表而不是字符串:
userGuesslist = ['█' if char !=' ' else ' ' for char in mystery_sentence]
您可以使用替换所有非空白(\S
)字符:
import re
mystery_sentence='All things excellent are as difficult as they are rare'
hidden = re.sub(r'\S', '█', mystery_sentence)
print(hidden)
# ███ ██████ █████████ ███ ██ █████████ ██ ████ ███ ████
如果您确实希望将此作为列表:
userGuesslist = list(hidden)
没有正则表达式的另一个选项:
hidden = ''.join(['█' if char !=' ' else ' ' for char in mystery_sentence])
print(hidden)
# ███ ██████ █████████ ███ ██ █████████ ██ ████ ███ ████
或者,如果您真的想要列表而不是字符串:
userGuesslist = ['█' if char !=' ' else ' ' for char in mystery_sentence]
也许这会有帮助。可以将Unicode字符用于块 您可以像这样打印多个文件:
num = 10
block = u'\u2588'
blocks = block * num
print(blocks)
>> ██████████
num = 25
block = u'\u2588'
blocks = block * num
print(blocks)
>> █████████████████████████
您也可以这样做:
num = 25
block = chr(9608)
blocks = block * num
print(blocks)
>> █████████████████████████
也许这会有帮助。可以将Unicode字符用于块 您可以像这样打印多个文件:
num = 10
block = u'\u2588'
blocks = block * num
print(blocks)
>> ██████████
num = 25
block = u'\u2588'
blocks = block * num
print(blocks)
>> █████████████████████████
您也可以这样做:
num = 25
block = chr(9608)
blocks = block * num
print(blocks)
>> █████████████████████████
正则表达式对于您的问题来说是一种过分的手段。在用块字符替换其他字符时保留空格的简单方法是
userGuesslist = []
for n in mystery_sentence:
if n == ' ':
userGuesslist.append(' ')
else:
userGuesslist.append('█')
另外,请注意,
letterIndex
变量在代码中是多余的(您可以只保留i
。正则表达式对于您的问题来说是一个多余的变量。在用块字符替换其他字符时保留空格的简单方法是
userGuesslist = []
for n in mystery_sentence:
if n == ' ':
userGuesslist.append(' ')
else:
userGuesslist.append('█')
另外,请注意,
letterIndex
变量在代码中是多余的(您可以只保留i
。它似乎破坏了我的代码,因为我需要以下代码:forn in summary\u句话:userGuesslist.append('█') printGuessedLetter()要执行它。我尝试用“隐藏”替换“神秘句子”,但没有成功。你知道怎么回事吗?我将输出添加为列表,但如果你要做的只是打印它们,只需使用字符串。这似乎破坏了我的代码,因为我需要以下代码:对于神秘句子中的n:usergustislist.append('█') printGuessedLetter()来执行它。我尝试用“隐藏”替换“神秘句子”,但没有效果。你知道怎么回事吗?我将输出添加为列表,但如果你要做的只是打印它们,只需使用字符串即可。