我创建了一个代码,需要使用标签放入其中,但我似乎无法弄清楚如何正确添加标签。请参阅下面的代码和应该返回的文档字符串,以及它返回的内容。也许我应该重新考虑我的整个方法?
def display_game(guesses, clues):
'''(list, list) -> str
Given two lists of single character strings, return a string
that displays the current state of the game
>>>display_game([['Y', 'P', 'G', 'G'], ['O', 'O', 'G', 'G']], [['b', 'b'], ['b','b', 'b', 'b']])
'Guess\tClues\n****************\nY P G G\tb b\nO O G G\tb b b b\n'
'''
display = 'Guess\tClues\n****************\n'
for i in range(len(guesses)):
for letter in guesses[i]:
display += letter + ' '
for letter in clues[i]:
display += letter + ' '
display += '\n'
return display
当我使用它时(使用doc字符串示例),我得到:
display_game([['Y', 'P', 'G', 'G'], ['O', 'O', 'G', 'G']], [['b', 'b'], ['b','b', 'b', 'b']])
'猜猜\ tClues \ n **************** \ nY P G G b b \ nO O G G b b b b \ n'
任何将\ t放在代码中的尝试都会导致错误(例如:在每个字符串之间使用\ t而不是根据文档字符串应该在哪里)。有人能够建议我如何改变一切吗?谢谢!
答案 0 :(得分:0)
您的代码不会在猜测和线索之间添加选项卡。你可以简单地添加
display += '\t'
,您需要确保在第一个循环结束时不添加尾随空格。
str.join()
是处理此问题的更好方法,因为它只在序列的项之间添加分隔符字符串:
>>> ' '.join(['a', 'b', 'c'])
'a b c'
请注意,上面没有尾随空格字符。将其应用于您的函数:
def display_game(guesses, clues):
display = 'Guess\tClues\n****************\n'
for guess, clue in zip(guesses, clues):
display += '{}\t{}\n'.format(' '.join(guess), ' '.join(clue))
return display
zip()
也用于配对每个猜测和线索。然后,只需在猜测和线索上使用str.join()
,并在所需位置使用选项卡构建字符串。
>>> assert(display_game([['Y', 'P', 'G', 'G'], ['O', 'O', 'G', 'G']], [['b', 'b'], ['b','b', 'b', 'b']]) == 'Guess\tClues\n****************\nY P G G\tb b\nO O G G\tb b b b\n')
答案 1 :(得分:-1)
您可以在for循环之间添加它:
for i in range(len(guesses)):
for letter in guesses[i]:
display += letter + ' '
display += '\t' # right here
for letter in clues[i]:
display += letter + ' '
display += '\n'
return display
答案 2 :(得分:-1)
这对我有用。只需在两者之间添加选项卡,以获取猜测和线索的循环。
def display_game(guesses, clues):
display = 'Guess \t Clues \n **************** \n'
for i in range(len(guesses)):
for letter in guesses[i]:
display += letter + ' '
display += '\t'
for letter in clues[i]:
display += letter + ' '
display += '\n'
return display
print(display_game('at', 'yk'))
这给出了输出:
Guess Clues
****************
a y
t k